Distinct Approaches, Common Goals
As you no doubt have gathered at this point, Silverlight, AIR, and JavaFX are very different products.
Silverlight is Microsoft's very strong response to Adobe Flash. It allows you to build rich media applications that run in the browser. Microsoft has a tradition of great development tools so Silverlight definitely will appeal to those already building on Microsoft platforms, but it also will attract new developers who are not satisfied with Flash. The single greatest obstacle Silverlight faces is adoption, but Microsoft has a secret weapon called Windows Update, which could help.
Adobe AIR is an attempt to democratize desktop software development by enabling web developers to build applications for the desktop. AIR allows Flex and DHTML applications to run outside of the browserboth online and offlineand interact directly with system hardware. Adobe also created an efficient, Flash-based deployment scheme for AIR, which makes installation transparent to the end user. Both web and desktop developers should pay attention to AIR.
It would be logical for Microsoft to create something similar to AIR based on Silverlight. I think they are not too far from that and it could be a killer platform.
JavaFX Script allows developers to build great-looking user interfaces for Java in a very efficient way. It should help promote Java as a cross-platform, client-side development platform. With JavaFX Script, you can separate UI development from UI implementation, which enables you to build RIAs in Java. However, the old client-side Java problems of slow performance and inconvenient deployment are still evident. The Java runtime is huge when compared with either Silverlight's or AIR's, and the Java Web Start user experience is far from perfect.
Yet as different as these platforms are, they share certain key attributes:
- They support declarative GUI definitions that can be efficiently separated from the code, enabling designers to build GUIs independently from the developers who write the code. In this sense they adopt the best practices of web developers.
- They all (except for DHTML AIR) support rich presentations with vector-based graphics and animation.
- They are to a large degree cross platform.
The RIA is how applications of tomorrow will lookrich, flexible, connected, and cross-platform. Silverlight, AIR, and JavaFX are using different approaches to get developers of all kinds there today.