On December 4, JavaFX arrived to this world with lots of “It’s a Boy” balloons. The family of RIA development tools gets bigger and as a Java programmer, I wish best of luck to this new kid on the block.
But the party is a little spoiled because the baby is premature and will have to spend some time in barocamera to survive. To make myself clear, I’ll mixin here some definitions from Wikipedia in italic:
Human fertilization is the union of a human egg and sperm, usually occurring in the ampulla of the fallopian tube.
In my opinion, this definition is OK for bulls and cows, but in the human world it would be nice if the bearers of sperm and egg loved each other and wanted this baby. In May of 2007, when Sun Microsystems announced JavaFX, I did not see any traces of love there.
This was forced fertilization. Sun, which technically created the first rich Internet application in the form of applets in 1995 did not give enough love to that baby too concentrating its efforts on Java technologies that would help selling Sun’s servers. As a result, Java EE shines as a platform for development and deployment of the server-side enterprise applications.
Java Swing , the client side library, was too difficult to program and most importantly, required large Java runtime that was not too easy to install, had a slow 0-60 acceleration. Java on the client did not have a runtime environment that was feasible for consumer-facing RIA. A trucker from Alabama would not be able to install the proper version of JRE.
In the world of RIA, availability and high penetration of the runtime environment is the most important pre-requisite for any RIA technology or technique. High penetration of Web browsers supporting DHTML plus XMLHttpRequest object is the explanation of the three years of AJAX craze that’s, thanks God, is coming to an end.
About ten years ago, Sun “won” a lawsuit with Microsoft and made $10B. These bad guys from Redmond wanted to make our Java dirty by quietly introducing their infidel libraries. Sun went into a fight, got the money… and lost the mechanism for spreading Java runtime. The Internet Explorer, that’s being used by about 75% of the users, even today ships with the ten-year old Java 1.1 runtime.
On the other hand, Adobe’s Flash Player is a runtime for Flash and Flex application that’s small, has seamless installation and has a penetration rate of 98%. Flex 2 was announced three years ago after Adobe has acquired Macromedia, and not only offered nice framework for developing UI, but also came with advanced network protocols and easy integration with Java EE on the server.
Microsoft was first to recognize Flex as a new RIA platform leader, and as usually, responded, “Me too.” And when Microsoft says, “Me too”, they really mean it. Some very serious dependency injection (I’m talking about long and green) did the trick, and Silverlight 2.0 may start competing with Flex in a year, if the penetration of the Silverlight’s runtime will reach at least 80%.
During JavaOne 2007, Sun realized that they missed the RIA boat and announced JavaFX loud and clear. They were forced to bed, but the sperm met the egg and the process has begun. Marketing people and executives started make some serious noise about JavaFX.
Pregnancy (latin graviditas) is the carrying of one or more offspring, known as a fetus or embryo, inside the uterus of a female.
But just running around screaming, “I’m pregnant, I’m pregnant!” is not enough for delivering a healthy baby. Pregnant women should have better nutrition, and should be surrounded with love and support. I was following the evolution of JavaFX very closely and I didn’t see this love and support from Sun’s top management. Sun’s executives were trumpeting about new and great product, but I’d rather see them providing some real support to a small group of talented software engineers that were trying to do the bet pushing the product out the door.
Please read the story of an Chris Oliver, creator of JavaFX. Sun published this strory under the title “Mind-Bendingly Cool Innovation ”. On the surface, it looks like a success story of a boy who didn’t even go to college but became a Senior Stuff Engineer at Sun. But one of the Oliver’s statements tells me that he had lots of obstacles within Sun while working on JavaFX:
“For us, a bunch of tedious work – what I wanted to do but was obstructed for the last several years. Now I won’t be obstructed, thanks to the new management. Now the path is open for us to walk down it, but we have to actually walk down it,” he says.”
I’m sure, you know that it take a women nine months to deliver a baby. In software, it usually takes a lot longer, and the released version of JavaFX gives me a feeling that it’s premature.
The Web site javafx.com didn’t impress me. The Web site itself was falling down several times during the opening day – it was not tested well enough. This is yet another evidence of insufficient resource allocated to this project. There is no demos of the UI for enterprise-grade applications that I was expecting to see. As a matter of fact, long time ago I’ve been sending emails to people who were involved with development of JavaFX asking for at least a Pet Store demo. It didn’t happen yet.
The start of the available demos is still slow. The ugly messages like “Java Starting” and “You may not have the right certificate. Do you trust this application?” will scare that Alabama trucker to death and he’ll run away from this Web site.
On the positive side, JavaFX has pushed Sun to developer Java Kernel, a relatively small JRE that loads faster. The other smart thing is their attention to designer-developer workflow. Sun decided not to re-invent the wheel and create a plugin that should allow designers continue using Adobe Photoshop and Illustrator with automatic JavaFX code generator.
Sun made yet another smart decision – decoupling of the JVM from the browser. You should be able to start JavaFX from the browser, but then kill the browser and your applet should stay alive. You should be able to drag the applet from the browser and drop it right onto yourdesktop. Are there any demos of this features? I’m not sure – have not seen yet.
Now Sun has to offer tools for developing JavaFX applications. Sure enough, you can use NetBeans 6.5, but for some reason, majority of Java developers use Eclipse. Quick introduction of Eclipse plugin for JavaFX should be a highest priority item for Sun. Just bite the bullet and do it.
Even though I’m using Adobe Flex for development of the UI portion of enterprise RIA, I don’t fall in love with programming languages, and would be gladly using JavaFX too when it’s ready for production. It may happen in 2010. But Sun has either to put the money where its mouth is or open source JavaFX to allow Java enthusiasts make this language competitive in the RIA world.