Red Hat's New Java Alternative: From Coffee to Tea
Apr 21, 2011 5:00 AM PT
When a FOSS company gets to be the size of Red Hat, pretty much every move it makes is of interest to those of us here in the Linux community.
So when said company unveils plans to create an alternative to none other than Java, well, let's just say everyone sits up and starts listening.
In no time at all, Red Hat's own Gavin King was chiming in on the subject, which has inspired no end of discussion.
"Why a new language?" King wrote. "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."
Among the key limitations, King went on, is that "we simply can't solve to our satisfaction in Java -- or in any other existing JVM language -- the problem of defining user interfaces and structured data using a typesafe, hierarchical syntax," he explained. "Without a solution to this problem, Java remains joined at the hip to XML."
Then, too, there's the fact that "the extremely outdated class libraries that form the Java SE SDK are riddled with problems," King went on. "Developing a great SDK is a top priority of the project."
Bottom line? Linux bloggers have had plenty to chew on.
'They Could Just Use Pascal'
"Java is tainted by Sun's hesitancy to Free the software and Oracle's attempts to prevent free use of Java," blogger Robert Pogson opined. "If Ceylon escapes those burdens and brings back the ':=' -- I am an old programmer who has used Algol, Modula-2 and Pascal -- then I am all for it."
Of course, "they could save some retooling and just use Pascal," Pogson added. "That's what I do. There is source code for the compiler and the runtime at http://FreePascal.org. It's GPL with an exception for static libraries."
Either way, Ceylon is unlikely to become the "Java killer" many have said it could be, opined Barbara Hudson, a blogger on Slashdot who goes by "Tom" on the site.
'Oracle Has Nothing to Worry About'
"For years, I've been saying that Java would be better if it offered more of the features found in c++, such as multiple inheritance and operator overloading," Hudson offered. "Every time I bring this up, the javanistas freak out. So now we have another Java derivative, one that the author says *will* allow operator overloading, and nobody says 'boo.' Go figure. :-)"
Of course, "what the main story giveth, the footnotes taketh away," Hudson added. Namely, "*function* overloading, a very handy feature borrowed from c++, disappears."
Add in "all the other random changes, and the only way Ceylon can kill Java is by driving developers to suicide from switching back and forth between the two languages," Hudson concluded.
In other words, "I'd say Java's about as likely to be killed by Cylons as by Ceylon," she quipped. "Larry Ellison's Battlestar Oracle has nothing to worry about on this front."
Is There Room for Another Language?
In order for Ceylon to be any kind of Java killer, "the main thing Red Hat can do is make sure the code runs fast," Thoughts on Technology blogger and Bodhi Linux lead developer Jeff Hoogland told Linux Girl.
"Java's only real selling point is cross-platform, and python+QT does an equally good job of that," Hoogland explained. "At the same time, Java is fairly slow for larger applications, making C/C++ a better choice IMO."
Indeed, "it will be interesting to see if there is room for another language to take off in this day and age, where it seems like we have an announcement every other month for some new language that they tell us we all need to be using," consultant and Slashdot blogger Gerhard Mack mused.
'Java Is a Lot Like Windows'
Slashdot blogger hairyfeet wasn't so sure any such room will be found.
"How many 'Java Killers' are we up to now?" hairyfeet began. "A hundred?
"The enterprise guys LIKE Java the way it is -- the last thing they want is yet another version with new incompatibilities," hairyfeet said. "Hell, now that Mono is on Android and iOS, if you are looking for cross-platform you'd probably be better off with Mono/.NET, and I don't see many going that route either."
In the end, "Java is a lot like Windows," hairyfeet opined. "It is this big, huge bunch of code, where just as many apps were written to exploit its quirks as to follow the specs. Trying to replace that will be about as easy a time as ReactOS is having trying to recreate Windows from scratch. Yeah, good luck with that, buddy!"
'It Looks Promising'
Chris Travers, a Slashdot blogger who works on the LedgerSMB project, took a more measured approach.
"It looks promising, but it's too soon to tell," Travers told Linux Girl. "I tend to wait until languages are a little more mature before I'd suggest jumping on the band wagon; a lot of ideas look good on paper, but it will be interesting to see what details do not work as expected in the real world."
One thing Travers does like about Ceylon, however, "is the use of the PL/1 assignment operator (:=)," he added. "One of the real issues with many computer languages is the use of the = sign for assignment, when many of us are taught since grade school to treat it as the comparison operator.
"I suspect a lot of computer programmers will find this very disorienting at first, but there are places where this is already used -- for example, in PL/1-based extensions to SQL," he pointed out. "In the long run, I think this operator makes more sense than the way the industry does it currently."