Not talking about the recent Java/Oracle debacle here, but something I've been wondering recently.

When I first started programming, Java was the big thing client-side, however these days you hardly ever see a Java applet whereas Flash and Javascript are ubiquitous.

Where did Java go wrong? Did Sun decide to concentrate on the server-side and let client-side stagnate? How did Flash become dominant over Java? Flashy (no pun intended) graphics? Marketing?

Never having been a Java developer, I've not followed this closely so I'm interested to hear your thoughts.

  • 7
    Flash managed to actually do, what Java applets was intended to but didn't. – user1249 Nov 27 '10 at 7:05
  • 1
    any examples ?? – Geek Nov 27 '10 at 17:50
  • @Geek, an applet takes a very long time to start up as the whole JVM needs to be pulled up which takes much longer than for flash. Also Flash was much smaller and easier to install and integrated much better in the web page (might be better these days), and it can play video too. – user1249 Jan 17 '11 at 0:04
  • Firewalls would sometimes block java applets, so developers couldn't be sure if they were going to work or not.
  • They required a browser plug-in, which led many developers to favour javascript over java applets, so that they didn't require the user to download and install a plug-in. The Macromedia Flash plug-in had a simpler, more seamless, and less noisy means for downloading, installing and updating.
  • The API wasn't so standardized then, so applets could fail to work if the user didn't have the right version of java installed.
  • They had a slow loading time and used too much memory. They would often crash the browser.
  • Java applets died before Swing came out, so GUIs were difficult and ugly.
  • IE wasn't so good at supporting applets fully, so compatibility was difficult to sort out.
  • Flash and javascript are much easier to use for non-programmers.
| improve this answer | |
  • +1 for a comprehensive list of just about everything that went wrong with applets. – Gary Rowe Nov 27 '10 at 16:07
  • 2
    +1 From a users point of view Java applets are just too clunky compared to Flash. I cringe every time that JVM tries to install. – Craig Nov 30 '10 at 5:17
  • 1
    "Flash and javascript are much easier to use for non-programmers." I've never seen worse JavaScript than JavaScript written by Java devs. – Erik Reppen Jul 7 '15 at 23:06
  • This answer seems to conflate Java with browser applets. Whenever java was forced to run in a browser it already lost the battle. Java has its own sandbox and was designed to run on every computer without being double wrapped by a browser. – Tomas Zubiri May 26 at 21:54

I believe streaming video was the "killer app" for Flash. Although video had been tried before in Java applets, the frame rate wasn't very high and it required users to install the relatively heavyweight JRE.

Along came Flash with its small install size and (eventually) high video frame rate. It helped that browser vendors started including Flash as part of the default browser installation.

Java is still hindered by a large installation size and slow start times compared to Flash.

| improve this answer | |
  • 6
    I think it's worth noting that video was already perfectly possible without either. QuickTime or Windows Media Player was already available on the majority of browsers when streaming video started gaining traction. But both of those technologies made it too easy for users to download video to their pc's, and so it simply failed to gain traction with content producers. Flash, by comparison, makes it very hard for average users to store the streaming media (and presumably redistribute it), and so content producers accepted it. – SingleNegationElimination Nov 27 '10 at 8:25
  • 1
    @toke, quicktime had a painful install procedure as well. – user1249 Jan 17 '11 at 0:05

Besides what everybody else pointed out, I'd like to note the developing difference: Java is more appreciated by serious coders and is seen a lot in universities, while Flash is meant to target web developers (programmers too, but as a secondary audience to the platform).

So you see Flash doing things it shouldn't (like whole websites) in the hands of designers, while Java isn't in the hands of designers in the first place.

| improve this answer | |

Applets and Flash are different technology. When first introduced, Applets had a lot of security holes in them, you could effectively run your program on the Client side which is not what any customer wants. Later this technology was improved substantially. On the other side Flash is more lightweight than Applets were. People more readily accepted Flash and didn't consider it as a security threat. Apart from minor vulnerabilities that do occur in Flash plugins, Flash was much safe. The initial security setback hurt Applets dearly. Also you are right probably Sun didn't pursue Applets that aggressively.

Something similar to Applets and probably more useful, is the native client that Google is trying to build for Chrome. Let's see how it goes.

| improve this answer | |
  • 1
    You appear to be confusing applets with ActiveX! – Tom Hawtin - tackline Dec 9 '10 at 1:21
  • Very interesting, no I didn't but can you explain what made you think so ? – Geek Dec 9 '10 at 3:15
  • 1
    Applets were always very safe compared with ActiveX controls (and Flash for that matter). Wikipedia quote: "As of 1999, no real security breaches involving unsigned applets have ever been publicly reported" - and this was after a few years of applets in the wild. – mikera Jan 27 '12 at 9:24

The whole idea of cross platform UI is flawed. Windows uses very different layout, mechanisms, key presses etc etc to Mac OS X. To make a seamless experience that doesn't irritate the user, you have to make your app exactly right for that platform, taking advantage of the platform specifics used.

Any cross platform solution will always suffer from a "least common denominator" - only the very basic things the different UIs have in common can be used and that makes for a bad user experience all around. This is the same argument all-mighty-steve uses against flash on the iPhone.

I think the irritate the user issue is a very fundamental "soft" problem, that people from a tech perspective often miss.

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.