Sun Microsystems is a very respectful company, with strong engineering spirit and talented software developers on staff. Sun Microsystems was the company behind the very first technology to support rich Internet applications. Yes, I “m talking about Java applets that were introduced in 1995. The same setup as we see today in the RIA world: a JVM, that is a Web browser plugin and compiled byte code that offers rich UI. But after that, in my opinion, Sun “s Java decision makers made a couple of serious mistakes:
1. Abandoned development in the area of the VM for clients side of the Web applications
2. “Have won rdquo; the law suit with Microsoft.
Selling servers was and remains the main bread winner for Sun. Hence support of J2EE seemed logical ndash; each enterprise that is developing J2EE applications need to purchase a set of servers (development, QA, staging, production). These servers can be arranged in clusters, which means more servers to buy. Even if a project is deployed on WebLogic, JBoss or WebSphere application server (a third-party software), Sun was happily selling their hardware to these clients.
But enterprise Java applications have the client portion too. A large chunk of these applications are Web 1.0 based, but there is another group of applications that uses Java Swing, which is a rich client platform. Swing offers OK-looking components, but most importantly, it requires that the user “s computer has to have a specific version of Java Runtime installed. In enterprises, it “s not a big issue, because the JRE is centrally pushed to the clients by the infrastructure team. But this is not the case in the consumer “s market.
Even if the enterprise business users do not like Swing “s UI, they do not have a say. It “s their responsibility to use this and only this software to perform their daily duties, or else hellip; This is not the case in the consumer “s market hellip; Ironically, business users who are budgeting the IT projects often turn into beggars asking IT to do a little improvements here and there. Today, they are getting not too promising answers like “We “ll prioritize your request and include it in our schedule rdquo;. It “s not easy to make changes in Swing applications.
People are happy with what they have if they do not know any better. It was OK to have double standards: enterprise folks are working with the dull-looking Web applications, while behind the iron curtain they enjoy artistic colorful UI of non-business related stuff. This would not be too bad while Java and .Net dominated as the developers tools in the corporate world. Their UI tools had a “meet expectation rdquo; stamp until the outsiders like Adobe Flex and AJAX framework vendors started to sneak into the corporate development floors showing that even business Web applications can look sexier.
Microsoft has released the 1.0 version of Silverlight, their tool for RIA. Sun has also realized that the client “s tooling can “t be ignored any longer and made an announcement about a new language called JavaFX Script. Hopefully, during this year “s JavaOne we “ll see some solid examples of what can be done with JavaFX, which will be used in the future RIA both for desktop applications as well as in the mobile world (JavaFX Mobile).
Without doing any technical comparison of Flex, Silverlight, and JavaFX, let “s talk about delivery of the these applications to the end users (consumers). Penetration of Flash Player 9 (the runtime for Flex) is 97%. This means that almost every computer already has Flash Player 9 installed. The penetration of the runtime for Silverlight is less than 50%. Today, the penetration of the runtime required for JavaFX is probably close to zero (please correct me if you have some better statistics).
These numbers explain why Microsoft uses Flash Player to spread the word about Vista, and Sun uses the same delivery mechanism to talk about JavaFX.
In the world of RIA, delivery mechanism is everything. One of the main advantages of AJAX applications is that about 100% of the client “s machines already have everything that “s needed to run them.
Now let “s recall that infamous law suit between Sun and Microsoft. The latter wanted to inject into Java some additions, Sun did not like it, and after several years of litigation, they won billions of dollars. Since that time Microsoft does not include the latest JRE into Internet Explorer. This means that if someone puts a gun to Amazon.com “s head and force them to re-write their front end using Java applets, they should develop to a ten year old JRE 1.1 as a common denominator to avoid losing most of their customers that use Internet Explorer. Because of that “winning rdquo; law suit, Sun has lost the delivery platform for Java applications. In my opinion, this was a big mistake on the Sun “s part.
Deploying a Web applet today requires an installation of the proper version of JRE, which is not a straightforward process. JRE starts slow. Waiting for 15 second till it warms up is a heavy overhead on top of any consumer application. At the time of this writing, this process has to load into memory about 16MB of JRE code.
Help is on the way though. This year we “ll see a smaller (under 3Mb) Java engine formerly known as Consumer JRE and now it goes by the name Java SE 6 update N. Initially, this JRE will load a minimum number of classes that are absolutely required, and then, it will bring other modules on the as-needed basis. Improving warm and cold start time of the JRE are also in the works.
Sun has huge Java community of six million developers, and most of them would love to use something Java-esque for their RIA needs, but pragmatic considerations always win in the business world. When I meet a .Net developer working on Adobe Flex project, I always ask, “Why don “t you use Silverlight? rdquo; Even though .Net developers would love to use Microsoft “s products, the answer is always the same, “Silverlight is not there yet. rdquo; So much for loyalty hellip;
Java “s multimedia support is in a really poor shape too. A rudimentary Java Media Framework (JMF) was abandoned many years ago too. If Sun has any cash left after their recent MySQL acquisition, it should consider purchasing some third-party vendor that can offer a 21-century-like software package to replace JMF.
JavaFX Script will give you a different way to create Java applets that run on this JRE. The question is when? Let “s assume that Sun will make these two available in May “08 during JavaOne. By the end of 2008 we “ll see a modest number of production-quality Web applications built with JavaFX. When someone will visit a Web page that requires this JRE, s/he will be offered to download it. Now add another two years till the penetration of this JRE will reach some serious numbers. This means that online vendors may start relying on this new JRE in late 2010. But will it actually compete with Flash Player in 2010? Sun still has excellent engineers (regardless of the brain drain caused by Google), but we can “t expect that Adobe and Microsoft R amp;D will be frozen for the next two years either. As a Java developer, I wish Sun Microsystems success, but they are facing extremely challenging mission in the RIA space.