So Marc Richards and then slashdot picked up on my presentations at InfoQ China. I wasn't quite expecting this level of exposure at this point, and I imagine that things will quiet down pretty quickly at least until we do an initial release of the compiler. All we have right now is a specification, an ANTLR grammar, and an incomplete type checker. Work on the backend bytecode generation is just beginning (though we'll be able to reuse a bunch of code from javac).
Nevertheless, I should make a few comments. First, I never billed this as a
Java Killer or
the next generation of the Java language. Not my words. Ceylon isn't Java, it's a new language that's deeply influenced by Java, designed by people who are unapologetic fans of Java. Java's not dying anytime soon, so nothing's killing it.
So why a new language? Well, we've been designing and building frameworks and libraries for Java for ten years, and we know its limitations intimately. And we're frustrated. I'm not going to recap all the frustrations here. (I've listed some of them in the first presentation.) But I guess I should mention that the number one technical problem that we simply can't solve to our satisfaction in Java - or in any other existing JVM language - is the problem of defining user interfaces and structured data using a typesafe, hierarchical syntax. Without a solution to this problem, Java remains joined at the hip to XML.
But much of our frustration is not even with the Java language itself. The extremely outdated class libraries that form the Java SE SDK are riddled with problems. Developing a great SDK is a top priority of the project.
On Slashdot, several commenters argue that creating a whole language and SDK from scratch is an enormous undertaking. Well, we're really not starting from scratch: we can reuse an enormous amount of code that is already available under open source licenses in the Java ecosystem. Just think of what's reusable from Open JDK, JBoss, and Eclipse! It's not a requirement that the entire SDK, compiler, and IDE be implemented in Ceylon. And it's not an enormous undertaking for a company of Red Hat's size. And, of course, we don't want to do this on our own. A project like this isn't even interesting unless it's a community effort.
Here's the presentations that caused this fuss:
- A brief overview of the project: Introducing Project Ceylon
- A discussion of some features of the type system: The Ceylon Type System
UPDATE: If you're interested in knowing more about the language, please check out the tutorial Introduction to Ceylon.