18 ms·
Ian Lance Taylor's Response to “Go Is Google's Language”
- juped 7y agoGo is perceived as Google's language because they named it "Go".
- coldtea 7y agoYeah, that and because of the tight control and the opinionated, "our way or the highway", core team.
- blaisio 7y agoI 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.
- hmahncke 7y agoWell, I do have to log in with my google account to read it...
- shurcooL 7y agoIt 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.
- sheeshkebab 7y agoI also had to login with my google account to read it.
- dmit 7y agoLogging in to Google Groups has been mandatory forever if you had logged in to a Google account before in that browser. If there are no traces of past login sessions (such as when using Incognito mode) then it opens just fine for unauthenticated users.
- irishsultan 7y agoOne 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 7y agoDeleting cookies should help?
- StavrosK 7y agohttps://www.pastery.net/ycqfug/ https://www.pastery.net/ycqfug/
- agnokapathetic 7y agoGolang Nuts is a public mailing list, sadly there are not a lot of mailing list archives these days. https://www.mail-archive.com/golang-nuts@googlegroups.com/msg29985.html https://www.mail-archive.com/golang-nuts@googlegroups.com/ms...
- nickcw 7y agoA 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.
- boapnuaput 7y agoKeep 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 7y agoOf 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 7y ago> The logo was designed by his wife They changed it. https://blog.golang.org/go-brand https://blog.golang.org/go-brand
- thanatos_dem 7y ago"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
- justinclift 7y ago> Of course not, it's not Google's language ... Well, from a legal perspective Google sure seems to own it: > https://groups.google.com/d/msg/golang-nuts/6dKNSN0M_kg/axCqzAjNBAAJ https://groups.google.com/d/msg/golang-nuts/6dKNSN0M_kg/axCq...
- baby 7y ago
- astazangasta 7y agoA 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?
- luckylion 7y ago> 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 theory. In practice, a fork on that scale rarely happens because it would require a large part of the community to adapt, lots of supporting services to switch etc, which is unlikely to happen unless it's a major issue like "oh btw we're shutting everything down next month". Convenience keeps developers with how it's currently working, and developers are the community.
- astazangasta 7y agoWhy does it have to fork that hard? C is used everywhere; there are ISO standards for it. UNIX also escaped the bounds of AT&T a while back as POSIX. The same could happen elsewhere also.
- luckylion 7y ago> Why does it have to fork that hard? Because most will (sooner or later) become incompatible as goals diverge. You're right that it could happen, but I don't see it as likely, be that a programming language or a tool.
- 7y ago
- coldtea 7y ago>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".
- fastball 7y agoThat's true for literally any project.
- jsty 7y agoBut 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 7y ago> 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 7y agoIt 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.
- KirinDave 7y agoGoogler 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.
- keymone 7y ago> 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.
- Crinus 7y agoSo 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 7y agoThe language is not the name. The name is protected.
- droithomme 7y ago> 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.
- macspoofing 7y agoI'm not sure what you're arguing. You certainly have the right to fork GO and release your fork. There may be restrictions on what you call that fork (as in, you may not be allowed to use the name 'Go' anywhere in the name) - but that's a separate issue.
- Crinus 7y agoBoth Go and the Go logo are trademarked, see the responses in the linked post (use private mode if Google asks for login).
- et2o 7y ago“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.
- meddlepal 7y agoExactly this. And this mailing list post exemplifies that even Googlers don't realize the soft power they have. How many of us get to be lunch or drinking buddies with Russ Cox or Rob Pike? Googlers have much easier access to both than the external community and those are really the only two that matter.
- MikeLui 7y agoThis situation feels similar to the need of politicians to divest any potential conflicts of interest. I would not accept “just trust me” as a response. As long as there’s a possible conflict of interest, there will be ethical concerns.
- phillipcarter 7y ago> This situation feels similar to the need of politicians to divest any potential conflicts of interest. With the key difference being that you can use a different language and achieve the same results you want. You can't just pick a different government.
- UI_at_80x24 7y agohttps://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
- shawnz 7y agoHuh? Even if it were GPL, how would that prevent "some corporate overlord" from changing the license later?
- thanatos_dem 7y agoYou can still fork the code up until the point of the license change and freely modify it going forward.
- shawnz 7y agoRight, and that's true with the current license too.
- macspoofing 7y agoAnd you can't with a BSD-style license?
- throwaway2048 7y agoWhoever owns the copyright on the code can change between licenses at will, they are not constrained by the GPL's restrictions on re-licensing (because they aren't licensing the code to themselves, they own it)
- kemonocode 7y agoThat'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
- 1023bytes 7y agoOn groups.google.com nonetheless
- d0m 7y ago>> 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?
- planetjones 7y agoGoogle’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 7y agoI 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.
- 0n34n7 7y agoSame here... I feel like I am in some sort of nostalgic jQuery mobile museum.
- grapeli23 7y agoYou have a problem with the browser. It should display correctly on the 10-year old webkit engine. https://groups.google.com/forum/m/#!topic/golang-nuts/6dKNSN0M_kg https://groups.google.com/forum/m/#!topic/golang-nuts/6dKNSN... This works fine without javascript. https://groups.google.com/forum/?_escaped_fragment_=topic/golang-nuts/6dKNSN0M_kg https://groups.google.com/forum/?_escaped_fragment_=topic/go...
- johnvega 7y agoGo == Simplicity
- Blackstone4 7y agoI 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...
- c3534l 7y agoEveryone'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 7y agoIs that really true though? What abiut python and javascript for example? Did they have a giant corp behind them?
- zemo 7y ago... Python was led by a Google employee for seven years.
- rzzzt 7y agoOne of the first languages supported on App Engine was Python, IIRC.
- objektif 7y agoDoes it matter where the person worked? Python definitely was not Google’s or any other corp’s.
- zemo 7y agoGoogle employed the primary maintainer of Python and paid him to work on it. You asked "did they have a giant corp behind them", the subtext there being that you could complete the sentence "as Go does". I'm merely pointing out that your example of Python is strikingly similar to Guido Van Rossum working at Google while he was BDFL of Python
- purpleidea 7y agoIt'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 7y agoCare to explain what a CLA is? Assuming a legal term...?
- steveklabnik 7y agohttps://en.wikipedia.org/wiki/Contributor_License_Agreement https://en.wikipedia.org/wiki/Contributor_License_Agreement
- fwip 7y agoContributor License Agreement - basically that you agree they can use your code, modify it and distribute it.
- stephenr 7y agohttps://en.m.wikipedia.org/wiki/Contributor_License_Agreement https://en.m.wikipedia.org/wiki/Contributor_License_Agreemen... Basically signing over rights of what you contribute to the company running the project.
- deleted 7y ago[deleted]
- deleted 7y ago[deleted]
- holografix 7y agoThanks all. So basically you can’t build a close source app with GO?
- steveklabnik 7y agoThat has nothing to do with the ability to build a closed source application. You can absolutely build one in Go.
- jmull 7y agoThe 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.)
- nurettin 7y agoLike 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 7y ago$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 7y ago10MM 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.
- phillipcarter 7y agoAnother one to add is the cost of evangelism. Even if someone isn't evangelizing a language directly, they're helping further it so long as they demonstrate how to do stuff with it.
- geodel 7y agoI read somewhere on mailing list that there are about ~30 people inside Google working full time on Go. And that is different from engineers working on products built using Go. With infrastructure cost added it would be easily $10 million a year. So these Linkedin/Twitter style thought leaders demanding some kinda OpenGo foundation need to ask if they have capacity to raise this amount consistently over years to start and run this foundation.
- mabbo 7y ago> 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 7y agoThose 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.
- blt 7y agoAnyone care to copy-paste so I don't have to log in?
- hu3 7y agoIan Lance Taylor wrote: > https://utcc.utoronto.ca/~cks/space/blog/programming/GoIsGooglesLanguage 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 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
- scarface74 7y agoNot 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 7y agoWhat does it even mean for it to be "supported for years to come"? It's not a web service.
- collinvandyck76 7y agoMoney spent to support the maintenance of the language and standard library evolution over time.
- iends 7y agoBugs exist in software that are not web services.
- tomnipotent 7y agoIt's a good thing it's an open source project and not a web service, then.
- ilikehurdles 7y agoLots of popular open source projects, including those that are not web services, sputter and die after the primary author stops working on it. When push comes to shove, when teams see that a part of their stack has been abandoned upstream, most will try to replace that part rather than take on the responsibilities of ownership.
- bradleyjg 7y agoSource 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.
- baby 7y agoSecurity 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.
- dana321 7y agoI can feel you there, Generics can become unwieldy especially when you're nesting several different generic types. Can you tell me if you have found any kind of security issue relating to interfaces and reflect(ion) ?
- baby 7y agoNever, but it's probably because abstractions hid all the bugs.
- zemo 7y ago> 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 7y agoYou probably don't. You can still use gopath and choose to use gopath for another project that doesn't.
- mr_tristan 7y agoI 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 7y ago> 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 7y agoIt'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.
- mr_tristan 7y agoIt _might_ be an institutional risk for people, who are evaluating tooling, to just decide that they don't see other major companies getting involved, see a bunch of gripes about the module system switcheroo, and decide "nah". You really get a sense of "this is Google's approach" with the go toolchain, because it's pretty unique. One of the first documents, "How to Write Go Code", sets up a workspace that doesn't clearly integrate in with any other toolchain I'm aware of. So, just by reading about the ecosystem, it's not clear who is really investing in it, and, you have a single, unique approach to tooling apparently dominating. I just wonder if these arguments would be mitigated if Go ever got the investment in "developer relations" that other Google projects get, with some better onboarding documentation.
- joeblau 7y agoI 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.
- hunterjrj 7y agoWhy 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 7y agoAnd why exactly would they do this?
- Triverklorezam 7y agoIt'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 7y agoThere 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 7y agoThis 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.
- slrz 7y agoWhich breaking changes do you mean? Got an issue link?
- reilly3000 7y agoIs 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.
- didibus 7y agoHonestly, 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 7y agoIt'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.
- einpoklum 7y agoNo. Forking a language is very difficult from forking an application (which is itself a Herculean task if the app is big). And few end-users of a piece of software will switch to a fork with much less backing because of soft-power influence or governance model.
- didibus 7y agoSlightly 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.
- oaeide 7y ago"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
- eecc 7y agoI’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 7y agoNo need to be upset. Maybe you can set an example for Go project on how it is done in right way.
- infinity0 7y ago> 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.
- xyzzy_plugh 7y ago> 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.
- zzzcpan 7y agoThey do grok it, they just don't trust that specific small group of people.
- a1369209993 7y agoMore to the point, they correctly perceive that that specific small group of people are acting on behalf of a evil corporation, rather than based on a coherent vision of what a successful language should look like.
- prepend 7y agoI 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 7y ago> 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.
- dredmorbius 7y agoIs Java is or is Java ain't Oracle's baby?
- ggm 7y agoGo 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.
- diminoten 7y ago> 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.
- loeg 7y agoSetting aside the topic entirely; that is some clear, direct, and courteous writing.
- einpoklum 7y agoThe response requires logging in to Google's systems. So, essentially, there is no public response.