The scramble is on for another large IT market – Rich Interactive Applications. This involves major software APIs that provide the GUI Presentation layer for 6As computing: 1)Immediate Access to information for 2)Anyone Authorized 3)Anytime, 4)Anywhere on 5)Any device in 6)Any format required. Client server computing has been able to deliver 3 1/2 As – immediate access to anyone authorized anytime and most anywhere; but certainly not on any device and in any format desired. Now the landrush is on to secure pre-eminence in the Anywhere, Any device, Any format GUI APIs.
A lot of futures are being sold on the IT markets to day. No better example is the recent Microsoft PDC-Professional Developers Conference, where just about everything new promised was at least a year away from delivery. Windows Vista, with its Windows Presentation Foundation(WinPF aka Avalon) and supporting Expression Suite, WinCF, LINQ, and WinWF – all await a first beta with the lone exception of Acrylic or Expression Designer one of 3 design components for XAML and WinPF. What is in and out of Visual Studio 2005 itself will be a discovery process sometime in early November.
And Microsoft is not the only vendor selling futures. Oracle is into Fusion, BEA into Liquid, and Sun into Creator. However, these are more incremental, as all of these vendors have moved a bit faster and farther than Microsoft into delivery of SOA-Service Oriented Architectures, Web 2 and/or RIA-Rich Interactive Applications. But even so, the markets are still open and nowhere is that more obvious than in RIA.
True, building an application that is devoted to one platform such as a desktop OR Web application is getting to be a pretty refined art. NetBeans Eclipse, Borland Jbuilder, Oracle JDeveloper and other great Java IDEs deliver superb Java tools for just such tasks. And Adobe GoLive, Macromedia Dreamweaver and Microsoft Visual Studio allow development of great Web applications with the proviso that Visual Studios Web apps will only run in IE and IE will only run in some, but not all versions of Windows. But if developers want to deliver truly Anywhere, Any Devicein Any Format applications (and they certainly do),then current tools present problems.
Want to deliver an app that can talk to any user – either mobile or PDA or even to the Web or PC ? Developers have to switch between windows forms to web forms to special PDA forms. Then add mobile telephones – and the interface APIs change yet again. And anywhere may require special APIs again to get the data connected on the last mile to any device.
Providing Anywhere and on Any Device
With Windows the current UI solution is divided between WinForms, VBAForms, WebForms, and the Compact Framework – and these APIs do not get access to all devices. Ditto for Java, where users have to select between J2EE, JSP/JSF and J2ME to get similar reach between GUI devices and platforms. But Microsoft is now proposing XAML and it Windows Presentation Foundation as a more general solution with greater reach to all devices but not all platforms including some still major Windows players like Win 9X, Win NT and Win 2000.
But even before Microsoft, Macromedia with Flash and various Java vendors have had rich cross platform as well as cross device solutions. For example, Flash runs on Linux, Mac, various Unix, and all versions of Windows. But even more important, with each new Flash Player Macromedia has expanded the number of mobile devices that it supports. Yes, Flash Lite is used to extend Flash Players reach to more embedded and mobile platforms. But like the Compact Framework and Java J2ME, Flash Lite is a subset, a robust subset, of all that Flash can do. It is a two tier anywhere and any device UI solution.
So the race is on to provide an anywhere, in ayformat, and on any device complete UI solution. The movement from the two tier API (Flash and Flash Lite) to a one tier approach is just emerging. Droplets and other Java vendors are saying we can deliver a broad and rich set of UI components equal to the best from Microsoft or any other vendor. The trick is to use J2ME or a specially developed Swing or an old JDK 1.1 versions (for broadest possible desktop an any device reach) but supercharged GUI routines. These solutions are starting to garner attention.
Anywhere, Any Device Developer Problems
The problem with anywhere and any device delivery to any platform are twofold for developers using even the best of the new UI tools. First, developers have to be aware of the layout constraints associated with delivering to anything from tiny mobile phone screens to the huge Web and PC desktop screen landscapes. Who is responsible for doing the layout for the radically different UI spaces ? The best solutions appear to be a combo – where the user specifies layout must-haves and sizing constraints and then the UI does the final layout depending on what device is being used. But this requires developers to go beyond the familiar drag and drop and “forever there the UI component shall be” design.
In addition connecting to and from data stores for any sort of interactive form operation also presents problems – particularly if offline as well as online operations have to be supported. Microsoft is offering LINQ as its solution into this space; but again this is so Futures oriented with barely alpha-bits available at PDC and cross platform, cross device reach still up in the air. Java is similarly in the process of evolving solutions in this space from J2EE through JDO to nearly half a dozen Java+XML+Web Services approaches.
Of particular interest will be solutions like Macromedia Flex 2 and Nexaweb and other RIA vendors that start to address the two tier UI and layout problems. For example, Flexs MXML UI language inherently incorporates a lot of layout constraints and default actions which users can override as appropriate. In addition, the offline/online and data connection solutions are starting to evolve as well.
So the race is on. Microsoft is still selling its PC centric Smart Client solution (look at its huge UI changes in Office 12 and other apps). But as always, Bill is hedging his bets and has let WinPF/E out the door (for how long and how robust an implementation is the $64,000 question). Java has one of the broadest spectrums of truly cross platform solutions being proposed in this space. But dont take Flash lightly. With Laszlo and Macromedia offering solutions, there have been some of the more interesting RIA and robust UI solutions offered into the market by these vendors.