Live data from Hacker News

Ian Lance Taylor's Response to “Go Is Google's Language”

groups.google.com

101–110 of 346 posts

Re: Ian Lance Taylor's Response to “Go Is Google's Language”

#101

Googler here, but these are my own opinions formed from less than a year at the company. My observation of Google's culture is that it can be very difficult to see the ways in which they dominate projects they participate in because it's very difficult to keep perspective on how even small investments by Google tend to overwhelm the volume of other contributers project. Google has a lot of great, productive engineers…

> Rich Hickey's conflict with the Clojure community over overly biasing Clojure towards Datomic's interest

I’m not sure I would describe it that way. I don’t know of anything in Clojure language that is biased towards Datomic’s interest (or Cognitec’s). The conflict was about Rich not having enough time to consider/review/accept changes to the language core and declining to relax acceptance of such changes without his sign off. It’s a problem and it doesn’t sit well with some people in the community, but it really is very different from your accusation.

Re: Ian Lance Taylor's Response to “Go Is Google's Language”

#102

Not saying anything about Go necessarily, but Google being behind a technology doesn’t exactly give me a warm and fuzzy that it will be “supported for years to come”.

What does it even mean for it to be "supported for years to come"? It's not a web service.

Re: Ian Lance Taylor's Response to “Go Is Google's Language”

#103
post #95

Anyone care to copy-paste so I don't have to log in?

Ian Lance Taylor wrote:

> https://utcc.utoronto.ca/~cks/space/blog/programming/GoIsGoo...

Thanks for the link. There is clearly a real sense in which Go is Google's language. But I think I would like to emphasize some points that don't necessarily contradict the blog post but may add some nuance.

I'm a member of the Go team and I'm employed by Google. I'm speaking exclusively for myself here, not for Google nor for the Go team.

I've worked on free software for my entire career, before I joined Google and indeed before Google existed. I think it's fair to say that Go is an open source language. All the source code, including the source code for all the infrastructure support, is freely available and may be reused and changed by anyone. For software the most fundamental freedom is freedom to fork: freedom to take an existing project in a new direction. People have that freedom with the Go language. They don't necessarily have the freedom to call that forked language "Go" (I'm not sure), but I think that limitation is OK; it serves nobody to call different projects by the same name.

The blog post starts by quoting @kapoorsunny asking why there can't be something like OpenGo, with a community implementation of generics. I hope that it is clear that the answer is that there could be. Nothing prevents that from happening. In particular, Google doesn't prevent that from happening.

So when someone says that Go is Google's language, they must mean something else.

For any free software project, there is a set of people who can commit changes to the project. For the Go project, that is the set of people who are on the approvers list, who can click the +2 button in Gerrit. I don't think this list is publicly visible for anybody is not an approver, but I just took a look. Since some people who work at Google use their personal e-mail addresses I could have made a mistake, but I count 59 Googlers on the committers list and 51 non-Googlers.

So while Google is the majority, it's not an overwhelming one. Again, this can't be what it means to say that Go is Google's language.

A programming language is a type of shared software infrastructure. It's most useful when everybody is using the same language, so code written by person A can be reused by person B. That means that programming languages are most useful when we all agree on exactly what the language is. All successful languages have either a single specification or a single primary implementation. (Go and C++ are examples of language based on a specification; Perl, at least before Perl 6, is an example of a language based on an implementation). These serve as the definition of what the language is: whatever the specification says or whatever the implementation does.

I think most people would agree to all of the above. Now some opinion, where people may disagree.

If a language is to change over time, this specification or implementation must change. Somebody has to decide how changes will be made. All successful languages have a small set of people who make the final decisions. Many people will provide input to this decision, but 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.

As I said, that is my opinion, but I think it's true. I would be interested to hear of a counter-example.

Since Go is a successful language, and hopes to remain successful, it too must be open to community input but must have a small number of people who make final decisions about how the language will change over time.

So, I think that when the blog post says that Go is Google's language, what they mean is that Google makes those final decisions.

Now a bit of personal history. The Go project was started, by Rob, Robert, and Ken, as a bottom-up project. I joined the project some 9 months later, on my own initiative, against my manager's preference. There was no mandate or suggestion from Google management or executives that Google should develop a programming language. For many years, including well after the open source release, I doubt any Google executives had more than a vague awareness of the existence of Go (I recall a time when Google's SVP of Engineering saw some of us in the cafeteria and congratulated us on a release; this was surprising since we hadn't released anything recently, and it soon came up that he thought we were working on the Dart language, not the Go language.)

