Delete comment from: Neal Gafter's blog
Yikes! With Neal's proposal on adding closures to Java, I see the same mindset that destroyed C++ as a language that could be used by mainstream developers.
Closures in today's world are a "language geek" feature. Unless done extremely carefully and in a way that supports the various skill levels of developers, they end up being unusable and unsupportable by anything less than computer language savants. In their inherent obscurity and complexity, "language geek" style closures are about as anti-Java as you can get.
I believe Joshua's views represent the bulk of mainstream Java developers and existing development while Neil is pushing hard for something that is important to Neil as a personal accomplishment and maybe a few other "language geek" cohorts, most of them probably C++ hackers who have developed their own inscrutable C++ dialects.
If Java is going to have any sort of longevity, the people running the show have to _slow down_ and _continue to improve existing features_ (such as generics), including _reworking_ the language to incorporate what has been learned to date.
I see a terrible attitude towards Java these days -- glue on new features copped from other languages -- instead of focusing on the quality of the existing language features and solving real development problems with true innovation.
In other words, there is great value in making complex problems simple to address.
There is _no value_ in making complex problems complex to solve. That is anti-value because of the load on the overall language created by adding the complexity.
It is very important to _take time_ to consider big changes, not just hack stuff in from other languages (in an ugly way nonetheless). Java is not C#. Java is not Scala. Java is not Haskell. Java is not Lisp. And so on.
Another way of talking about it:
The lifetime of a ship is dramatically reduced if you sail the ship a long time without putting it into drydock and giving it a thorough overhaul.
Java has not gone into drydock. It is dying, opting out of its own future, because its internal systems have not had that overhaul. The learning from all that time at sea has not been applied to reworking and rebuilding the ship's systems. Welding a bunch of new appliances onto rusted pipes is not going to make it out at sea. Plugging in a bunch of new high-wattage toasters into old overloaded electrical systems is a recipe for disaster. And that is what is going on today.
Strong words, dying and all, but those with strong pattern-based predictive abilities will know exactly what I am talking about.
I have a fondness for Java. I really do hope the language (meaning the language, the VM, the runtime environment, etc) gets its time in drydock. And that the "language geeks" are kept in check, their energy channeled into genuine innovation, making complex problems simple to address. After all, that _is_ Java.
Dec 16, 2007, 9:04:00 PM
Posted to What flavor of closures?

