The Source for Java Technology Collaboration
User: Password:



Start New Message Post a Reply

Subject:  Fix Generics and stabilize the language !
Date:  2007-08-12 04:12:19
From:  aehrenr


The art of language specification is not to shove any thinkable feature in the language. And it is important that the language should be as stable as possible, what should change and improve are the APIs. The art is to include only features in a language that fit to the concept at hand. And the concept of Java was to have a simple core language and many APIs (and to be very portable). This was the reason of success for Java. There are hundreds of other languages available if one looks for different concepts. And don't forget: Python or Ruby and others where already available for a long time and they never had the prevalence of Java and they never will. The specification of generics was already a demonstration how NOT to design a language extension: Much too much complexity for very little gain. Fix this by using reified generics even when there might be slight incompatibilities.
And don't supercharge the language: To be a good tool an average programmer must keep the whole language in mind. (I seldom met anyone who really knows the whole C++ language, this is very bad if you work in teams, because every programmer knows a different subset of the language and has a hard time to read the code of the others).
If one wants to use many features I suggest to learn many languages! Look how goofy C# already looks! It is the next Ada or C++.
Many of the proposed features are not good for a language that can be used for big projects and code that is maintained by many people. This was the reason to use Java and not because it had the same language constructs as Ruby, Python, C# or whatever.
There is already a Java with closures and many cool and dynamic features. It is called Groovy. Instead of cluttering the Java language a better support for Groovy should be given. (And sync the syntax of homolog features e.g.. the foreach loop)

 Feed java.net RSS Feeds