Since Go was developed by people who worked at Google, it is inevitable that the people who initially developed Go, who became the core Go team, were Google employees. And it happens that of that core Go team, while not all are actively working on Go, none have left Google for another company in the years since.

I do think that due to Go's success there are now Google executives who know about Go. Google as a company is doing more work with Go at a higher level, supporting efforts like the Go Cloud Development Kit (https://github.com/google/go-cloud). And, of course, Go is a significant supporting element for major Google Cloud projects like Kubernetes.

But (and here you'll just have to trust me) those executives, and upper management in general, have never made any attempt to affect how the Go language and tools and standard library are developed. Of course, there's no reason for them to. Go is doing fine, so why should they interfere? And what could they gain if they did interfere? So they leave us alone.

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.

I do think that it will be interesting to see what happens if someone on the core Go team decides to leave Google and but wants to continue working on Go. And it will be interesting to see what the core Go team, including me, decides to do about succession planning as time goes on. Being a core Go team member is a full time job, and many people who want to work on Go full time wind up being hired by Google, so it would not be particularly surprising if the core Go team continues to be primarily or exclusively Google employees. But even then it's not clear that Go will be Google's language in any deep sense. It's also possible that someday it will become appropriate to create some sort of separate Go Foundation to manage the language. I don't know. We'll have to see.

As I said initially, none of this necessarily contradicts anything in the blog post, but perhaps it gives a slightly different perspective.

In this note I've specifically focused on whether Go is Google's language. I have some thoughts on other aspects of the blog post, about its discussion of the interaction between the core Go team and the rest of the Go community, but this note is already too long. Perhaps I will tackle those later. Or perhaps not, no promises.

Ian

Re: Ian Lance Taylor's Response to “Go Is Google's Language”

#104
Security consultant here.

The fact that Golang has no generic is a huge thing. I've read countless amount of code that abused generics (unfortunarely developers think they have to use generics all the time if they are available) and is probably completely insecure for the simple reason that very few people manage to audit/understand the code. If it generics could only be used when necessary, yes, but there are no technical way to enforce this.

Gofmt is the second blessing. All codebases look the same because it is not customizable. This makes reading Golang code and understanding it fast as hell.

The GOPATH is also a huge win. You always know where everything is and it is really fast to figure out about dependencies or structure of the project.

What I'm saying is that in my years of security consulting, Golang codebases have always been the clearest ones to read and have always been the most secure ones.

I feel like a lot of the negative perspectives are given from the writing point of view, but the reading perspective is clearly a huge win for Golang.

Re: Ian Lance Taylor's Response to “Go Is Google's Language”

#105

Not saying anything about Go necessarily, but Google being behind a technology doesn’t exactly give me a warm and fuzzy that it will be “supported for years to come”.

What does it even mean for it to be "supported for years to come"? It's not a web service.

Money spent to support the maintenance of the language and standard library evolution over time.

Re: Ian Lance Taylor's Response to “Go Is Google's Language”

#106

Not saying anything about Go necessarily, but Google being behind a technology doesn’t exactly give me a warm and fuzzy that it will be “supported for years to come”.

What does it even mean for it to be "supported for years to come"? It's not a web service.

Bugs exist in software that are not web services.

Re: Ian Lance Taylor's Response to “Go Is Google's Language”

#107

Not saying anything about Go necessarily, but Google being behind a technology doesn’t exactly give me a warm and fuzzy that it will be “supported for years to come”.

What does it even mean for it to be "supported for years to come"? It's not a web service.

That it'll still be useful in 20 or 30 years.

Re: Ian Lance Taylor's Response to “Go Is Google's Language”

#108
post #58

Everyone's upset that Go is Google's language, but no one would have adopted it if it weren't. It's not enough to have a cool idea for a language, even if your cool idea is not to put any new cool ideas in the language. You have to be Mozilla, or Google, or someone it seems in order to convince people this language is for real and will be supported for many years to come, and will have a healthy ecosystem. If I had m…

[deleted]

Re: Ian Lance Taylor's Response to “Go Is Google's Language”

#110

Not saying anything about Go necessarily, but Google being behind a technology doesn’t exactly give me a warm and fuzzy that it will be “supported for years to come”.

What does it even mean for it to be "supported for years to come"? It's not a web service.

I think in this context, supported doesn't mean "will provide regular updates and tech support" but rather "will continue throwing enormous amounts of developer resources and put its institutional influence and weight towards the improvement of".

It makes sense if you think about it: how many companies adopted Go because they saw that it had Google's name on it?

Post reply on HN