I've been meaning to write this for some time, and for all the time I delayed the more poignant the point I wanted to make started to become as new news came out further solidifying my angle. When I begun writing this article the iPad had not yet been revealed, iPhone OS 4 was not on the map and Apple had not yet purchased Lala. You've probably just noticed that all of these events in fact point toward Apple embracing the web more and in this article I will point out why this is not the case because I believe Apple's agenda here is similar to something we've already seen in recent history.

No one cares on the desktop for one very good reason. There is not a single Java desktop app that doesn't scream out at the top of its voice, "I'm written in Java". Which means that it is slow, eats memory for breakfast, and doesn't fit in with the rest of the desktop within which it is running.

If there is one that doesn't do this, please point it out.

Oh god, seemingly every day I ask myself whether I really should take the effort to counteract this kind of FUD yet again.

How about this: Name one that does do this and try to prove with some semblance of credibility that you have used a Java app within the last decade.

As for ones that don't do this, sure: Eclipse (and by extension Flash Builder and many other development tools), IntelliJ, NetBeans, Matlab, Maple, LimeWire, Azureus/Vuze, Puzzle Pirates (technically a browser game, but this thread was supposedly about plugins so I figured I'd mention it). There are plenty more less well-known examples I could dig up, but I think I've made my point.

The post I replied to mentioned desktop. You have ignored what I stated about java apps. All the apps you list still scream that they are written in Java. This is not FUD, this is user experience based fact.

The post I replied to mentioned desktop. You have ignored what I stated about java apps. All the apps you list still scream that they are written in Java. This is not FUD, this is user experience based fact.

OK, to quote your claims again...

Which means that it is slow, eats memory for breakfast, and doesn't fit in with the rest of the desktop within which it is running.

Slow... um, no. Maybe the JavaVM initially starting means an extra 10 seconds startup time. After that, all of the apps I mentioned are as snappy or snappier than their native counterparts. (Example of being snappier: Many native apps *cough Apple Mail cough* actually experience a full UI freeze while they do anything remotely complicated. Most well-written Java GUI apps on the other hand take advantage of background threads to avoid that kind of thing.)

Memory: None of the apps I listed above takes more than around 160MB of memory. That seems quite normal for the kind of complex applications they represent.

Fitting in: All of the above-listed Java apps match the look and feel of native apps perfectly (or so closely that perhaps 90% of users would fail to notice the difference). If you were to ask the average Flash Builder user whether they realized that Flash Builder is a Java app, I would guess maybe half of them would have no idea, and the rest would only know because they happen to be programmers. The only areas where natively-styled Java apps occasionally don't match is with the Open/Save dialog boxes of certain Swing apps, which is admittedly quite a sore point, but hardly justifies the claim that the entirety of the above apps do not fit in.

"There is not a single Java desktop app that doesn't scream out at the top of its voice, "I'm written in Java". Which means that it is slow, eats memory for breakfast, and doesn't fit in with the rest of the desktop within which it is running.

How about this: Name one that does do this "

Easy: Vuze (née Azuereus), Eclipse, Netbeans (though this is one of the better ones). They're the only java apps I commonly use and they are all horribly slow and ugly. The one good (in terms of speed/responsiveness) Java program I've used is Matlab.

Of course, there are slow and bloated C++ apps too, OpenOffice springs to mind, but they seem to be less common. I think that the reason is probably this:

Although it is possible to write efficient Java programs, you can't really do it if you write things in a 'Java' way, i.e. not worrying about memory, using heavy types like Integer, and so on. Consider that when writing Android games, one is advised not to display the FPS, because formatting the string creates a new object each frame! Wtf?!

Fortunately (p)NaCl is language agnostic (unlike JVM). It's also written by google who are pretty bright so hopefully it won't take ages to load like the java plugin.

Um, OK. I just listed off the first that came to mind.
But why don't you list off the names of cross-platform apps written in Qt. You will find that they have stayed pretty much the same, too--Picasa, Google Earth, and... not much else springs to mind actually. Flex--admittedly they've got some fresher programs, but nothing with the complexity of the Java apps mentioned, and for good reason. How about some other cross-platform toolkits? Let's take a look at XUL. Firefox, Thunderbird and Co, Komodo IDE--that's most of it. GTK+? Well, there's Pidgin, GIMP, AbiWord... nothing much new there either.

How does claiming that it's the "same old list" prove anything? It's the same with most desktop software across the board.

Put another way, if I were to list off a bunch of little-known Java apps, would it really support my argument? By the same extension I think you'll have trouble finding many examples of apps written in any other toolkit that don't warrant the same answer from me of "oh, those same apps listed again"?

I admit that JavaFX has been off to a slow start and Swing is getting a bit long in the tooth, but writing off Java on the desktop entirely seems to me to be unreasonably short-sighted.

Btw, if you want proof that plenty of people are gleefully ignoring your kind of FUD and just creating things with technology that works, take a look at one of the most innovative projects mentioned on OSNews not too long ago, Code Bubbles.

Most of those have average to poor performance and take ages to load. I've used Maple for years, then tried Mathematica, and it feels incredibly faster and snappier in most cases. Mathematica's interface for formatting is arguably better too, but it may be due more to the developers than to the GUI toolkit being used.

Same for Vuze vs KTorrent or µTorrent. Again, performance loss is huge, especially on the interface snapiness area.

Same for matlab. Until it gets usable, on an average computer, I usually have more than enough time to make and drink two cups of coffee...

Admittedly I haven't used Vuze recently since uTorrent is much closer to what I need, but back when I used Azureus it had a snappy UI regardless of the PC. Possibly Vuze's flashy chrome makes it slower, but I doubt it's much slower than a native app that uses similarly flashy chrome.

As for startup time, I already admitted that that is an issue. However, it's an issue that the last year or so of Java updates have addressed, and which is still being improved upon. Also note that this is primarily an issue the first time the JVM starts up, though it's possible that for IDEs this doesn't apply since they often use private VMs.