Over there in San Francisco, at JavaOne, Sun announced something peculiar—a new line of product whose flagship programming language is still in early alpha. The product line is some sort of a phone, and the programming language is called JavaFX Script.
I downloaded the language and tried a few simple programs. Instead of showing you a screencast of what it is capable of doing, let me show you the interpreter error I received when my hello world program contained a couple of syntax errors:
This thing is clearly not ready for prime time. I'm not saying it won't be ready in two years. If Sun keeps the project alive, and throw a bunch of resources at it, in all likelihood it will be ready. But that's a big "if."
And you can understand my skeptism by asking yourselves a very simple question: "What was the new Sun language demoed at JavaOne 2006?" ... if you answered "a Visual Basic compiler" you are 100% correct. Where is it now?
A lot of things happened between the last JavaOne and this JavaOne, you say. Yes, that's true. By the same token, a lot can happen between now and the next JavaOne.
And that brings me to my next question: Why now? Sure the Java SE in a phone thingy is interesting. But there is also talk about an (as of now vaporware) slimmed down Java plugin for Web browsers. And the technical press people and the general programming public are already putting it in the same category of tools as Adobe Flash/Flex and Microsoft Silverlight.
All of a sudden, fake competition is happening in the Rich Internet Application tools market. And the winner in this category is clearly Adobe Flash/Flex (by virtue of Microsoft Silverlight not being cross-platform, and by virtue of the JavsFX thin/kernel/modular plug-in not being.)
So I can only interpret Microsoft and Sun's entering (or threatening to enter) into the RIA tools market place as their way of endorsing the Adobe Flash/Flex paradigm. If Adobe plays its cards right, Flash/Flex will be a dominating force in this space for the next three to five years. While Microsoft Silverlight will never be successful on the internet, the Sun JavaFX thin-thingy still have a chance if it rides the open source wave and become bundled with Linux distributions and Firefox downloads.
The biggest loser in this round of RIA hype is AJaX. Again, I'm not saying AJaX will fade away immediately. But the phrases "AJaX" and "standard-based web apps" will lose their novelty and star quality and be attacked from above by the RIA toolkits. One way to save the "standard-based web app" is to extend the standards, and by that I mean the HTML/CSS/JavaScript standards, to include elemets like <canvas>, <menu>, <audio>, <video>, <treeview>, <progressbar>, etc., and language features like modularity, isolation (memory protection), resource quotas (so that one page can't keep using 100% CPU for an unlimited time), etc.
One responsibility of being a platform is to absorb some of the most commonly used innovations done on top of the platform into the platform itself. I still remember adding a tooltip to one of the buttons in a Win16 application—the hard way—by creating a Window that is to be the yellow bubble and track how long the mouse pointer has been hovering over a button and make the Window visible if it is longer than 750 milliseconds. Nowadays nobody will use a GUI toolkit without declarative support for tooltips.
It will be interesting to see what come out of all these.