Hacker News new | past | comments | ask | show | jobs | submit login
RFC: Replace Java with Go in default languages (gnu.org)
136 points by patrickg on Nov 11, 2013 | hide | past | favorite | 15 comments

This "default languages" issue seems to be mostly about testing the gcc backend. Looks like the consensus forming in that thread is that Ada would be better than Go for this purpose.

Ian Lance Taylor (GCC Go maintainer) replies with a bunch of reasons why that wouldn't make sense[1]. Even as a golang fan, I have to agree with him that maybe it's not yet time for Go to be a default language.


If GCJ is to be removed as a default, and GCC-Go added as one, (I don't really have the expertise to say if doing those things is merited) then they should be done as two discrete changes: "GCJ was removed as a default. Incidentally, GCC-Go was added."

Trying to frame it as one discrete change is just going to get people needlessly emotional (if it hits the 'technews sphere' where editorializing and sensationalism reign supreme. Everyone seems level-headed in the mailing-list discussion for now.)

But there is a technical justification for making both changes at once.

Specifically, there is worry that removing GCJ and associated test suite will exercise fewer code paths in the collection, and the claim is that adding go will cover one obvious subset of these (-fnon-call-exceptions).

If you read down the thread further, Ada has been suggested as a better replacement than Go to keep test coverage, since it builds on more machines and actually does a better job of exercising otherwise unused code paths.

Since Ada is mutating more slowly I would advocate that it be included in GCC proper. Golang just doesn't make sense.

Honestly? The mailing list makes it sound like GCC is so convoluted it requires an entire front-end implementation as a test suit.

I'm not saying it's true or anything. Just calling it like I see it...

How would you run a test suite without a programming language?

Hmm, fair enough.

I worked on gcj many years ago, and while I suppose it is sad to see it fade from view, I think most of us really felt like we had achieved our goal when Sun created OpenJDK and adopted the license we created (GPL + Classpath Exception).

I always thought the goal was to have a AOT compiler for Java.

There are lots of those for Java, but OpenJDK isn't one of them.

An AOT compiler was definitely the primary goal in the early years (my employer was contracted to deliver one for embedded developers). However, for a few of us at least, the main driver eventually became just to have a Free Software implementation of a high-performance Java-compatible toolchain and runtime for Linux. An AOT compiler based on GCC seemed like the best way to get there at the time. And for a while we were right. The GCJ compiled Eclipse was faster than any JIT-compiled Eclipse a few years back.

Thanks for the feedback.

I still remember downloading Blackdown Java.

Sounds like gcj should just be killed off.

They clearly recognise the test suite takes too long to run, but it takes time to fix.

Why use gcj now that http://www.robovm.org exists?

Because RoboVM is mostly concerned to compiling Java to native code for iOS devices.

Other backends are not as mature.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact