After the news that the new MacBook Airs do not ship with Flash pre-installed (which is news considering Flash has been part of Mac OS X for a very long time), we now have news that Apple is also taking what appears to be the first steps towards removing Apple's own Java runtime from Mac OS X.

"You probably don't know how valuable it is in the enterprise. It is powering many crucial applications where availability and performance is crucial. Of course, for simple webapps it is not best option anymore. True. But banking systems, medical data systems etc. benefit from Java.

I think that isn't so much because Java is great, but more because those industries simply won't switch from Java to something easier to work with because they are slow moving industries. I've worked at a couple of banks, and some apps are still written in COBOL, but that doesn't make COBOL a great language.

Performance and high quality software is possible in Java; but you need to know what you are doing. It is very easy to write crappy code that is very inefficient.

That's the problem with Java, I think. It is far too wordy and complicated, so developers (especially those new to Java) end up writing crappy code.

And the development of other languages on the JVM (Scala/Groovy/JRuby) is also very valuable.

I won't comment on Scala or Groovy, since I've never used them, but languages like JRuby and Jython exist due to ePenis envy on the part of Java developers since developing in languages like Python and Ruby is much more rewarding than developing in Java. "

I am constantly switching between java and various scripting languages and have been working with both in bigger projects. I cannot agree here in any point. You save code on the scripting side at the first look, (I think the biggest code savers are mostly the dynamic delegation and method replacement which is woven into the language core in one form or the other) but on the other hand the dynamic nature enforces you to put your emphasis in coded typechecks and more unit testing than you do in a compiled statically typed language. If you omit that you run into a huge mess once the system becomes bigger due to the dynamic nature. Thats just how things are, you remove one safety net, which you then have to provide in your code, so the bigger the code the less productive you become and I think the productivity loss is bigger than in traditional languages in the long run per loc you produce.
The turning point I think is somewhere between 5000 lines of code and 10.000 (including unit tests in my experience)

As for the jython etc... me too argument I would not say it like that. Those languages benefit tremendously by being run in a jvm environment especially if they are compiled into class files instead of being run into an interpreter. You have a huge load of libraries which you instantly can use, the vm normally scales better than most native vms of the respective languages when it comes to multithreading etc...
After all the JVM has gone through tremendous optimizations over the last 13 years which make it very suitable for a server side environment.

Just my 2c of someone who does scripting languages as his bread and butter - living work.