I find this discussion very intriguing in light of Apple's now-infamous ToS clause 3.3.1 (can only use C/C++/ObjC on the iPhone). So is okay that Apple's limiting the languages you can use, because they doesn't matter? Or is this still evil on Apple's part for trying to be restrictive?
I'm not trying to troll here; I'm honestly interested in people's opinions.
Personally I tend to believe that languages do matter, and therefore Apple's policy makes sense as a way to prevent crappy ported apps, but it's still evil. It's not impossible to produce a great ported app, just more difficult; plus, porting apps isn't the only reason why you might want to run non-Objective-C code.
The Objective-C language being one very good reason for wanting to run non-Objective-C code.
Frankly, I'd much rather they adopted a direct appstore policy to reject apps that don't feel native or performant enough, rather than coming up with a second level of indirection that assumes all apps not written in their approved language of choice has those qualities.
It's no different from saying 'the last 10 apps that were submitted from Podunk were all poor, so no developer from Podunk is allowed to write iPhone apps'
In practice the JVM does quite well on memory usage, its only flaw being that it doesn't release memory back. If your Eclipse instance ends up using 2 GB that's because it does lots of stuff and needs 2 GB of memory.
Either way, Eclipse is comparable in memory usage with Visual Studio, which has most of its components written in C++.
The only problem with using Java for desktop apps is with native integration with the OS ... Java GUI toolkits suck badly, except one which isn't really popular ... Qt Jambi.
But in the case of Android, this discussion is not really relevant ... they use their own VM that has different optimization goals (so any comparison to the JVM is apples vs oranges), and every component you use is native to Android.
Not true. The Sun/Oracle JVM at least most definitely releases free memory. It's just rather reluctant to do so - but that, too, can be tweaked via the -XX:MinHeapFreeRatio and -XX:MaxHeapFreeRatio parameters
I'm with you - Java doesn't excel particularly on conventional PC desktop apps. But that's a world away from mobile apps.
The vast majority of run-of-the-mill phones run Java J2ME apps very well.
For example:
http://www.jamster.com/fw/goto/games
The top games are pretty high quality. But the rant against Java fails to mention the billions of J2ME games downloaded... convenient.
That said, yes, many Java developers write bad code, but so do developers who write in other languages. Java just gets a higher profile because unfortunately the Java community has a tradition of writing libraries and APIs that sacrifice usability for flexibility (that's the kindest way I can put it, anyway).
Slightly off-topic: Am I the only one who feels that Eclipse is the IDE equivalent of a hair shirt? I find its UI sluggish, its insistence on imposing its ideas about project management on you irritating, and to be generally overcomplicated. To me, NetBeans, former versions of IntelliJ, and VS are much nicer products (mind you, half the time I still just use an text editor though).
Something like the Eclipse RCP mail app demo could provide a more representative baseline memory footprint of the platform (http://www.eclipse.org/articles/Article-RCP-3/tutorial3.html). The Eclipse platform can be quite compact without the IDE features, JDT & online help indexing, etc.
Check out Processing for a nimble Java app.
Explain recursion in Applesoft (or any other 8-bit) BASIC.
The tools I have used have, yes, deeply impacted my professional development.
Had I not seen Smalltalk in mid 80's, I would have liked C++. Had I not seen Python and Zope, I would find Java and servlets and all the stuff built on them cool.
Edit: Had I not learned APL (and, to a lesser degree, Perl), I would not write program as well documented as I do now.
The article doesn't seem to mention the millions of J2ME games available on run-of-the-mill phones, which are pretty high quality. So the argument that it must be Java's fault is completely misguided.
Just one 'top list' of J2ME games available, showing some pretty professional titles, by big names and small alike:
http://www.jamster.com/fw/goto/games
More likely to be the fact android is still relatively new, comparatively small market size, etc that is keeping more professional game/app developers away from it. But I'm sure it'll mature if the market size increases.
Please get away from this "Languages are soooooo important!!!" bs. Languages just don't matter. They don't.