Now, The Review, as Charlie Demerjian has often explained to me, is not about pleasing the corporation whose product is on the market. It's about holding that product up to the light so that the end customers - who would be you and me, down here in the normal world - can get a sense what the good points and bad points of the product are before we pony up the money to pay for it. It is a difficult line to walk because sometimes corporations forget the distinction between PR and The Review, and attempt to direct the output of our scholarly efforts.
In many ways, The Review is the opposite of advertising. The polar opposite in its inspiration. Advertising usually functions in one of two ways. First, it uses subtle psychological manipulation to make you believe you need something which you, in fact, do not need. Second, it enlists people who are on the front-line of "cool" (usually lifelong victims of the first technique), the "forlorn guard", so to speak. It hires these people and encourages them to collaborate and *decide* what's going to be "cool" next year. As if anyone, sitting with the latest stack of Italian fashion magazines in a pricey Minneapolitan loft could, with a pair of scissors, some crazy glue and a "do-it-yourself collage guide" actually decide what's going to be cool in next year's market.
I won't get into the details of how that's done -- I'm ashamed I know these things in the first place. Just remember -- ad firms are the "merchants of cool". And "cool" is not often what you think it is. In the last 40 years, "cool" has usually amounted to middle class youth posturing either as equestrian dilettantes, foreign immigrants, indigenous aliens, or some estranged, drug-induced derivation thereof in order to escape the vacuum of their parents' morbid, suburban lifestyles. Ad firms tune in to that vacuum and try to induce you to consume their product in order to compensate for your lack of any substantial inner dialogue and accompanying sense of self-worth.
Of course, when your business is involved, advertising can take on a particularly gruesome character. It preys upon your fear of failing at whatever it is you do, or that your company and everyone in it will fail, because you're not smart enough, or fast enough, or well informed enough, or whatever it takes for you to beat your competitors. The more afraid you are, the easier job they will have selling you their products, which are like silver bullets that kill all the werewolves waiting in the dark for you to publish your 10q reports.
Of course, there's also plain, straightforward "we have a product. here's what it does" advertising, which isn't really all that bad -- they don't have to "sex up" their product because it exhibits an obvious improvement over a previous version. Usually these companies are the ones who figure out what you're doing right, then make it easier to do that. Or maybe the product is grape jelly, which is obviously useful, but you forgot to get it yesterday when you bought eggs for your mom down at Hank's grocery. I like companies like that.
But ULC by Canoo Engineering isn't one of those products. Until yesterday I was perfectly willing to concede that it was. They wrote me a while back and asked me to write a review on their software for Java Developers Journal, and I'm thinking "man, I'd like to help these guys out -- they seem really nice."
And so I got involved, started writing their tech guys and asking some questions about all the things I care about (features, architecture, licensing, cost). Of course, I'm a busy guy and I don't have the time to go ape and learn the guts of their code. It's like asking Tiger Woods to do a commercial for the new line of Tony Alva skateboards. Can you imagine how long it would take Tiger to learn to ride a pool-wall?. No way. But I'm not a complete idiot, so I start asking some questions about their design, what the benefits are, who stands to benefit the most from its use, how it compares to other technologies I've considered using, pretty much anything I can think of that would make this otherwise dry and banal topic interesting in the least bit to you.
Then I thought "you know, I might actually like to use this software, so I can try out some of the tricks they're telling me about -- it sounds pretty neat." So I ask them if I could get a full copy of it and take it out for a spin. I thought I might stress test it against Jetty or something, see how far I could push it, how long it would take to build a simple component.
They sent me back a licence that only allows me to use the software in one virtual machine in one computer at a time, in my house. I am not allowed to reverse engineer the product. I can't even draw diagrams of how the system might work, so I certainly can't talk about that in my review. And here's the best part:
"13. Confidential Information
The parties hereby agree to maintain in confidence and not to disclose to any non-affiliated third party the
terms of this agreement and/or any confidential information disclosed to or received by the other party, including,
though not limited to, information or data, in whatever form and irrespective of whether or not marked confidential or
similar, concerning the discloser's products or product plans, business operations, strategies, customers and related
business information etc., . . ." blah blah blah.
"Don't mind me," I thought, "If you need me, I'll be in complete culture shock over there, on the floor". Do people actually sign stuff like this? I guess all the software I use other than Windows is free. All of it. So, if I sign this agreement, I can never work on any similar technology, can't discuss the terms of the agreement, can't really do much of anything with their product. I probably couldn't even legally review it.
And for this pleasure they want me to pay them $1500? You've got to be kidding me. It was a whiplash reminder why I write Open Source software. As one astute individual at SlashDot said yesterday,
"I call bullshit!"
So I didn't sign the agreement. It's an assault on my right to write. Hell with that.
At this point, I thought "Okay, can't even look at the software. Might get burned by rabid Swedish attorneys in two years if I ever build a better mousetrap." So I returned to the original plan. The sales lady and the engineer fed me a few letters of marketing buzz. As I tried to recompile it into somewhat sensible prose, it struck me. I was writing a PR piece. These people were using me like a money laundering front to whitewash their PR campaign.
I got a little concerned and wrote the sales lady a short letter, explaining my hesitations. She wrote back an assuring note, claiming that she welcomed an "objective" report and that she was eager to read the review. Relieved, I finally bit the bullet and sent them a first draft of my compiled notes. Just a draft, mind you, and I knew it was a little rough. After two days, the engineer sent me back an incredibly rude note thanking me in the most condescending way possible for my "effort", but claiming that it didn't match what he "expects" from a review about his product and declaring that they "do not want to pursue this review" with me.*
He then went on to list his reasons, berating me for focusing on the licensing and cost of the product, which I think are extremely important aspects one should consider when committing one's business to a piece of software. Worse, several of his criticisms directly contradicted what he had previously written me (remember, my "review" was really just a boiled down version of info I'd gotten directly from him). Sure, there were a few nicks and burrs, technical errata, but nothing to warrant the treatment he was giving me. Sirens went off. Who the hell did he--? What the--? Does this guy know--?
Apparently not.
Which brings us here, to theInquirer.net, where copy writers are paid with the thanks of their readership, and occasionally death threats, wherein I will publish my review of the ULC software by Canoo Engineering, whether they like it or not. And from now on, unless you're Aplix, who are absolutely the coolest company I ever met in the entire Java industry, I don't want to get any requests from companies to write The Review unless they can take the heat.
Before I got started on the real Review, I watched "Almost Famous" again, and remembered something very important -- the people at Canoo Engineering aren't nice and they're not my friends. They're self-absorbed automatons, hawking incomprehensible wares at ridiculous prices and trying to buddy-up with writers in our little Java development community so we'll vomit forth blushworthy prose about their "miraculous new MVC client software".
I know what you're probably thinking (or what you should be thinking if you're not thinking). "Give me a break. Nobody has been able to improve on the original SmallTalk80 Model-View-Control software since it was released over twenty-three years ago by the Xerox PARC labs. It's for writing thick-client UIs, man. There is no n-tiered MVC for Java. It's a myth. Long live Reenskaug!" And you're right. Any self-respecting pattern geek could tell you the lineage of MVC, and how it was perverted by evil sorcery for use in Java and how it's now just a standard component in the PR toolkit
So let's get started. I should never have spoken with the engineering guy, because, frankly, the architecture of his product will do absolutely no-one in the world any good. Ever. Because it's not Open Source, or shared source or available for us to review. We can't study it, we can't learn from it, we can't repeat it, can't suggest changes, can't complain about its flaws.
The only things that matter, then, are as follows.
Disadvantages
1. Non-standard technology, so you run the risk of vendor lock-in. "With HTML", they assert, "you don't have a
vendor lock-in, but a feature lock-in." So, if being forced to continue purchasing their product because your software
relies on their proprietary features and being prevented from implementing similar technology by the terms of their
licensing agreement isn't "vendor lock-in" then what is it? HTML marks up text and a handful of other simple UI
components, and an entire science has grown up around using it in interesting ways. You have options with HTML, and
there are armies of underemployed web designers haunting the cafés of a city near you.
2. Too expensive. The software costs $1500 per developer seat. I'd save the cash and hire a design consultant for a couple of months. Escrow agreements cost $1200 and must be renewed once a year. In addition, the escrow agent may charge a fee depending on the time spent to add changes or modifications you request, but that price is unknown.
3. Incapable of being managed through JMX. They don't use JMX and claimed to have no intentions of doing so any time soon. So what? Is this JMX thing just another fad? Of course, but so is ULC, and JMX has better documentation.
4. Poor support. If their lead engineer couldn't explain to me what their software does, why it's better than other, free technologies and how I can convey that to you, how are they supposed to teach your developers how it works? For example, consider these two quotes (from the same person): "The server-side is exposed to the developer whereas the client-side is hidden." "With ULC a developer has to implement an application's presentation layer."
You see my point.
5. No plans for VGA support. (that's vector graphics api for all you UI buffs)
6. Overhyped. You now know that you can't necessarily believe what you read about them in the press because they're turning away objective reviews of their software and buttering up editors to get favorable copy.
7. Draconian Licensing. I never sign (on principle) anything that prevents me from discussing what I've signed.
Advantages
1. This client software uses Swing and Java Applets on the client side, so if you already know those
technologies, it should be easy to learn.
2. It's supposed to make it much easier to build "rich media" components (applets) They spoke about it being an alternative for HTML & JavaScript UIs, which we all know can be difficult to implement. You can also use it to build lightweight and scalable client UIs for your desktop applications.
3. It keeps the business logic separate from your view components, but there are many other pieces of software that already do this.
4. 100% J2EE compliant and can be deployed as a Servlet or an EJB.
5. Can be used in Portlets.
6. They have a competitor, whose product is called "Droplets" and who is partnered with IBM, Borland, HP and PriceWaterhouseCooper.
And they can be found here (http://www.droplets.com/) µ
* NEVER ever ever allow any vendor to see anything you're going to write before it's published. Vendors quite like the Shock of the New. Ed.