
Ian Lance Taylor's Response to “Go Is Google's Language” - ra7
https://groups.google.com/forum/#!msg/golang-nuts/6dKNSN0M_kg/EUzcym2FBAAJ
======
nurettin
Like it or not, Google is probably paying around a million $$ a year to keep
senior full-time developers around that want to work on the language. That
could be used as a benchmark to calculate how much of an investment is
required to have a healthy development cycle.

If a community-maintained fork is created, it would need time and monetary
investment similar to what google is doing just to maintain and develop non-
controversial features. Question is: Is this assessment sensible and if so, is
the community able or willing to make this kind of investment?

~~~
bradfitz
$10M per year would be closer, actually.

(Source: public git logs for all core Go repos in past year, look for
google.com or golang.org emails, multiply by typical Google salaries, which
you can find on various sites.)

~~~
jdm2212
10MM might be on the low side.

I'd be surprised if Ian Lance Taylor, Russ Cox and Rob Pike are making less
than a million dollars a year each. They're all L8+, and even by that standard
they're notably famous/distinguished/respected.

------
nickcw
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
> 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.

~~~
z3c0
I 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
> 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.

~~~
lozenge
Go can live on if Google collapses, the same cannot be said for most teams at
most companies.

------
KirinDave
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 and when they turn those folks fulltime to open source
projects the results are very impressive. I feel this too with the open source
work I'm adjacent to.

Go's situation is further exacerbated by the somewhat normal expectation at
Google that programming systems often feel very top-down mandated to new
employees (even if I think reality is that there is just a lot of cultural and
tooling inertia there; in reality you can use whatever you want if you can
make a case for it). The recent "fix Python's broken batteries" thing comes to
mind as a conflict long overdue but suppressed by that culture of top-down
mandates. Indeed, even without insider knowledge, rumors speak in hushed tones
about how top-down GVR's leadership of Python was during his time working with
Google. It seems like after he left, that notion has softened.

