Thursday, October 4, 2007

Software Branding

The other day I stumbled across a link to a great software branding keynote speech at OSCON by a Google developer named Steve Yegge (who incidentally writes a great blog, available at http://steve-yegge.blogspot.com/). In the keynote he discusses the importance of branding and how it effects consumers perception of the product. Check it out and realize that branding isn't just someone up in marketing.

http://blip.tv/file/319044/

Friday, April 6, 2007

UI Smackdown: GWT vs. Flex vs. WPF/E (vs. Applets)

I attended the SRT User interface smackdown last week, which was an open spaces event to discuss GWT, Flex, and Windows Presentation Foundatation. Having been involved in a project using GWT I was particularly interested in how GWT would compare to Flex and WPF/E, which both allow embedded full fledged rich applications in the browser. I found GWT a great framework for creating Ajax applications, but Ajax itself has intrinsic problems that can make it painful to create even moderately complicated rich internet applications.

My take away from the session can be represented by the following matrix comparing the strengths of each.












GWT gets a green for zero-footprint since it requires no additional install. Flex is nearly zero-footprint, since Flash is ubiquitous. Virtually no one has WPF/E, so it almost certainly involves a download.

Both Flex and WPF/E support local files storage. They both have a sandbox in which they can save and read files from the local harddrive. By default the amount of space allowed is small, but Flex apps can request for arbitrarily large amounts of space from the user. Even small amounts of space opens up many new opportunities for a RIA that are unavailable with Ajax.

"Workflow support" in this matrix means support for the development process from designers all the way through implementation. This sort of workflow with GWT is as primitive as it is with lots of web application development: the designers deliver static mockups which developers try to mimic as closely as possible. When, inevitably, they change their mind about appearance the cycle repeats. Microsoft has a long way to go, but they have been much more proactive about trying to improve this situation, producing tools to allow designers to create the actual templates that get used by development.

Flex (and I think WPF/E) default to use binary socket communication, as opposed to HTTP. If firewall rules prevent such communication it will automatically fall back to HTTP. The ability to use binary socket communication opens up the possibility of doing real-time messaging. The alternative in Ajax is to use a "comet" style approach where an HTTP connection is held open for some period of time, and if any messages come through during that time they are sent. Flex will do comet style communication if it cannot establish a binary socket.

"Text quality" refers to the quality of the text as displayed on the screen. The general consensus in the session was that if your application is primarily about reading large amounts of displayed text, straight HTML displayed in the browser is superior.

Update 12/10/2007
Java applets were not included in this post, in part because they were not part of the session I went to, but also because I don't consider them a serious alternative for RIA. Bruce Eckel has a very good post about their deficiencies for RIA:
A common response to the “applets are dead” statement is “No they’re not. I still use them.” Applets aren’t useless; people still create very impressive things with them. The Java Posse highlights one or more applets each week. The statement should instead read, “Applets are dead for Web RIAs.” The installation process for the JRE and for any particular applet is not reliable enough for anyone to depend on them for a general-purpose website.

For the complete post see http://www.artima.com/weblogs/viewpost.jsp?thread=193593