Thursday, May 22, 2008

On breaking Java

After Ola Bini's post on a list of features he would like to see in a compatibility-breaking version of Java, everyone seems to have his own, so here's mine:
  • No primitives.
  • Closures and arrow (function) types. This would also open the door to using methods as values and method names as first-class identifiers.
  • Non-nullable types by default. Use of something like Scala's Option.
  • Better support (syntactic sugar, friendlier APIs) for immutable types (and maybe explicit pure functions?).
  • Reified generics, with some improvements as well.
And the most important thing for me would be to clean up the APIs, removing obsolete ones and retrofitting the others to the new features.

No comments: