6 ms·
A very well written piece by Ian Lance Taylor. If you don't want to read it all, he summarizes it here: > In effect, then, the current state is what the blog
by nickcw 7y ago
A very well written piece by Ian Lance Taylor. If you don't want to read it all, he summarizes it here:
> In effect, then, the current state is what the blog post suggests at the very end: final decisions about the Go language are made by the core Go team, and the core Go team all work at Google, but there is no meaningful sense in which Google, apart from the core Go team, makes decisions about the language.
- brianberns 7y ago> There is no meaningful sense in which Google, apart from the core Go team, makes decisions about the language. That's like saying that there's no meaningful sense in which I, apart from my brain and nervous system, make decisions about what my body does.
- ritchiea 7y agoThere's a lot more nuance in the original post, outlining that Go is fully open source & it can be forked. That the author believes any good open source project should have a coherent vision and a set of decision makers. That the actual committers to Go are majority Googlers but not overwhelmingly so (59 Googlers to 51 others). There is more to Go than Google, there is a community and it is as free as can be. But the final decision makers are at Google. It's all very well said, every open source project has a set of final decision makers and that project is theirs. Unless you work hard to become one of those decision makers the project is not yours. And perhaps it is not notable to write the blog post "this open source project ACTUALLY belongs to so-and-so."
- a1369209993 7y agoI think it's more like saying that there's no meaningful sense in which your body, apart from your pancreas, makes decisions about how much insulin your pancreas secretes. It is technically true, just... only technically.
- z3c0 7y agoI agree that it's worded confusingly, but I think I can see the point they're making. Solutioning usually looks vastly different when driven by a core team than when it's driven by higher-ups or "The Business". The Go Core team is likely more vested in the overall success of the language than the rest of Google. I'm not certain, because - like I said - it's worded confusingly, but that was my impression.
- brianberns 7y ago> The Go Core team is likely more vested in the overall success of the language than the rest of Google. I think you could say that about most teams at most companies. That doesn't mean that they have any autonomy whatsoever from their company, though.
- lake99 7y agoNot at all. Google Chrome and Android are produced by Google too. And yet, the user tracking or advertising sections of Google have their interests met through Chrome and Android. If the Chrome and Android teams had only their users' interests in mind, ad blocking and tracker blocking would have been built into these products.
- danieldk 7y agoI was not really convinced by that line of argumentation either. For me, the more convincing argument is that Go would have probably happened in a parallel universe as well. Imagine that Griesemer, Pike, and Thompson had worked another company that gives the freedom to work on personal projects, it is very likely that they had come up with the same language. They have argued in talks that Go was created as an answer to problems that they identified in the development of infrastructure at Google. That may have been a trigger, but Go is firmly rooted in the tradition of C, UNIX, Plan 9, and Limbo and a logical next step in that tradition. Hence, to me, Go is really Griesemer, Pike, Thompson, and Cox' language and not Google's language. Of course, the title of the original article that Taylor is reacting to was a bit sensational. But I think the original point was that Go is not a language that is developed by the community, but a small set of people. Whether they are employed by Google, Facebook, Uber, or Zalando is somewhat irrelevant to this debate.
- gigatexal 7y agoSo is this good that the team is crafting the language for their own needs? Perhaps they will keep the language small and keep scope creep to a minimum?
- pizza234 7y agoI think it's also worth highlighting this: no successful language-indeed, no successful free software project of any sort is a democracy [...] Successful languages pay attention to what people want, but to change the language according to what most people want is, I believe, a recipe for chaos and incoherence. I believe that every successful language must have a coherent vision that is shared by a relatively small group of people. which is essentially the "benevolent dictatorship" principle; it's hard to swallow because developers tend to imagine open source projects as "owned by the people". I believe too that projects "owned by the people" end like The Homer™, and I'm actually curious, as the author, about: I would be interested to hear of a counter-example
- eikenberry 7y agoDebian. They are one of the largest free software projects and are very democratic.
- tsimionescu 7y agoIsn't C++ committee-driven, which could be considered a type of democratic process? Or would that not be considered an open-source project? On that note, I also seem to remember that LLVM/Clang are pretty democratic, but I haven't dug deeply and may be completely wrong.
- gradys 7y agoThe analogy Go : C++ :: Go's governance : C++'s governance works pretty well. Maybe C++ is a good example of this, and maybe that is a good way to build a language like C++, but it might be a bad way to make a language like Go.
- repolfx 7y agoLarge parts of Java are handled via the Java Community Process.
- pizza234 7y agoWell, interestingly, "design by comittee" is a pejorative, so it raises the question whether C++ is, in a (specific, not universal) sense, a success or not.
- gwd 7y agoActually, I think the other key argument is here: > I believe that every successful language must have a coherent vision that is shared by a relatively small group of people. He points out that there are over 100 committers, nearly half of which are non-Google; it's only the small group of people in charge of the language spec that are at Google. It may be true that Google the company don't drive Go the language. However, simply working in the same company tends to make you take on the perspective and values of that company. In the Xen Project, for instance, Citrix is the largest single contributor. Citrix management have basically left the engineers working in the Xen to our own devices; but nonetheless we've made a conscious effort to diversify the organizational membership of the core decision-makers in the project: partly to make sure that we're not drifting into a Citrix-centric groupthink, and partly to avoid the appearance of Xen being a Citrix-only project. If I were them, I would be looking for an opportunity to arrange to have at least one non-Googler on the core Go team, for the same reasons.
- kiallmacinnes 7y ago> If I were them, I would be looking for an opportunity to arrange to have at least one non-Googler on the core Go team, for the same reasons. That's how I read the 50 or so out of 100 approvers as being Google. That means 50 (or so, can't remember the exact number..) are not Google. When I read "Approvers", I match that in my head to "Core Team". Is there a "rank" above approvers that defines the core team?
- gwd 7y agoI don't think he defined his terms very precisely in his document; but as my comment says, yes, there are two levels. There are people who can approve changes to the implementation of Go, and people who can make changes to the specification of Go. There are 100+ people who can approve changes to the implementation; but there only a handful of people who can make changes to the language specification, and all of those people are at Google.
- vorg 7y ago> the implementation of Go, and people who can make changes to the specification of Go Should that be "the reference implementation of Go" ? The specification mentions "implementation restriction" many times, so the Go spec writers seem to be encouraging other implementations. Besides gc, google also provide gccgo. If you download the gc source, change it a little so it still conforms to the spec, and publish, then that would be another implementation of Go. I believe there's an incomplete JS-based version of Go around as well, so if that's ever finished, that would be another implementation of Go.
- revel 7y agoMy takeaway from this is that there is no active attempt to influence the direction of Go to fit Google's agenda and that's a good thing. However, active influence isn't necessary to shape Go's direction and functionality. Probably the best example of this are the twin canker sores of GOPATH and dep. Anyone who has wanted to develop multiple projects in isolation has run into issues with these two and the way that they work-but-don't-really. For Google, this doesn't and will never matter because use of blaze / bazel is assumed and any problems relating to GOPATH or dependency management were likely addressed eons ago.
- bboreham 7y agoI have news for you: ‘dep’ was abruptly demolished by ‘go mod’ about a year ago.
- tsimionescu 7y agoThat's still years after it was pointed out as a problem; and it still hasn't permeated to many Go projects.
- mtgx 7y agoThat's like saying "the politicians all made up their own minds being in favor of the new pro-corporations law" - the fact that 99% of their donations came from the corporations that benefit from the law is "irrelevant." Nonsense. You don't even realize there is an underlying bias when you get paid by someone to do something.
- deleted 7y ago[deleted]
- sonnyblarney 7y agoThis apparent, but that's because there does not seem to be any obvious conflicts of interest - further diminished by the fact that they're all paid by Google, work for Google, and inherently serve Google's interest. If push came to shove, and we saw a war between G and say ... Oracle, over a kind of 'programming language' ... you can be darn sure the claws will come out and it will be apparent 'who owns what' etc.. In the end it may not matter: Go is what it is, it's not set up for licensing or battle, so this all may be moot.