So even if folks on the Go project don't _mean_ for it to feel like "google's
language", it's still entirely possible that it _does_ feel like Google
exercises a lot of control over Go. This is a really significant and old
challenge for big companies interacting with open source, but it's one that
language teams have only recently started to really face at scale (see also:
Rich Hickey's conflict with the Clojure community over overly biasing Clojure
towards Datomic's interest and not helping to prioritize or yield resources or
his oversight mechanisms to other people's needs).

The Go team was (and has been) also been slow to address the community's
obvious and vocal need for some sort of templating solution. While it's fair
to appreciate the difficulty of these discussions and designs, it's also the
case that the Go project communicated their reservations rather poorly and
created a lot of ill will that the language still suffers from today.

As languages are starting to open up and become more community driven (again,
it used to be a lot more like this with small scripting language communities),
the difference between a carefully guided language like Go and a language
where anyone an contribute all the way down to the compiler and have a fair
expectation of getting it included (like Haskell's GHC project) start to
really contrast.

~~~
tomohawk
There are many of us in the Go community who like Go the way it is. The last
thing we want is another Java ecosystem, which feels like something designed
by archonaut committee more than anything coherent. Better to not have
generics than to have generics that are bodged into the language like they
were in Java.

~~~
apta
> The last thing we want is another Java ecosystem,

Which practically contains almost everything one can think of? Yeah, like
that's not a good thing. Where's the golang equivalent of Hadoop, Spark,
Vertx, Netty, Akka, etc.? Not to mention the Java standard library with it's
new time package, and java.util.concurrent, and many more.

> Better to not have generics than to have generics that are bodged into the
> language like they were in Java.

Strawman fallacy. Not to mention that generics in Java are not botched, they
made a tradeoff and it paid off quite well, just look at the number of
existing JVM languages. That beings said, there is work being done to improve
generics in Java even more.

~~~
Thaxll
The Java time package has been a disaster for 20 years until Java 8, before
that everyone was using Joda. As for generics have a look at what C# does for
"proper" generics.

~~~
apta
I'm aware of what C# does, that's why I said it was a tradeoff. Compare the
number of languages on the JVM to those on the CLR to see why they made this
tradeoff. The JVM folks are working on improving generics even further in
upcoming releases.

I know about Joda time, that even another point in how mature the Java
ecosystem is. There's no similar offering in golang.

~~~
Const-me
> Compare the number of languages on the JVM to those on the CLR to see why
> they made this tradeoff

IMO the main reason why people aren't creating more CLR language is unrelated
to generics. You can compile many languages to CLR bytecode and never emit
these ldelem/stelem/unbox.any instructions. The main reason is C# is good
language, and it evolves fast enough.

I don't believe Java developers deliberately crippled Java to incentivize
third parties to develop more JVM languages.

------
xyzzy_plugh
> 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.

I'm continually surprised that more of the greater, vocal community does not
grok this.

~~~
prepend
I don’t think the issue is a small group of people holding a vision. For me,
the issue is that a company changes the vision based on some unknown goals
that the company has that are not known to the community.

I think it’s disingenuous to paint this as a tyranny of the masses type
situation as no one is calling for democracy. And even if they did, Apache and
Python are showing successes in that area.

If google wanted an OSS language, they would have non-google committers. It’s
perfectly cool to have company run languages. I think people just need to be
aware and not confused that Go is anything other than Google’s language that
we all get to use for free.

For me, with almost all things google, the risk is when Google grows bored
with this and makes all the employees work on other stuff.

~~~
xyzzy_plugh
> And even if they did, Apache and Python are showing successes in that area.

I find both of these communities to be huge turn offs. I think Apache projects
and Python demonstrate varied quality; design by committee.

Conversely I find Go releases to be pretty high quality. When they are
marginally suspect, I tend to find the strongest critics are members of the Go
core team (e.g. future of http, sql packages).

> If google wanted an OSS language, they would have non-google committers.

I don't buy this line of reasoning. Go has been extremely welcoming to
contributors. You don't need to be a committee to contribute. Are the
thousands of projects open sourced by corporations under their corporate
GitHub account not _true_ OSS to you?

> For me, with almost all things google, the risk is when Google grows bored
> with this and makes all the employees work on other stuff.

I understand this, but it's FUD. We've heard nothing but positive feedback
from Googlers (no "they won't let us do X"), and if this _did_ happen, I would
expect the existing committers to rebel sufficiently (i.e. quit) that this
problem solves itself. Until then, I see no cause to warrant a change in
management.

------
baby
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.

~~~
zemo
> 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.

I ... have some bad news.

~~~
baby
You probably don't. You can still use gopath and choose to use gopath for
another project that doesn't.

~~~
zemo
> You always know where everything is

do you always work on projects in which you made every decision?

~~~
baby
sorry, what I meant is that if you're working on a project not using GOPATH,
you can still choose to place it in GOPATH while you audit the code.

------
c3534l
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 made Go, no one would be using it right
now. Network effects matter in languages. People want all the upsides of the
network effects (i.e. the ecosystem and adoption), but none of the downsides
(it's propped up by a big company with massive network effects).

~~~
objektif
Is that really true though? What abiut python and javascript for example? Did
they have a giant corp behind them?

~~~
zemo
... Python was led by a Google employee for seven years.

~~~
objektif
Does it matter where the person worked? Python definitely was not Google’s or
any other corp’s.

~~~
joemi
Of course it matters. That's the whole reason the Go Is Google's Language post
exists. And the whole reason the response exists, and this very comment
thread, too.

~~~
objektif
Absolutely not. It is one thing to create a language and maontain it and
another to hire someone who created a language some years ago.

~~~
joemi
from the post:

> 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

~~~
objektif
That is a ver very strong assumption. Just because Google did not explicitly
have a ‘GO’ team does not mean they did not support it. I assume Google became
aware of it the moment their employees started using it for something useful.
People have bosses who have bosses. At whoch point they decided to let their
employees continue working on it.

~~~
emmelaich
Go exists because Rob Pike, Ken Thompson and others are allowed the latitude
to make it.

You can be sure that whatever they do gets a high profile without it in any
way being "supported" or "official"

------
et2o
“It Is Difficult to Get a Man to Understand Something When His Salary Depends
Upon His Not Understanding It” —- Google employee’s defenses of Go

Even if it is theoretically true that Go is open source, by employing the
majority of the Core Go team, Google exercises extensive soft power over Go.
All of the defenses of Go seem to gloss over this.

~~~
arendtio
While in general, I agree with that quote, I don't think that we have a
problem with the Go core team in that respect. I think they do understand the
problem but don't really have a solution.

I mean, the community has (so far) just a few cases were decisions of the core
team were 'not so good'. Sometimes because we didn't like the process and
sometimes because of the outcome. But I guess, in general, the majority of Go
users likes what the core team does.

The problem is more about that many of us have a problem with Google (for a
myriad of reasons) and seeing that the core team is tied so deeply into that
company makes us worry about future decisions of the core team (as you said).
But what could/should the core team do about it?

Suggestions?

~~~
phillipcarter
This is partly why, from the perspective of another person at a company
working on a language used by people, it's important to:

1\. Embed yourself in the community rather than shy away from it. It's
impossible to escape the criticism of "acting on behalf of the company", but
being a member of the community can certainly help perception problems

2\. Act more slowly on accepting things so that as many voices as possible can
have a say

3\. Scope what you do to what you're capable of doing _well_

Even if a given feature for a given release isn't what the majority want,
people will use it if it solves a problem and is designed and implemented
thoroughly.

------
coldtea
> _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._

No, but like with the community developed dependency solution, Google can
arbitrarily chose not to include it in Go, even if itself proves successful.

So it's more like saying "you can have your own niche ports, just don't expect
them to become part of the main language".

~~~
jsty
But this is the same with any open source project - you can write as much code
as you want, but if those with the commit bits decide they don't like it, it's
not getting upstreamed.

If you were really keen to push some functionality into the Linux kernel, but
Linus decided he didn't like it, you'd be in exactly the same position. The
fact that in Go's case quite a lot of the maintainers work at Google doesn't
really change much.

~~~
fredsir
> The fact that in Go's case quite a lot of the maintainers work at Google
> doesn't really change much.

It does if those calling the shots aren’t the committers but their bosses.

I’m not saying that’s how it is, but if it is, it changes things a great deal.

~~~
coldtea
It also does since those calling the shots are not just some community members
among others that just happened to start the project, but people with job
security working on the language, with the money of the biggest sponsor of the
language behind them, hosting the infrastructure, doing conferences, and so
on.

So it's not a level playing field with another contributor.

------
Blackstone4
I feel like some people/groups are obsessed with community owned/open source
languages/infrastructure. At the end of the day, most of these are controlled
by a small group of individuals and we put different wrappers around
them/labels...

------
joeblau

      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.
    

That's a great little story. As an IC, I always felt that VP's, Staff, etc
would know everything about what was going on in their organization. This
story lets me know that even at that level, they don't know everything.

------
didibus
Honestly, I'm very confused by all this. Don't like it, fork it no? Isn't that
the whole point of open source? Any project needs to have a certain set of
people in charge of making actual decisions and working on those. You'll never
have every single user be a part of that decision making. It wouldn't scale.

What language is not driven by a handful of decision maker? Even what could be
argued to be committee driven languages, like say Java, are very much
controlled by a handful of committee members.

~~~
zzzcpan
It's hard to trust a bunch of people employed by a megacorp to make all the
decisions about the project you rely on. But easier to trust independent
people, closer to the users, maybe even voted in by the users, like
democracies do, not like top down only ruler's interests matter dictatorships.

------
reilly3000
Is there any incident where a patch that was antithetical to Google’s business
interests that was specifically blocked by the Go core team? If not, then I’d
say there’s nothing to see here.

------
mabbo
> 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

Power and control aren't about whether you've attempted to change something,
they're about whether you _can_ change something.

If Google ever had a conflict between the core Go team vs the people who make
money for the company, you can be sure who will win out in that debate. Saying
that it's never happened before or that it's unlikely to happen doesn't change
the fundamental power dynamics that people are upset about.

~~~
DannyBee
Those conflicts have existed for years (since go was created in fact) and
despite your claim about who is "sure" to win, it turns out you were wrong and
continue to be wrong about who wins.

I always wonder why HN is full of people who are so sure of the outcomes
instead of asking for data about what actually happened.

Its definitely easier to just assert things than ask for perspectives and data
that might conflict with your own experience, but you are rarely going to
learn anything interesting that way.

------
d0m
>> 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.

Or, what would happen if non-google employees on the core Go team were to take
Go in a direction that Google's leadership didn't want to?

------
blaisio
I definitely feel that Google owns Go and it is a language designed for
Google's purposes, but that didn't dissuade me from using it. It only makes me
not want to contribute to the core language, just as Google's control over
Chrome makes me not want to contribute to chromium.

------
boapnuaput
Keep reading; further down the thread, Rob "Commander" Pike found it "a
surprise" that Google trademarked Go. Maybe Pike feels that Go isn't Google's
language, but it certainly seems that Google does indeed have a modicum of
control over Go, and that that control is above and beyond the Go authors'
perception.

~~~
thanatos_dem
Of course not, it's not Google's language, it's Rob Pike's language. The logo
was designed by his wife, and most of the questionable design choices in Go
are there because of his opinions, such as the dubious dependency management
and lack of generics.

A lot of the power of go comes from it being opinionated, but that same
opinionated approach is a real pain for some (it turns out common) use cases.
With all that said, Go is my language of choice, and I'm happy that Rob seems
to be less involved with Go 2.0, and that the core Go team is incorporating
user feedback rather than just dismissing complaints as Pike seemed so
inclined to do.

~~~
tokai
> The logo was designed by his wife

They changed it. [https://blog.golang.org/go-
brand](https://blog.golang.org/go-brand)

~~~
thanatos_dem
"Changed" is a bit of a strong word here. The go home page still includes no
instances of the new logo, and several of the Gopher -
[https://golang.org](https://golang.org)

------
infinity0
> Many people will provide input to this decision, but no successful language
> --indeed, no successful free software project of any sort--is a democracy.
> [..]

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

Debian is 1000+ developers with a constitution and voting system.

------
Crinus
So if it isn't Google's language, does it mean i can go and make my own
compiler for it, call it -say- "Crinus Go" (to differentiate it from Google's
Go but still point out that it is an implementation of Go) and not worry about
Google coming after me?

~~~
fastball
The language is not the name.

The name is protected.

~~~
droithomme
> The name is protected.

Let's assume first that is true.

And these articles are about Go being Google's language, which is empirically
and legally true.

Different from C. I can write a C compiler with extensions and release it,
call it C or "Something-C" and no IP problems. I can even call it Standard C
and even if it's not no one can do anything. I maybe can't call it ANSI C if
it's not standard compliant, but that's because ANSI is a protected term, not
C. And unlike Go.

Now let's assume it's not true.

In that case Go is not Google's language and there are no ip issues. I can
make and release a compiler, call it a Go compiler, and I'm fine.

Which is it? Unsure. I find no information suggesting Go is trademarked. But
there are people like in your post claiming that it is. If so that should be
easy to cite. I really don't know which it is. So many people claiming the
word Go is protected. Perhaps they have better references than I could find
and we can figure out what sort of language Go really is.

~~~
Crinus
Both Go and the Go logo are trademarked, see the responses in the linked post
(use private mode if Google asks for login).

~~~
droithomme
Thanks. I read further along in the linked post and found this comment by Rob
Pike, one of Go's chief developers:

[https://groups.google.com/d/msg/golang-
nuts/6dKNSN0M_kg/dMCQ...](https://groups.google.com/d/msg/golang-
nuts/6dKNSN0M_kg/dMCQBoSRBAAJ)

 _> The name Go is not trademarked by Google, at least as a programming
language trademark. There are other things Google makes called Go (an
interesting signal on its own) and they might be trademarked, but Go the
language is not a trademark._

 _> -rob_

But, here is Google's official trademark list:

[https://www.google.com/permissions/trademark/trademark-
list/](https://www.google.com/permissions/trademark/trademark-list/)

 _> Golang™ programming language_

 _> Go™ programming language_

Golang and Go are trademarked by Google as programming languages and Rob Pike
is not aware of this. That is interesting. Rob should be made aware.

And so the debate is now settled: Go _is_ in fact Google's programming
language, as an empirical legal fact.

~~~
throwawaymath
I'm not certain, but I _think_ that page is wrong. I searched the USPTO
database of trademarks for "Golang" and nothing was picked up:
[http://tmsearch.uspto.gov/bin/showfield?f=toc&state=4809%3Ax...](http://tmsearch.uspto.gov/bin/showfield?f=toc&state=4809%3Axehul0.1.1&p_search=searchss&p_L=50&BackReference=&p_plural=yes&p_s_PARA1=&p_tagrepl%7E%3A=PARA1%24LD&expr=PARA1+AND+PARA2&p_s_PARA2=Golang&p_tagrepl%7E%3A=PARA2%24ALL&p_op_ALL=OR&a_default=search&a_search=Submit+Query&a_search=Submit+Query)

I'm not confident I'm correct only because it seems unlikely Google would have
a page listing trademarks it doesn't actually own. That being said, I'm pretty
sure there's no other place to search for trademarks.

I also don't think there is actually a trademark on the term "Go" based on
this USPTO search:
[http://tmsearch.uspto.gov/bin/showfield?f=toc&state=4809%3Ax...](http://tmsearch.uspto.gov/bin/showfield?f=toc&state=4809%3Axehul0.6.301).
But admittedly I've only looked through five or six pages; using the option to
search for an exact term doesn't seem to cut down the search results at all.

~~~
vorg
> it seems unlikely Google would have a page listing trademarks it doesn't
> actually own

Putting a ™ symbol after a name is only a _claim_ on that name to be one's own
property for use as a mark on some product or service when trading, and big
corporates do this all the time. So I think it's likely Google would have such
a page.

> I also don't think there is actually a trademark on the term "Go" based on
> this USPTO search

There's a distinction between a _trademark_ and a _registered trademark_.
Registering the name in some jurisdiction's database just means the corp has
begun its defense of that claim before it sees a perceived infringement.

I would imagine everyday words like "Go" (or "Groovy") wouldn't be accepted by
the US trademark office anyway, so perhaps Google tried but failed to register
it there. They might get "Golang" accepted but the Go team have said the name
of the language is "Go" not "Golang".

------
loeg
Setting aside the topic entirely; that is some clear, direct, and courteous
writing.

------
ggm
Go is a Thompson/Pike language and neither suffer fools gladly. I've had only
the briefest, AUUG and related unix conference type interaction with either
and claim no special privilege or insight but I do know people who worked with
them in a deeper sense, and I spoke to them in times past about both people
(and Ritche)

If they decide on their own formidable intellect they want something they do
it, and if they can be convinced by others intellect they may do it, but
simply wanting it is not enough to get over their bar.

Pike is more curt. But I think both of them stand by a principle: Don't waste
our time.

------
oaeide
"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. "

Oh, the irony

~~~
geodel
Yeah big irony. Millions of users still remain confused between original 'Go!'
and Google's hijacked version 'Go' language.

~~~
tyrankh
Not sure if sarcasm...?

------
mr_tristan
I kind of read the original argument that Go is dominated by a "Google point
of view", and there really isn't a significant alternative view that's as
coherent. And that may be a risk.

It's not obvious to figure out how Go "plays with others". And it's unclear if
that's much of a risk or not. As an outsider, you read of the funky module
system duality and you wonder... "What if I don't want to 'work like Google'?
Will this work in the future?" It's actually not that clear.

It's weird, because I don't get this sense, for example, with Kotlin projects
in Android. You can write Kotlin in Android Studio. Or, in IntelliJ for
backend code with Spring. And the tooling seems to be oriented in the same
way. For most devs I've met, you can just swap Kotlin for Java, and everything
else just works the same, and they don't get lost. You never have this sense
of "well... _Google_ does it _this_ way..." when it comes to the tooling.

~~~
tomnipotent
> And that may be a risk.

How is it a risk? Is Rust at risk because of Mozilla? What about Java given
all its corporate sponsors?

People need to stop with this predictive FUD crap, it's tiring.

~~~
hu3
It's mesmerizing to observe the lengths that people can go when trying to
smear an open-source tool.

I can't even fathom the amount of relentless bullshit that teams of big
projects have to endure.

------
astazangasta
A lot of technology development happens at Google and FB and AirBnb these days
because that is where the money is, so that is where the smart people go. In
the previous generation they would have been at Xerox or Bell Labs. The work
they do is often generic and of general interest. We should resist the idea
that because the creators are sojourning in the bosom of some corporation,
that corp "owns" the work. This is a key benefit of open source: we can take
the freedom granted by being useful to monopoly capitalism and use it to
liberate work for the public good, thus diffusing that monopoly power.

In practical terms, however, this means governance has to eventually flee the
bounds of its corporate origin.

EDIT: Whenever I make this claim here it gets downvotes, but I've never heard
anyone explain why - anyone care to explain?

~~~
sbov
Note that Go is trademarked. C wasn't. IANAL but there probably, legally,
cannot be a Go++ or Go#.

~~~
skybrian
That just means you need to pick a different name.

------
didibus
Slightly unrelated, but has anyone heard of and used Fantom
[https://fantom.org/](https://fantom.org/) before. If not, and you like Go, I
recommend you check it out. It's a great language which I wish was a lot more
popular. Similar to Go, it only has Generics for core data-structures. They
have similar reasoning as well, that beyond those use cases, they're almost
never practically needed for the amount of complexity they add to the
compiler. It has first class Actor support for concurrency, as opposed to
Go'suse of CSP. And its standard library is awesome. It's a very small
community, but worth a look.

------
eecc
I’m a bit upset by the assumption that a Democracy (in this case in software)
would lead to chaos, therefore leadership should be limited to a closed elite.

So what about the scientific method? What about custodian oversight?

~~~
geodel
No need to be upset. Maybe you can set an example for Go project on how it is
done in right way.

------
diminoten
> 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.

Wait, why not? The majority of people in control of what Go is work at Google.
Seems like a pretty clear definition to me.

------
Triverklorezam
It's a threat to have Google totally control the source code behind Go. If
they were so inclined, at the direction of certain agencies, they can just
maintain known vulnerabilities or bugs in the code that let those agencies
wreak havoc.

------
mfer
There is a difference between open source and open governance. Go is open
source but the governance is controlled by Google. For example, the committee
that accepts proposals is all Google employees and a subset of the core team,
if I read it right. From what I can tell, they definition of consensus is that
of this group rather than the community at large.

This has business decision implications. Those who have had issues with Oracle
and Java may want to take note because this is a similar setup. To use Go
means you need to trust Google.

I'm not disagreeing with Ian and I'm happy he posted that. There is just more
to this than technical considerations.

I for one will be curious to see if the breaking changes currently sitting on
master (there are issues for them) end up in a release. The governance can
play into the stability of the language which is a pretty hard dependency.

~~~
hu3
This reads like FUD. Go isn't to Google what Java is to Oracle.

Also, by that logic we shouldn't use Linux since a single man gets to pick
what goes into the kernel. Same for most relevant tools which are mantained by
a few individuals.

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

~~~
hu3
Ian Lance Taylor wrote:

>
> [https://utcc.utoronto.ca/~cks/space/blog/programming/GoIsGoo...](https://utcc.utoronto.ca/~cks/space/blog/programming/GoIsGooglesLanguage)

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](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

------
einpoklum
The response requires logging in to Google's systems. So, essentially, there
is no public response.

------
hunterjrj
Why not petition Google to donate the Go project to the Cloud Native Computing
Foundation, since many of the core technologies (including Kubernetes,
Prometheus) that make up the cloud native space are written in Go?

~~~
klohto
And why exactly would they do this?

------
juped
Go is perceived as Google's language because they named it "Go".

~~~
coldtea
Yeah, that and because of the tight control and the opinionated, "our way or
the highway", core team.

~~~
xeromal
I'm sure they would've been "My way or the highway" if they hadn't been part
of Google too.

~~~
coldtea
And I'm sure being paid to work on Go and being part of Google gives them much
more power over the community, and much more personal power to insist on their
way.

------
dredmorbius
Is Java is or is Java ain't Oracle's baby?

------
jmull
The TLDR to me is:

OK, yes, it is Google's language. But it's OK because someone has to control
it after all, and Google is doing it well. And anyone could fork it if they
wanted to.

(I don't mean to suggest I agree or don't agree, just trying to understand and
state the main points.)

------
scarface74
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”.

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

~~~
iends
Bugs exist in software that are not web services.

~~~
tomnipotent
It's a good thing it's an open source project and not a web service, then.

~~~
bradleyjg
Source code is of limited use if a company decides it is no longer interested
and never allowed external developers into the processes that would have, over
time, given them the necessary context to run with the project. At that point
the only real hope the project has is that some nucleus of people quit the
former sponsoring company to keep it going.

~~~
tomnipotent
Almost every major significant OSS project has a corporate sponsor (usually in
the form of paid employees doing the bulk of contributions). Don't see the
problem with that.

And it's usually problems people are solving are work that instigate most of
these contributions, so it's a damn good thing Go has a company like Google to
act as steward, regardless of all the useless FUD people like to pretend "may"
happen because they can think it up.

~~~
iends
You're comments are getting quite circular. Your original post in this thread
was implying that since the project is open source, corporate sponsorship was
less important.

At least that is how it reads.

~~~
tomnipotent
OP complains that Google is behind Go. Someone mentions that it's open source.
But oh no, open source projects need a strong core! Guess what, those strong
cores usually come from corporations. See how it all comes together?

So you don't get to be angry that the things open source projects need -
strong cores - usually come in the way of companies paying for them.

Go having Google is a good thing, regardless of all the pointless stupid FUD
people like to spread because it makes them feel better to point out something
that could be scary.

------
hmahncke
Well, I do have to log in with my google account to read it...

~~~
shurcooL
It loads okay in an incognito window for me. Are you sure logging in was
mandatory? It should only be needed if you want to post to the mailing list.

~~~
irishsultan
One of the annoying things about Google is that if it detects that at some
point in the past you were logged in as a user it will not let you see Google
Groups content without logging in (or going incognito).

There is no "just let me see the content, I can't be bothered to type my
password right now" option, there is no "forget that I'm that user" option,
the only option is to log in or to go incognito.

~~~
BartBoch
Deleting cookies should help?

------
1023bytes
On groups.google.com nonetheless

------
johnvega
Go == Simplicity

------
purpleidea
It's obvious that Golang is Google's language. The most obvious part is they
require a CLA that gives _them_ and only them special rights. It's a sham.

~~~
holografix
Care to explain what a CLA is? Assuming a legal term...?

~~~
holografix
Thanks all. So basically you can’t build a close source app with GO?

~~~
steveklabnik
That has nothing to do with the ability to build a closed source application.
You can absolutely build one in Go.

------
planetjones
Google’s takeover of deja news and its formation into groups.google.com was
always a mess, but it seems to have got even worse. Now it’s at the point I
can’t access the article on iOS safari.

First it forced me to log on. Ok I did that. After which the redirects lost
the deep link, so I reached a generic landing page. I tried going back but
there were more redirects which made that difficult. I finally came back to HN
and clicked the link again. Then a spinner came up but didn’t load. A few
reloads later and I got a few characters but nothing useful.

What a mess.

~~~
tacosx
I had the same experience, but never actually got the groups page to load.

Hey googlers remember a cool little thing called the URI? Can we make that
just work again without all this session/auth nonsense wrapped around
everything? I am not interested in your accounts.

------
UI_at_80x24
[https://golang.org/LICENSE](https://golang.org/LICENSE)

Not GPL. Therefore it doesn't matter. Some corporate overlord has the power to
kill/modify at whim.

GPL(2.0) for comparison: [https://www.gnu.org/licenses/old-
licenses/gpl-2.0.txt](https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt)

~~~
kemonocode
That's the 3-Clause BSD license [0], which is arguably more open than the GPL
(On varying definitions of "openness" at least. It's very lax, although it
doesn't prevent patent treachery)

[0]
[https://opensource.org/licenses/BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)

~~~
sheeshkebab
The license is pretty much AS-IS license that tells nothing of copyright or
potential patents behind this, and simply covers google of any claims against
them. It doesn't grant anything to licensee, for open or commercial use, nor
clarifies any sticky points.

Compare that to Apache 2.0's 2nd and 3rd clauses:

"2\. Grant of Copyright License.

Subject to the terms and conditions of this License, each Contributor hereby
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
irrevocable copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the Work and
such Derivative Works in Source or Object form.

3\. Grant of Patent License.

Subject to the terms and conditions of this License, each Contributor hereby
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
irrevocable (except as stated in this section) patent license to make, have
made, use, offer to sell, sell, import, and otherwise transfer the Work, where
such license applies only to those patent claims licensable by such
Contributor that are necessarily infringed by their Contribution(s) alone or
by combination of their Contribution(s) with the Work to which such
Contribution(s) was submitted. If You institute patent litigation against any
entity (including a cross-claim or counterclaim in a lawsuit) alleging that
the Work or a Contribution incorporated within the Work constitutes direct or
contributory patent infringement, then any patent licenses granted to You
under this License for that Work shall terminate as of the date such
litigation is filed."

