There is no shortage of "Java killers" on the market already. Microsoft arguably fired the first shot in the current language wars with .Net; its Common Language Runtime is a virtual machine environment very much like the JVM. And its C# has widely been criticized as a Java imitator, albeit a superior one in some respects. More recently, Google announced a C-like language of its own called Go, with the aim of making it easier for developers to write multiprocessing applications for modern CPUs and distributed architectures.
Leaving aside those platforms, Ceylon is far from the first alternative language for the JVM. In fact, Wikipedia now lists more than 60 languages that target the Java platform, either by compiling to Java bytecode or by running in a Java-based interpreter. Among the most widely used are Clojure, Groovy, JRuby, Jython, and Scala. Some are ports of existing languages, while others are unique to the JVM.
Not surprisingly, some of the harshest criticism of Ceylon has come not from Java programmers but from users of these alternative JVM languages. Many wonder why Red Hat would choose to reinvent the wheel yet again, rather than lending its considerable development muscle (and deep pockets) to one of the existing efforts. For example, "I worry because I think Ceylon is worse than Scala, but it could win anyway," writes developer Lachlan O'Dea in a blog post. "I would much prefer a world with Scala jobs in demand than one with Ceylon jobs in demand."
It's pure speculation, but I can imagine one reason why Red Hat might want a language uniquely its own: Fear -- namely, the fear that it will be left behind in a market where the role of OS vendor is gradually morphing into that of platform vendor.
C# and .Net are obviously a Microsoft silo. When you code using those tools, you target the Windows OS and you probably use Microsoft's Visual Studio development environment. Similarly, Go is exclusively a Google product so far, and Google will probably remain the leading source for Go compilers, tools, and source code for the foreseeable future. (At the very least, you won't see any Go code coming from Microsoft.)
More important, Java is now undeniably Oracle's creature. The database giant controls the assets of both of the former leading Java vendors -- Sun Microsystems and BEA Systems -- including the WebLogic application server, the JRockit virtual machine, the NetBeans IDE, and the Java language platform itself. If you're a Java developer, from now on you're in bed with Oracle, like it or not.
That can't sit well with Red Hat. Its JBoss application server competes directly with WebLogic, although it's hardly as lucrative. Meanwhile, Oracle offers Unbreakable Linux, which is no more than a rebranded version of Red Hat Enterprise Linux coupled with an Oracle support contract. In the race to corral OS customers into vertical product silos, Oracle is clearly in the lead.
It's time to collaborate, not compete
If that's really Red Hat's rationale, however, the Ceylon response is a mistake. The simple fact that Google has yet to make much of an impact with Go demonstrates how hard it can be to gain traction with a new programming language, particularly in a market already crowded with options.
And for all its strengths, Red Hat's alternative isn't particularly novel. Another JVM language, Groovy, already markets itself as "a super version of Java," while Scala offers an even more radical departure from the staid Java syntax. To embark on a third try now smacks of hubris.
If Red Hat really wants to reenergize the Java community, it would do better to set aside Ceylon and put its talent and resources into one of the existing options. Scala seems like a good choice (although King seems to have already vetoed it). If nothing else, using its market muscle this way would demonstrate that Red Hat still stands for the original spirit of Linux: communities, not corrals.
This article, "Red Hat's Ceylon language is an unneeded tempest in a teapot," originally appeared at InfoWorld.com. Read more of Neil McAllister's Fatal Exception blog and follow the latest news in programming at InfoWorld.com. For the latest business technology news, follow InfoWorld.com on Twitter.