It’s hard to overstate the amount of service Ian provided to the Go community, and the programming community at large. In addition to gccgo, Ian wrote the gold linker, has blogged prolifically about compiler toolchains, and maintains huge swaths of the gcc codebase [0]. And probably much, much more that I’m not aware of.<p>I’ve had the pleasure of trading emails with Ian several times over the years. He’s been a real inspiration to me. Amidst whatever his responsibilities and priorities were at Google he always found time to respond to my emails and review my patches, and always with insightful feedback.<p>I have complicated feelings about the language that is Go, but I feel confident in saying the language will be worse off without Ian involved. The original Go team had strong Bell Labs vibes—a few folks who understood computers inside and out who did it all: as assembler, linker, two compilers, a language spec, a documentation generator, a build system, and a vast standard library. It has blander, corporate vibes now, as the language has become increasingly important to Google, and standard practices for scaling software projects have kicked in. Such is the natural course of things, I suppose. I suspect this cultural shift is what Ian alluded to in his message, though I am curious about the specific tipping point that led to his decision to leave.<p>Ian, I hope you take a well-deserved break, and I look forward to following whatever projects you pursue next.<p>[0]: <a href="https://github.com/gcc-mirror/gcc/blob/master/MAINTAINERS">https://github.com/gcc-mirror/gcc/blob/master/MAINTAINERS</a>
When I worked at Google, Ian Lance Taylor was in the pool of randomly assigned code reviewers. He was polite, firm, and informative. It speaks well of Taylor and the project that he was doing this kind of review--- it's a version of the YC advice about founders doing customer support.<p>And maybe I'm shallow, but it was a thrill to see his initials show up on my code reviews. Thanks for all your work on golang.
> But Gooogle [sic] has changed, and Go has changed, and the overall computer programming environment has changed. It’s become clear over the last year or so that I am no longer a good fit for the Go project at Google. I have to move on.<p>That's kinda surprising to hear. I wonder what happened. It would have been easy to leave out these 3 sentences or replace them with fluff. The author choosing to write this out suggests that there is some weight here.
Back in 2016 when I was at google, I started on a team that was all golang. I was working on my first project, building out a new service and got many readability approvals from Ian. One time I got an an approval with some follow up requests, which I somehow didn’t notice and landed the change. He got back to me asking me to follow up. I didn’t realize he was one of the core Golang developers! He was super gracious, even though he didn’t need to be and I’ll always remember that. It’s really something that he invested so much time into seeing how the language was actually used and identifying core problems. Very admirable.
> ... Gooogle has changed, and Go has changed, and the overall computer programming environment has changed. It’s become clear over the last year or so that I am no longer a good fit for the Go project at Google. I have to move on.<p>I wish I had more elaboration on this paragraph. It seems like a real change happened of which Ian took notice.
The meta question here is what is the Google of 2005 today? Is it really OpenAI? Does it exist at all?<p>The meta meta question is how long was Google ever really in the state that so many engineers remember as a golden age?
Not trying to create a conspiracy theory, but I wonder whether this has any relation to Ian Hickson's departure from Google/Flutter team [1], where he specifically called out some names:<p>> Much of these problems with Google today stem from a lack of visionary leadership from Sundar Pichai, and his clear lack of interest in maintaining the cultural norms of early Google. A symptom of this is the spreading contingent of inept middle management. Take Jeanine Banks, for example, who manages the department that somewhat arbitrarily contains (among other things) Flutter, Dart, Go, and Firebase. Her department nominally has a strategy, but I couldn't leak it if I wanted to; I literally could never figure out what any part of it meant, even after years of hearing her describe it. Her understanding of what her teams are doing is minimal at best; she frequently makes requests that are completely incoherent and inapplicable. She treats engineers as commodities in a way that is dehumanising, reassigning people against their will in ways that have no relationship to their skill set. She is completely unable to receive constructive feedback (as in, she literally doesn't even acknowledge it). I hear other teams (who have leaders more politically savvy than I) have learned how to "handle" her to keep her off their backs, feeding her just the right information at the right time. Having seen Google at its best, I find this new reality depressing.<p>[1]: <a href="https://ln.hixie.ch/?start=1700627373" rel="nofollow">https://ln.hixie.ch/?start=1700627373</a>
I don’t have much insight into internal Google politics but there seems to be a rash of articles and blog posts over the years about prominent folks seemingly and abruptly announcing their exit. What is behind this trend?
Interestingly, the blog has very few posts. What I would really like to read is a follow up to <a href="https://www.airs.com/blog/archives/552" rel="nofollow">https://www.airs.com/blog/archives/552</a> (“The 2016 Election”)
Google has over the years tried to get several new languages off the ground. Go is by far the most successful.<p>What I find fascinating is that all of them that come to mind were conceived by people who didn't really understand the space they were operating in and/or had no clear idea of what problem the language solved.<p>There was Dart, which was originally intended to be shipped as a VM in Chrome until the Chrome team said no.<p>But Go was originally designed as a systems programming language. There's a lot of historical revisionism around this now but I guarantee you it was. And what's surprising about that is that having GC makes that an immediate non-starter. Yet it happened anyway.<p>The other big surprise for me was that Go launched without external dependencies as a first-class citizen of the Go ecosystem. For the longest time there were two methods of declaring them: either with URLs (usually Github) in the import statements or with badly supported manifests. Like just copy what Maven did for Java. Not the bloated XML of course.<p>But Go has done many things right like having a fairly simple (and thus fast to compile) syntax, shipping with gofmt from the start and favoring error return types over exceptions, even though it's kind of verbose (and Rust's matching is IMHO superior).<p>Channels were a nice idea but I've become convinced that cooperative async-await is a superior programming model.<p>Anyway, Go never became the C replacement the team set out to make. If anything, it's a better Python in many ways.<p>Good luck to Ian in whatever comes next. I certainly understand the issues he faced, which is essentially managing political infighting and fiefdoms.<p>Disclaimer: Xoogler.
As a fellow Go developer, I want to express my deep gratitude for your immense contributions to the language and its community. Your work has not only shaped Go into the productive and enjoyable language it is today, but has also inspired countless engineers—including myself—to build better software. Thank you for your dedication and for paving the way for the next generation of Go developers. Wishing you all the best in your future endeavors!
Google should spin Go out into a non-profit foundation and give it $1 billion and send it on its way. They should beg Russ Cox run it as benevolent dictator for life, and hope he can hire Ian Lance Taylor back.
Golang has always struck me as having a great user experience, including documentation. I feel like some of Google's other dev-facing products needed this. Like, Tensorflow lost to PyTorch despite its initial lead, and the PyTorch on Google Cloud reputation isn't great.
> Overall I think my approach was a good one in helping to build a successful project. But Google has changed, and Go has changed, and the overall computer programming environment has changed. It’s become clear over the last year or so that I am no longer a good fit for the Go project at Google. I have to move on.<p>I wish people would have the courage to explain what led to their decision to leave big projects, instead of trying to be overly polite. This statement virtually says nothing and the whole post boils down to nothing but: I left Google.
> Having two compilers helped ensure that the language was clearly defined.<p>> When the two compilers differed, we knew that we had to clarify the spec and figure out what the right behavior should be.<p>This idea of having two implementations for spec stood out for me.
I wonder what people use GCC Go for, in production? I tried it and it seems pretty cool, although the binaries start slower for some reason (I think it was more than a second even?)
This is so sad! It seems Go is fast becoming rudderless, i worry the wualities that have made it great wont survive the tides at google this way. But i hope to be wrong.
so what is the reason why he is leaving? layoffs? burnout? up-or-out without up? internal politics pushed him out? seems like he wants to work. so what happened?
I wonder what an average net worth of a person who works at Google for 20 years.<p>This guy must have been pretty high up maybe at senior staff / principal for several years at least. A principal can probably draw >$1M per year.<p>Would it be in $50M-$100M range?
I'd have liked to see more actual reasons for the departure beyond "not a good fit anymore". What does that mean? How have things changed?<p>Honest question, I'm not after dirty laundry. Just want to know more than "I'm leaving because reasons" which is kinda the tl;dr of that post.
Why do people think they are so important to announce their departures instead of stating plainly that they hit their retirement number? Or just not state anything at all?
> That is far beyond what any of us expected in the early days, when our best hope was that Go might serve as an example for useful ideas that other languages and programming environments could adopt.<p>Am I understanding you correctly? The Go authors basically expected Go to be <i>just</i> a good starting point or source of ideas for <i>real</i> languages to stand on?