Remember the good old days of Web 1.0? There was no Myspace, Blogspot or Wikipedia at that time, but there was Angelfire, Geocities and a large number of student pages in university websites hosting tons of information. They were the ones who made Internet what it is today. Each “webmaster” as they were called those days would display his or her best creative work. It was a world of mostly static web-pages with animated gifs, cheesy backgrounds and low resolution images with liberal use of “Under Construction” banners. Then came Java.
When Java arrived, the term Java and Applet seemed interchangeable and for some time it seemed Java was only meant for creating cool applets to be hosted in browser, pretty much where Flex/Flash is today. In fact applet is what made Java a household name to begin with. Very soon a number of interesting applets sprouted up, adding the right amount of dynamism to the colorful websites. There were a number of scientific applets demonstrating algorithms, evolution, etc. Then there were chat applets popularized by the so called “portals”. Then there were applets with scrolling news (kind of like mashups of today’s world) and applets to do some special jazzy graphics effects on images. At one point Applets were everywhere. I don’t know when it really started, but over the years applet started phasing out from the web and actually many developers now consider them a no-no for web-pages. So what happened? How did applet lose it’s lustre?
Who killed Applet 1.0?
By keeping on bundling an antiquated version of JVM with Internet Explorer. This version wouldn’t run any applet developed with latest java version – no swing, no collections. This is a big handicap for developers. If Microsoft had stopped shipping it’s JVM, more people would have downloaded the latest Sun plug-ins, thus keeping their browser’s up-to-date. Look at Flash, how come most people have the latest version?
The one thing Sun should have tried in it’s ever popular battles with Microsoft should have been to stop them from shipping that JVM, instead they fought for the opposite which IMO was really stupid. Sun also didn’t make much attempt in tying up with Dell and other PC manufacturers to bundle the latest Sun Java plug-in. Meanwhile, Sun’s focus shifted from Applets to enterprise server side computing – EJB, JMS, and what not. I think the plug-ins were not very well thought out and particularly didn’t handle first time install in a user friendly manner. Not to mention the huge size of the install, breaking backward compatibility and popping up meaningless error messages. In an environment where many desktop apps are moving to web and Google Docs, Maps YouTube, and Meebo are catching up like wild fire, Sun is going to regret it. Flash and AJAX are miles ahead in user adoption (not technology). Also the security folks in Sun went overboard and introduced self-defeating sandbox rules and crazy messages like “Warning Applet Window” and all other assorted security messages that do nothing but scare the users more than mortgage refinance and on-line casino pop-up ads.
Developers didn’t make it any easier by writing apps that started breaking with newer JVMs, and not taking the time to fix the apps. Also many of these apps were not smart enough to guide the users to install the plug-in when it was not pre-installed in the browser.
Believe it or not, many companies still mandate the use of Microsoft JVM in IE and make it impossible for employees to use a plug-in. This makes it difficult for developers to create applets unless they are keen on writing there own Table and Tree component in AWT ;-).
Ok, what has happened has happened. As a developer of Java and Swing apps, I know that it is probably the richest development platform available. You can do anything in Java – there’s an API for everything. Java is open source; there are awesome open source IDEs like Eclipse and Netbeans (which is great for Wysiwyg GUI design); thousands of open source utilities are written in Java; Java has a huge developer base. So why not leverage all this and build on it rather than reinventing the wheel with Flex and AJAX. Once you get over the gloss of Flex, you will realize that except for the XML layout, it doesn’t make life any simpler than Swing. And AJAX is really pushing the limits of a scripting language that was put together for simple scripting needs.
So what can be done? To help us get started, Sun JDK 1.6 plugin is significantly better than previous ones and thanks god Microsoft has decided to phase out it’s JVM. Also more people now use broadband thus significantly minimize the bandwidth issues with applet downloads. A few things that comes to my mind (feel free to add):
1. Create a Applet 2.0 showcase
I am going to keep updating this page with links to cool new applets. If you find one or have developed one, let me know. The more cooler applets we create, the more incentives there will be for people to download the plug-in. Also developers can gain more confidence in the viability of applets by looking at the cool pages. The Sun page is good, but IMO overtly downplays the power of applets.
2. Request to sun
Can we compile our code to a single file of some sort (like swf) instead listing out all the jars. This is a good start. Also please carry on the good work you have been doing lately with the plug-in. Please work with the PC and browser makers to always bundle the latest-plugins and have a means for automatic updates. Make swing prettier out of the box, and please remove the unnecessary messages like “Warning Applet Window”. Also let’s have XUL and please don’t hype up something like Java FX that any developer can see through and know that it is no silver bullet. Guys you have your Silverlight/Flash in Applets, so just build on that.
I do sincerely hope that when desktop like applications are getting more and more prominent in web, the technology that started it all doesn’t fall behind for no good reason. Heck, Java had a JMF video player back in 1997. So why is it that everyone is going ga ga over the Flash player that Youtube and others use? So c’mon people, let’s bring on the Applet 2.0 revolution.