Comment by JetSetIlly
2 days ago
The Google version of Go uses a 3-clause BSD like license. There are other implementations besides the one maintained by Google, and there is a complete specification for the language freely available. The language is not owned by Google.
> there is a complete specification for the language freely available.
and who has the ability to make changes to this specification?
Not to mention that there's really no second implementation of go for the specification, which means that google is realistically free to make updates to it that they feel necessary, and there would be no 2nd party that could object to it.
I understand your concerns with regard to what languages should be used for teaching purposes and I agree with them. But I don't agree that it applies to Go.
> Not to mention that there's really no second implementation of go for the specification,
Is that true? The GCC frontend is a little out of data with regard to the current spec but it was written to the spec as it existed at the time. Also, TinyGo matches the language spec I think. It has limited compatibility with the standard library, but the specification doesn't talk about the standard library at all.
> and who has the ability to make changes to this specification?
There's nothing stopping anyone taking the current Go specification, extending it and using the Google implementation of Go as the base for something new. Although you wouldn't call it Go in that case.
I personally like that there is a central arbiter with the final say on the specification. Admittedly, I would prefer it if it wasn't Google, but I'm not convinced a Rust like foundation model would be any better in the case of Go.
Yes but it is still controlled by Google and has not been moved to a foundation? Like for example the Rust Foundation.
True. However the control really only extends to the name and the amount of human effort allowed by employees on the Google implementation, as far as I can tell.
If Google decide that they were no longer developing their implementation of the language and moving the employees to other things, there's nothing stopping a foundation from being established. It would be ideal if this was organised by Google as part of their exit, but failing that I would expect other stake-holders in the language to organise something.
What advantages would moving to a foundation like structure bring to Go?
Strategic direction, roadmap and general decisions are set by the independent foundation and not by Google.
1 reply →
Controlled in the sense that most of the maintainers are Google employees. But how does that make a difference? The tool chain is available as FOSS, there’s no possibility of a rug pull.
All of the same things were always true, and are true today, of Java. You can use Java entirely without touching anything Oracle-tainted. And yet, here we are.
Not to mention, nothing stops Google from deciding tomorrow to stop distributing any Go code freely. They pull the public repos, pull the public docs, pull the package server and cache, everything. They release everything back only under proprietary licenses: it's their code, they can change the license at any time.
Sure, you could still use anything they released yesterday, if you still have a copy. But would anyone feel that is a sound business or even personal decision?
I'm not saying in any way that I expect Google would do this. I'm just pointing out that this is 100% within their legal rights to do, and under their ability. I think Google is quite trustworthy on this, but if you feel they are not, you should be aware that the license doesn't act as any kind of real shield.
realistically no chance of a rug pull of course.
But my philosophy is about libre, in the context of an educational institution. Teaching java was a mistake, and it would be the same to do so with golang for the same reasons. Students should be learning the concept embedded in the language, rather than the commercial ecosystem associated with the language.
I like Go and you're right but I agree with the poster above, there's something to be said about De Jure and De Facto distinctions in Google "owning" Go.
Why not split the difference and teach Luau in the Roblox environment instead? /s