{"id":5618,"date":"2019-06-01T17:38:58","date_gmt":"2019-06-01T15:38:58","guid":{"rendered":"https:\/\/monodes.com\/predaelli\/?p=5618"},"modified":"2019-06-01T17:38:58","modified_gmt":"2019-06-01T15:38:58","slug":"chriss-wiki-blog-programming-goisgoogleslanguage","status":"publish","type":"post","link":"https:\/\/monodes.com\/predaelli\/2019\/06\/01\/chriss-wiki-blog-programming-goisgoogleslanguage\/","title":{"rendered":"Chris&#8217;s Wiki :: blog\/programming\/GoIsGooglesLanguage"},"content":{"rendered":"<h2>It&#8217;s always worth remembering that<\/h2>\n<div class=\"wikitext titlehack\">\n<blockquote>\n<h1><a href=\"https:\/\/utcc.utoronto.ca\/~cks\/space\/blog\/programming\/GoIsGooglesLanguage\">Go is Google&#8217;s language, not ours<\/a><\/h1>\n<\/blockquote>\n<p>&nbsp;<\/p>\n<\/div>\n<p><!--nextpage--><\/p>\n<p><!--more--><\/p>\n<blockquote>\n<div class=\"wikitext titlehack\">\n<div class=\"posttitle\"><small>May 22, 2019<\/small><\/div>\n<\/div>\n<div class=\"wikitext\">\n<p>Over on Twitter, I saw <a href=\"https:\/\/twitter.com\/kapoorsunny\/status\/1130150301468700674\">the following question<\/a> (<a href=\"https:\/\/old.reddit.com\/r\/golang\/comments\/bqiyyb\/generics_in_go\/\">via<\/a>):<\/p>\n<blockquote><p>There is lot of conversation around generics in #go, can&#8217;t we have something like OpenGo, where community can implement generics , rather that waiting for official #go generics to happen ? Something like OpenJDK<\/p><\/blockquote>\n<p>There are many answers for why this won&#8217;t happen, but one that does not usually get said out loud is that <strong>Go is Google&#8217;s language, not the community&#8217;s<\/strong>.<\/p>\n<p>Yes, there&#8217;s a community that contributes things to Go, some of them important and valued things; you only have to look at the diversity of people in <a href=\"https:\/\/github.com\/golang\/go\/blob\/master\/CONTRIBUTORS\">CONTRIBUTORS<\/a> or see the variety of people appearing in <a href=\"https:\/\/github.com\/golang\/go\/commits\/master\">the commits<\/a>. But Google is the gatekeeper for these community contributions; it alone decides what is and isn&#8217;t accepted into Go. To the extent that there even is a community process for deciding what is accepted, there is an 800-pound gorilla in the room. Nothing is going to go into Go that Google objects to, and if Google decides that something needs to be in Go, it will happen.<\/p>\n<p>(The most clear and obvious illustration of this is what happened with Go modules, where one member of Google&#8217;s Go core team discarded the entire system the outside Go community had been working on in favour of a <a href=\"https:\/\/research.swtch.com\/vgo\">relatively radically different model<\/a>. See <a href=\"https:\/\/peter.bourgon.org\/blog\/2018\/07\/27\/a-response-about-dep-and-vgo.html\">eg<\/a> for one version of this history.)<\/p>\n<p>Or in short, Go has community contributions but it is not a community project. It is Google&#8217;s project. This is an unarguable thing, whether you consider it to be good or bad, and it has effects that we need to accept. For example, if you want some significant thing to be accepted into Go, working to build consensus in the community is far less important than persuading the Go core team.<\/p>\n<p>(As a corollary, sinking a lot of time and effort into a community effort that doesn&#8217;t have enthusiastic buy-in from the Go core team is probably a waste of time; at the most, your work might help the Go core team understand the issues better. Again, see Go modules for this in action.)<\/p>\n<p>In general, it&#8217;s extremely clear that the community&#8217;s voice doesn&#8217;t matter very much for Go&#8217;s development, and those of us working with Go outside Google&#8217;s walls just have to live with that. If we&#8217;re very lucky, our priorities match up with Google&#8217;s; if we&#8217;re reasonably lucky, the Go core team and Google will decide that they care enough about our priorities to work on them. The good news is that Google and the Go core team do care (so far) about Go being a success in the outside world, not just inside Google, so they&#8217;re willing to work on pain points.<\/p>\n<p>(On the good and bad scale, there is a common feeling that Go has done well by having a small core team with good taste and a consistent vision for the language, a team that is not swayed by outside voices and is slow moving and biased to not making changes.)<\/p>\n<p>PS: I like Go and have for a fair while now, and I&#8217;m basically okay with how the language has been evolving and how the Go core team has managed it. I certainly think it&#8217;s a good idea to take things like generics slowly. But at the same time, how things developed around Go modules has left a bad taste in my mouth and I now can&#8217;t imagine becoming a Go contributor myself, even for small trivial changes (to put it one way, I have no interest in knowing that I&#8217;m always going to be a second class citizen). I&#8217;ll file bug reports, but that&#8217;s it. The whole situation leaves me with ambiguous feelings, so I usually ignore it completely.<\/p>\n<p>(And claims by the Go team that they really care about the community and want them to be involved now sound laughable. I&#8217;m sure they care, but only up to a certain point. I think that the Go core team should be bluntly honest about the situation, rather than pretend and implicitly lead people on.)<\/p>\n<h3>Sidebar: Google and the Go core team<\/h3>\n<p>You could ask if Go is Google&#8217;s language or the Go core team&#8217;s language, since Go&#8217;s direction is set and controlled by that small core team. However, at the moment I believe that most or all of the active Go core team is employed by Google, making the distinction impossibly to determine in practice (at least from outside Google). In practice we&#8217;ll only get a chance to find out who Go really belongs to if Go core team members start leaving Google and try to remain active in determining Go&#8217;s direction. If that works, especially if the majority of them no longer work for Google, then Go probably is their language, not Google&#8217;s, in the same way that Python has always been Guido van Rossum&#8217;s language regardless of who he worked for at the time.<\/p>\n<p>On a practical level, it&#8217;s undeniable that at the moment Google provides much of the infrastructure and resources to support Go, such as <a href=\"https:\/\/golang.org\/\">golang.org<\/a>, and as a result owns the domain names and so on. Google also holds the trademarks on &#8216;Go&#8217; as a programming language, per <a href=\"https:\/\/www.google.com\/permissions\/trademark\/trademark-list\/\">their trademarks list<\/a>.<\/p>\n<\/div>\n<div class=\"commenttools\"><\/div>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p class=\"excerpt\">It&#8217;s always worth remembering that Go is Google&#8217;s language, not ours &nbsp;<\/p>\n<p class=\"more-link-p\"><a class=\"more-link\" href=\"https:\/\/monodes.com\/predaelli\/2019\/06\/01\/chriss-wiki-blog-programming-goisgoogleslanguage\/\">Read more &rarr;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[171,52],"tags":[],"class_list":["post-5618","post","type-post","status-publish","format-standard","hentry","category-ethics","category-software"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p6daft-1sC","jetpack-related-posts":[{"id":13563,"url":"https:\/\/monodes.com\/predaelli\/2025\/06\/15\/what-can-we-learn\/","url_meta":{"origin":5618,"position":0},"title":"What can we learn?","author":"Paolo Redaelli","date":"2025-06-15","format":false,"excerpt":"I just read \"Python Creator Guido van Rossum Asks: Is 'Worse is Better' Still True for Programming Languages?\" and I wonder what can we Eiffellers learn from it. Python Creator Guido van Rossum Asks: Is 'Worse is Better' Still True for Programming Languages? In 1989 a computer scientist argued that\u2026","rel":"","context":"In &quot;Liberty Eiffel&quot;","block_context":{"text":"Liberty Eiffel","link":"https:\/\/monodes.com\/predaelli\/category\/eiffel\/liberty-eiffel\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1286,"url":"https:\/\/monodes.com\/predaelli\/2016\/04\/17\/eiffel-a-viable-candidate-as-a-language-for-the-gnome-platform\/","url_meta":{"origin":5618,"position":1},"title":"Eiffel: A viable candidate as a language for the Gnome platform ?","author":"Paolo Redaelli","date":"2016-04-17","format":false,"excerpt":"Eiffel: A viable candidate as a language for the Gnome platform ? It was 2004. Linux were labelled as a cancer by Ballmer, Android and iPhone didn't existed. Multi-core CPU were still high-end. It was a different world. From archive.org, before it got lost.... Twelve years ago. And it was\u2026","rel":"","context":"In &quot;Eiffel&quot;","block_context":{"text":"Eiffel","link":"https:\/\/monodes.com\/predaelli\/category\/eiffel\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2194,"url":"https:\/\/monodes.com\/predaelli\/2017\/02\/21\/2194\/","url_meta":{"origin":5618,"position":2},"title":"Oh, my! WOGUE wroteFeb 21,\u2026","author":"Paolo Redaelli","date":"2017-02-21","format":false,"excerpt":"Oh, my! WOGUE wroteFeb 21, 11:22 you know guys, in the around 5 years I'm blogging about GNOME, you wont find not a single time of mine, proposing you to start with GNOME Development ..but I didn't either say dont do GNOME development! the reason isn't because GNOME development is\u2026","rel":"","context":"In &quot;Mood&quot;","block_context":{"text":"Mood","link":"https:\/\/monodes.com\/predaelli\/category\/mood\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2017\/02\/photo.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":8197,"url":"https:\/\/monodes.com\/predaelli\/2021\/02\/25\/a-post-mortem-in-5-acts-of-how-microsoft-privatized-open-source-killing-javascript-in-the-process\/","url_meta":{"origin":5618,"position":3},"title":"A Post-Mortem in 5 Acts, of How Microsoft Privatized Open Source, killing JavaScript in the Process","author":"Paolo Redaelli","date":"2021-02-25","format":"link","excerpt":"A Post-Mortem in 5 Acts, of How Microsoft Privatized Open Source, killing JavaScript in the Process After Microsoft\u2019s blitzkrieg take-over, the Open Source JavaScript community, as we know it, is coming to an end. Alex KleydintsFeb 6\u00b79 min read All things said and done, you must stand in awe, at\u2026","rel":"","context":"In &quot;Ethics&quot;","block_context":{"text":"Ethics","link":"https:\/\/monodes.com\/predaelli\/category\/ethics\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1302,"url":"https:\/\/monodes.com\/predaelli\/2016\/04\/23\/moments\/","url_meta":{"origin":5618,"position":4},"title":"Moments","author":"Paolo Redaelli","date":"2016-04-23","format":false,"excerpt":"There are moments that shall be recorded. This is one of them for me: Student Petru Gurita Project nameLiberty Eiffel meets Windows OrganizationGNU Project Mentors Paolo Redaelli Liberty Eiffel language available on windows environment. Sorgente: Organizations | Google Summer of Code","rel":"","context":"In &quot;GNU\/Linux&quot;","block_context":{"text":"GNU\/Linux","link":"https:\/\/monodes.com\/predaelli\/category\/gnulinux\/"},"img":{"alt_text":"i-am-a-mentor","src":"https:\/\/i0.wp.com\/monodes.com\/predaelli\/wp-content\/uploads\/sites\/4\/2016\/04\/i-am-a-mentor-300x147-1.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":2496,"url":"https:\/\/monodes.com\/predaelli\/2017\/05\/22\/six-programming-paradigms-that-will-change-how-you-think-about-coding\/","url_meta":{"origin":5618,"position":5},"title":"Six programming paradigms that will change how you think about coding","author":"Paolo Redaelli","date":"2017-05-22","format":false,"excerpt":"Six programming paradigms that will change how you think about coding Yevgeniy Brikman writing speaking projects photos Six programming paradigms that will change how you think about coding Apr 09, 2014 Software Engineering 29 Comments 16 min read Every now and then, I stumble across a programming language that does\u2026","rel":"","context":"In &quot;Senza categoria&quot;","block_context":{"text":"Senza categoria","link":"https:\/\/monodes.com\/predaelli\/category\/senza-categoria\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts\/5618","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/comments?post=5618"}],"version-history":[{"count":0,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/posts\/5618\/revisions"}],"wp:attachment":[{"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/media?parent=5618"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/categories?post=5618"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/monodes.com\/predaelli\/wp-json\/wp\/v2\/tags?post=5618"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}