Last month, on my way home from my annual skiing vacation I spent a day in Zurich, Switzerland with may family and friends. This city is very nice and clean with well maintained buildings, large windows with watches, silver and gold, and people are well dressed and polite. This was during the day. But when on the evening we were walking along the central Banhofstrasse street to a famous place that sells long sausages, the street was empty. This was 7PM on Saturday! After dinner, my son with his friends decided to go to a night club. The hotel concierge said that there is not too many fun clubs in the city, but if they take a cab and go out of the city, there is a very popular place…
For some reason this reminded me of today “s Java, which is also a well established metropolis, with a multitude of different areas that are suitable to people with various tastes and needs. But hellip;if you take a cab hellip;there are some really fun places to be. And the names of these places are AJAX, Ruby, and Flex. Let ‘s not get into technical pros and cons of these three, but they are fun places to be. That “s for sure.
The Ruby crowd writes about happiness of programming. AJAX folks are routinely overcoming lots of challenges, but somehow enjoy the process anyway. Flex has a very live and vibrant online community, where almost each blog entry includes at least one occurrence of the word “Cool rdquo;. Are all these people faking orgasm? I doubt it.
After my recent talk at New York “s Java user group (this was about using Flex as a front end to Java), a guy from the audience stopped by and said, “This looks nice, but I can do all this in Java Swing rdquo;. He “s right, but how easy would it be? Do you enjoy the process of Java Swing programming? There is an old joke when a wife says to her husband, “My mother is dying, I know you did not like her that much, but it “s her last day, please do me a favor and kiss her. rdquo; The husband replied, “I “ll do it for you, but you should know that I “m not going to enjoy the funeral! rdquo;
The Java metropolis consists of three boroughs ndash; the Server Side (sounds like an Upper East Side), Mobile, and UI. The first two areas seem to be fine. Working with Java Swing for desktop applications is not fun, but if you have enough time and money, you can create solid enterprise applications. But this is not the case when it comes to Java applets, or in other words Rich Internet Applications (RIA).
To put it simple, the Web shines when you want to have seamless deployment. Initially it was just HTML, then JavaScript came in. These two exist ON ANY user ‘s PC, even though there are some issues with JavaScript incompatibility in different Web browsers.
Then Java was born with its concept of applets, which were the first rich Internet applications (remember the dancing Duke). But Java creators quickly decided that the development of the server side applications should be their strategic direction.
Up till now, Sun was not able to pull off an easy installation of a small footprint JVM on anyone “s client machine. This is where Flash Player shines. The fact that it exists on 98% of users PCs makes it pretty much equivalent of HTML or JavaScript when it comes to availability on the end-user machine. ITS ALREADY THERE. Do not get the right version of the Flash Player? One button click and 20 seconds later you got it. That ‘s why I believe that Flash Player is today “s best environment for rich Internet applications. Flash Player is a VM running compiled bytecode processed by JIT compiler.
Java is hopelessly lagging behind in the RIA field. Even Microsoft is giving up Windows-only approach with their WPF/E tool for RIA, where E stands for Everywhere. Today, they are behind Flash Player, but at least they are actively moving in this direction. Ironically, they are using competitor “s Flash Player to promote Vista as opposed to their own Windows Media Player.
But Java seems to be hopelessly losing in the RIA field. To the best of my knowledge, nothing exciting is cooking there. Yes, you can create a rich Internet application in Java, but if you take a cab hellip;