Factor Language Blog

Java 7: too little, too late

Saturday, January 10, 2009

So I’m reading an article about Java 7, and the new features just don’t seem very compelling to me.

For example, look at this quote from the article:

JSR 203: NIO 2 extends and completes the work started in JDK 1.4 in the original NIO enhancements. The most obvious addition in NIO 2 is a complete overhaul of the file-access APIs. Most developers have used java.io.File and are aware of the long list of shortcomings:

  • No support for symbolic links
  • No support for straightforward or atomic move and copy operations
  • Cumbersome APIs for walking and filtering directories
  • Very limited support for access to permissions and file attributes
  • No API for watching directories or files

Funny how Factor’s IO library already has all of those features, with a cross-platform API on top, and more. Unlike language implementors who decided to host their language on the JVM, I don’t have to sit around twiddling my thumbs while Sun implements basic functionality.

And then there’s this quote from the article:

Given shrinking resources at Sun, the number of significant JSRs, and pressure to release, it seems that it’s unlikely that closures will be included in the Java SE 7 release.

“Shrinking resources” indeed. During the dot-dom era, Sun pumped massive resources into Java, hiring an army of mediocre programmers to crank out feature after feature, half-assed API after half-assed API. Now all those bad design decisions, complete disregard for maintainability, and backwards compatibility is really weighing them down, and they’re having trouble moving forward. This is why newer, better-designed languages and language implementations are able to evolve so much quicker than Java.

It’s 2009 and only now they’re adding APIs to work with symbolic links, and move and copy files? And no closures? What a joke.