Thursday, January 17, 2008

I consume a lot of technical media, and one of my favorite sources is They provide recorded presentations from Javapolis, SpringOne and other shows. They recently rolled out a beta Flex version of their site and a companion Air desktop app. It's a very cool application, offering a lot of long awaited features including local downloading of video and full screen viewing.

Parleys is making this release just as I'm pushing out the first milestone of a small flex app at work. I may post a little about Flex after I've had a little time to absorb it. Right now, I'm well within the honeymoon period, and don't think I can give a real balanced viewpoint.

Wednesday, January 16, 2008

There is a reoccurring misconception that I've seen at several job sites now. Developers seem to be proud of their API, Framework or Library because of how few lines of code the user needs to write, without concern for how many concepts a user must understand. A well written Library will expose as little of its implementation as possible. It will provide a single mental model for the user and a consistent way of interacting with it. While generally, this results in less repeated code, the success of the library cannot be judged on a strict line count.

Too many times, I've seen internals of a library exposed for the sake of removing a 2-3 lines of code from the caller (usually a simple if or for loop). The result is often obviously messy APIs, and a lot of learning on the user's part. It seems that when developing APIs for use internal to their company, developers simply don't have much regard for usability.

Monday, January 14, 2008

I first heard about Volta on the Java Posse (#154). It was carelessly referred to as a GWT rip-off. Being a long-time listener (and fan) of the Java Posse, I was well aware that opinions expressed about Microsoft products are seldom well researched. I did a little more reading and was interested in what I found.

While Volta does generate Javascript, it does so in a slightly different way than GWT. While GWT reads Java code and compiles to Javascript, Volta reads bytecode (.NET IL) and compiles to Javascript. And while GWT defines its own UI APIs, Volta uses the existing .Net APIs. This means, you can write an app in C# or VB using the form designer, add some annotations to tell the system which parts are client code, and compile the same source to both a thick client and a web app.

Of course, while I can't attest to how well it works (like those at the Java Posse, I don't own a Windows PC), I do think it give us some interesting things to think about in the Java community.
  • If GWT read bytecode rather than source code, it could support Groovy as well. For those who haven't tried, Groovy builders are a very clean way to write Swing code. They could have been helpful for GWT as well.
  • Could a single set of UI APIs apply for Applets, Applications and GWT-like Web apps, like Microsoft's Avalon APIs span Silverlight, Windows Apps and Volta UIs?
  • How many interesting ideas do we miss because we don't watch developments in competing environments?