So Microsoft has jumped into the rich client market with Sliverlight, which is basically aimed square at Flash and Apollo. There are some interesting demos, but nothing ground breaking. Although I just found this post about it which points out that it has a lot of pretty major shortcomings.
When I saw it the big questions for me were "why can't Java compete in this space", or even "why is Java not already the dominant player in this space"?
Java 1.2 was released in Dec 1998 and was cross platform and network downloadable, supported a UI toolkit, 2D graphics, video and audio, and by 1999 3D graphics. So basically functionality greater than or equal to what is available today with these other tools but with an 8 year head start!
So what went wrong?
In summary:
- Availability
- Performance
- Integration
Availability
Java 1.2 was not widely installed and the download to get it installed was big and slow. This is still the case. Java WebStart and the Java plug-in don't really seem to have made this a better user experience.
Performance
This has been successfully addressed with both startup time and memory footprint improved greatly, but at the time Swing had a big problem even redrawing a menu quickly.
Integration
From a programming point of view this is probably the biggest issue - Swing doesn't work with JMF, which doesn't work with JOGL. The JMF APIs suck and don't really support the media types that most people deal with. Java2D was never really integrated into Swing, you have to know that the Graphics you are passed in paint can be cast to a Graphics2D, you can't pass a GradientPaint to the fill the background of a component, etc
What to do about it?
F3 shows real promise in providing a Java based option for Rich Clients, but they really need to work on the browser integration and startup experience.
They also need decent tool support which Adobe has in spades and Microsoft is getting into.
---
The Downloader object is a special-purpose WPF/E object that provides the ability to download content, such as XAML content, JavaScript content, or media assets, such as images. By using the Downloader object you do not have to provide all application content when the WPF/E control is instantiated. Rather, you can download content on demand in response to application needs. The Downloader object provides functionality for initiating the data transfer, monitoring the progress of the data transfer, and retrieving the downloaded content.
The properties and methods of the Downloader object are modeled after the XMLHttpRequest (XHR) set of APIs. XMLHttpRequest provides JavaScript and other web browser scripting languages the ability to transfer and manipulate XML data to and from a web server using HTTP.
---
Direct from the Silverlight SDK documentation.
Posted by: kudakeru | April 21, 2007 at 12:35 AM