Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Oh wow, so it's already been 16 years since Google steamrolled the Go! language, which had existed a decade before Go and had every right to the name. This was when they were still pretending "do no evil" was their brand.

There may be no honor amongst thieves but there is honor amongst langdevs, and when they did Go! dirty, Google made clear which one they are.

Status changed to Unfortunate

https://github.com/golang/go/issues/9#issuecomment-66047478



Go! was clearly a toy language created only for the purpose of writing papers. It has no applications outside academia. Meanwhile Google's golang exists mostly in the sphere of practical use.


Programming languages don't have to be for the purpose of industrial software construction to be considered useful. In fact, many ideas that industrial languages use come from academia. If we want new ideas and new languages to flourish, it cannot be the case that large corporations get a free pass to just smash researchers' academic efforts when they feel like it, especially when their motto at the time was "Do no evil".


My point is more that these two occupy two distinct areas. For example, the word "cool" has two very common meanings depending on whether you're talking about temperature of an object or the value of something in social context. Yes, it would be very confusing if "cool" had multiple meanings from the same domain, but that's not the case. Similarly, golang and Go! are terms from different domains. One is domain of practical engineering, and the other is academia.


Does anyone use that other language? No!


Go! wasn't even published as its own project [1] until 2015, well after Go(lang) was available. It previously existed as an unpublished CVS repository in an obscure Sourceforge project [2]; I can't fault the Go developers for ignoring or overlooking it. You can find a circa-2002 version of Go! in the archived CVS repository of the Sourceforge project, but none of the project's release files appear to contain it.

(Ignore the "Last Update: 2013-09-06" on the project page - that's the date that SourceForge performed an automatic migration. Any real activity on the project seems to have petered out around 2002, with one final file released in 2003.)

[1]: https://github.com/fgmccabe/go

[2]: https://sourceforge.net/projects/networkagent/


You are wrong, here is the first publication from 2004. https://link.springer.com/article/10.1023/B:AMAI.0000031195....

Due diligence would have revealed the Go! project in a standard literature review.

I can and will fault the developers because even if they had overlooked it, they were explicitly asked, and declined to do so because they determined (themselves) there would be no confusion. So it wasn't that they overlooked it, or ignored it, they decided they were asked directly and responded "we don't care".

If the reasoning boils down to "We can do this because you are small and we are big" I cannot support that.


That's not the point, no one uses 99% of languages, so if that's the standard then it's a free-for-all. The PL community is small, so norms are important.

PL naming code is:

1. Whoever uses the name first, has claim to the name. Using the name first is measured by: when was the spec published, or when is the first repo commit.

2. A name can be reused IFF the author has abandoned the original project. Usually there's a grace period depending on how long the project was under development. But if a project is abandoned then there's nothing to stop someone from picking up the name.

3. Under no circumstances should a PL dev step on the name of a currently active PL project. If that happens, it's up to the most recently named project to change their name, not the older project even if the newer project has money behind it.

4. Language names with historical notoriety are essentially "retired" despite not being actively developed anymore.

All of this is reasonable, because the PL namespace is still largely unsaturated*. There are plenty of one syllable English words that are out there for grabs. All sorts of animals, verbs, nouns, and human names that are common for PLs are there for the taking. There's no reason to step on someone else's work just because there's some tie in with your company's branding.

So it's pretty bottom basement behavior for luminaries like Ken Thompson and Rob Pike to cosign Google throwing around their weight to step on another dev's work, and then say essentially "make me" when asked to stop.

* This of course does not apply to the single-letter langs, but even still, that namespace doesn't really have 25 langs under active development.


Like how C and C# are different languages, Go and Go! are different. There's not name reuse here.


Go and Go! are pronounced the same way, so yes, they're the same.

Moreover the author of Go! personally requested that Google not step on his life's work. The man had dedicated a decade and authored a book and several papers on the topic, so it wasn't a close call. Additionally C# built on C++ which built on C. Go had no relationship to Go! at all. Homage and extension are one thing, but Go was not that.

A policy of "do no evil" required Google to acquiesce. Instead they told him to pound sand.


They are not pronounced the same, otherwise we wouldn't have the ! in the language.


! changes emphasis, not pronunciation.




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

Search: