The End of an Era: Scala Community Arrives, Java Deprecated

It was recently announced that InfoQ is creating a new Operations community, which will be our seventh commnity. In addition to that, another major change which has been in the works for the last few months at InfoQ is the conversion of the Java community to the Scala community. InfoQ spoke with a prominent Scala expert and members of the former InfoQ Java editorial team to learn more about this change and why it was made.

Describing this transition, Charles Humble, lead editor of the Scala community, said:

As the lead Java editor for InfoQ the decision to drop coverage of Java and concentrate instead on Scala is not one we took lightly. In 1995 Java represented a paradigm shift. By taking ideas that worked well in other languages such as C, C++, Cedar/Mesa, Modula and Simula, and adding built-in distributed programming support, it moved both OO and distributed programming into the mainstream of enterprise computing. Today a similar paradigm shift is occurring as a consequence of the rise of multi-core machines, and it is functional language based. Scala is the Java of functional programming, described by Neal Gafter as "a strong contender for Java++." For modern enterprise computing Scala represents a much more logical choice then Java, and we expect it to become the dominant language on the JVM this year. We've recently thrown away InfoQs existing Java code base, re-writing it in Scala, and we expect many of our readers are engaged in similar activities. In view of this we've decided to concentrate our efforts on our Scala coverage, and to drop coverage for the Java langauge, and related legacy topics such as Java EE and Spring from these pages.

Dean Wampler, Ph.D., the co-author of O'Reilly's "Programming Scala", offered this comment on the sudden industry switch to Scala vs. the less appealing alternatives:

We all know that object-oriented programming is dead and buried. Scala gives you a 'grace period'; you can use its deprecated support for objects until you've ported your code to use Monads.

A measure of the rapidly-growing dominance of Scala is the book market. Three of the four introductory Scala books were published in the last year alone. Several books on more advanced Scala topics are due this year.

Our decision to move our code base to Scala has been validated by Oracle's decision to rename their Java.net site to Scala.net, effective today. They are offering a grace period for existing Java projects; they have until May 1st to port their code to Scala, after which time all remaining Java projects will be deleted. Similarly, Google Code has marked all its Java projects as "deprecated", effective today.

For those developers who need to port their Java code to Scala, Dr. Wampler offers this advice:

Just rename your .java files to .scala, run the scalac compiler, and fix the errors. You'll be done in no time!

What the emergence of so many JVM languages has taught us, is that our industry finds great value in the Java Platform but not necessarily in the Java language itself. This fact has spurred several discussions over the last couple of years about which language is going to replace Java and become the dominant JVM language - AKA "Next Big Language". The plethora of Java alternatives and the polyglotism trend, has led many in the past to believe that there isn't going to be a dominant alternative.

It is my belief that these people have been proven wrong by Scala's momentum that has been getting stronger and stronger since the early days. This language has all the necessary ingredients to completely replace Java and yet take full advantage of all the APIs, VMs, platforms and know-how that have been part of the Java ecosystem for so many years.

Drawing from InfoQ's statement of purpose which is to "track change and innovation in enterprise software", it was only logical to make a decision to focus our efforts exclusively on Scala!

We're still going to periodically cover Java related news, as we do e.g. with COBOL, but it makes no sense to have a specific community especially for it.

In a related development, Yukihiro "Matz" Matsumoto, the inventor of the Ruby language, announced today that the next version of Ruby, 1.9.2, will switch from dynamic typing to static typing, using a port of Scala's type system. Analysts speculate that the move is an attempt to stem the tide of developers who are moving from Ruby to Scala.