Java on the desktop today
A discussion on the future of Java on desktop is going on right now at JavaLobby .
A anonymous poster (rba1988) asks the following question:
“I was just wondering what you people think of the future of Java standalone/desktop applications. What’re your opinions on this? Do you think people will continue developing pure Java applications that you won’t find on web pages but on the desktop. Or do you think that Java programming are really meant for applet development and not for application development?”
The readers of this respected online forum are actively participating in this discussion and, as usual they try to protect their ten year old pet called Java. Some say that Java is improving on the desktop and has good opportunities there. The reason is simple and prosaic: Java Swing puts bread on their tables. They do not want changes. They do not want to learn another language or tool. They can do everything with Java Swing.
C’mon guys, get real. IMO, Java Swing will slowly but surely go away: first, from the Web applications arena, and in several years from the desktop. Sun Microsystems has been treating Java on the desktop as Cinderella way too long. Now Sun is way behind. So who’s way ahead? Adobe with Flex 2 on the Web and Apollo on desktop and Microsoft with their WPF/E.
Swing is very very powerful tool, but it’s very expensive. I’m talking about real-world applications not mortgage calculators. You do not pay for a Java license, but you pay high salaries to people who develop in Swing. They write tons and tons of code. In addition to this, IDEs generate tons and tons of boilerplate code. Someone has to read and understand all this.
What about deployment? HelloWorld with one text field and a button won’t run on your PC unless you’ve installed the JRE that weighs 16MB (Sun is trying to make it lighgter for the Web ).
Yesterday, I was creating an application for my client in Flex 2 that runs in Flash Player 9. All of a sudden, some big shot came in and a quick demo was required. No, the big shot can’t stop by my desk and wants to see this Web application in action on his laptop in his office. No problem, because I was not using Swing. I was using Flex 2, so I copied a couple of files to a webapps directory under Tomcat, and emailed him the link. He clicked on the link, and a message “Flash Player 9 is required. Do you want to install it?” poped on his laptop, he pressed OK and 5 seconds later, he was working with my application, which was working with Java messaging feed on the server side. Do not trust me? Click on this link (it’s not my yesterday’s application but is similar to that) http://samples.faratasystems.com/porfolio/PortfolioRpcDemo.html
It should be up and running within seconds. By the way, this entire application including quote generation (random numbers by a POJO), charts, RSS read and links to Yahoo financial news is less than 300 lines of code.
Adobe or Microsoft?
The next question is, who is going to take a lead in the RIA area: Adobe or Microsoft? Let’s talk about penetration of new software. Do you know which OS I am using at work? Windows 2000 professional. Let me check my calendar…Yep, it’s 2006.
There is no other software in the world that has such a high penetration rate as Flash Player. As per Adobe within a year something like 80% of people upgrade Flash Player to newer version (the numbers might be slightly off). Within three months 50% of user will switch to Flash Player 9. Do you know which JRE version is used for most of the applications at my current client’s site? You got it, 1.4.2. It’s been two years after release of Java 1.5.
Competition: Microsoft WPF/E and C# combo. On the side note, Java Swing beats C# on the GUI side. My friend is working for a company that has decided to replace their Swing GUI with C# in their financial trading application. They can’t get the same performance they had before… Anyway, it won’t be easy for Microsoft to catch up with Adobe , but hey, it’s Microsoft. Gotta respect them.
AJAX won’t become a mainstream on the business applications landscape. It’ll find its limited use in consumer facing applications like Amazon, Yahoo, Google and major online retailers.
A happy Java ending
I love Java…one the server side where it belongs. Well, there is one more area for Java: mobile devices. More and more people believe that their cell phones are not just telephones that should be used for dialing phone numbers, but also cook breakfast in the morning. Java is a leader in the mobile space and I do not see any danger there. Flash Lite is way too young, and is making its first baby steps at this moment.