Bruce Eckel started an interesting debate with his article on artima. He elegantly puts forward the view that it’s perhaps time to stop adding to Java and to move on with new languages. I have struggled with issue in relation to JSR292, the invoke dynamic proposal. In some ways doing very little is entirely possible but it shifts significant burden to the JIT implementer to do a good job. More radical change will likely result in better end results but there is certainly a cost to be paid in backward compatibility and complexity for that. I have to vote for stability, just because that is what always won out for the x86 market.
What this debate reminded me of is a famous Craig Barret quote:
“Barrett compares Intel’s microprocessor business to the creosote bush, a tall desert plant that drips poisonous oil, killing off all vegetation that tries to grow anywhere near it. Microprocessors so dominated the company’s strategy, he says, that other businesses could not sprout around it.” - BusinessWeek
In this case it’s the Java business/hype that has always hindered other JVM languages. Sun have clearly being trying to change this over the last year but it’s small steps so far. The crux for me is that the JVM is and always has been a slave to the Java language. Until this changes and it becomes independently managed for the benefit of many languages we are stuck. Maybe OpenJDK will make this possible but good opportunities are frequently lost due to poor business decisions.
Filed under: Dynamic Languages, Intel, Java, invokedynamic