15 ms·
Leaving Google
- philosopher1234 2y agoThis 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.
- nikolayasdf123 2y agosame. Go is so powerful because of its core. without core, ecosystem will fall apart
- surajrmal 2y agoGo still has strong leadership. They are just not as prominently known externally.
- 90s_dev 2y ago> 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. Am I understanding you correctly? The Go authors basically expected Go to be just a good starting point or source of ideas for real languages to stand on?
- chubot 2y agoNo, you editorialized it by adding the word “real” You’re probably reading what you want to read
- cokeandpepsi 2y ago[dead]
- lowmagnet 2y agono, they expected to have good ideas others can follow.
- nine_k 2y agoGoogle has a bunch of internal languages that are only used within it, don't enjoy a wider adoption, and get deprecated. Facebook created Hack, a version of PHP with a quite nice static type system, which is virtually not used outside it. They also had an early statically typed version of JavaScript, called Flow, which enjoyed a limited success, but was supplanted by Typescript. Haskell, OCaml, Erlang, Smalltalk, etc all enjoyed some success in specific narrow domains, while influencing heavily such mainstream languages as Python, Java, Typescript, Rust, and, well, Go. Compared to this, Go is unreasonably, blindingly successful; it's now all over the place, but that was hard to predict back in the early days of the project.
- nick__m 2y agohack was created at meta for meta...
- nine_k 2y agoStill Hack and HVVM are open source and anyone who cares can use them. Go was also created at Google and for Google first and foremost, but ended up wildly popular in general. (React was also created at Meta and for Meta. Same with Pytorch.)
- nikolayasdf123 2y agocmon. nobody in their right mind is using hack outside of Meta at least single example in open source or in enterprise who is running Hack? haven't seen even one in 8 years
- cdogl 2y agoI read it as simple humbleness, which is not too surprising given the careful management of the project and the tone of the piece.
- cratermoon 2y agoHugged to death, so https://archive.is/RbkzW https://archive.is/RbkzW
- chubot 2y agoI 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?)
- vips7L 2y agoProbably boutique architectures or operating systems the official compiler doesn't support.
- RainyDayTmrw 2y agoIf you're targeting a system (hardware architecture and operating system combination) that GCC already supports, but the native Go toolchain doesn't, this may be an easier bootstrap path.
- pjmlp 2y agoIt used to be for better performance, however it was never updated after Go got generics, so I suspect eventually it will join gjc at the compilers retirement pub.
- r0nan 2y agoI’m curious what he means by Google changing and the Go project changing
- LVB 2y agore: Go, I did wonder if there was any connection to Russ leaving (https://news.ycombinator.com/item?id=41132669 https://news.ycombinator.com/item?id=41132669)
- nikolayasdf123 2y agoyes, looks like related
- atombender 2y agoRuss Cox has not left. He's still on the Go team at Google, but he's stepped down from his position as tech lead.
- rsc 2y agoOfficially, I have left the Go team too; I started on a new team at Google a few weeks ago. I still use Go quite a bit, I still talk to people on the Go team regularly, and you will still see the occasional code change, code review, or blog post from me. Most importantly, I have high confidence that the team we built will do an excellent job continuing the work.
- atombender 2y agoGotcha. In your golang-dev announcement you wrote that you are "not leaving the Go project", but maybe there was another announcement?
- rsc 2y agoThe parent comment is the first time I've said anything publicly (it has only been a few weeks). I didn't feel like it needed an announcement, but since it came up, it seemed worth correcting. It's not a state secret. :-) In my August announcement, I was careful to say I wasn't leaving the Go project. I'm still involved with the Go project and expect to keep being involved. I'm just not officially on the Go team at Google anymore. Stepping back from the actual team to give others room to lead always seemed to me both likely and appropriate.
- RainyDayTmrw 2y ago> 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. 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.
- hiddencost 2y agoI think management started turning the screws. They're doing that everywhere. Management isn't technical anymore.
- RainyDayTmrw 2y agoOne would think that someone prominent like Ian Lance Taylor or Russ Cox (who also left within this past year, as noted by another commenter) would be relatively insulated from that.
- vlovich123 2y agoWhy would you think that? You still have management, you have to go through perf calibration and justify your performance. Engineering like most human profesional activities is a very social endeavor where you rely on the people that surround you and you always have people pressuring you to do something.
- 90s_dev 2y ago> you have to go through perf calibration and justify your performance He did sound relatively defeated when he accused himself of not accurately predicting the future needs of Go users, as if it were even possible! Maybe management has just been unjustly critical of his performance, and he's taking it too much to heart? Hard to tell, but I just get that feeling.
- nine_k 2y ago
- neves 2y agoWhat are the good use cases for Go today? It looks like the hype has gone.
- packetlost 2y agoI put it in the same category as Clojure and where I hope Rust eventually ends up: stable, boring, and capable with healthy ecosystems
- 90s_dev 2y agoTheoretically, it's basically a faster Node.js. Case in point, TypeScript is moving from Node.js to Go for a 10x speed increase. But in reality, TypeScript is probably its only legitimate use-case, and only because it already had very stringent requirements. Most projects either stick to Node.js, or if they need more efficiency, they get rewritten in C++ or Rust, instead of ported to Go.
- zaphirplane 2y agoWith all due respect, I am fairly confident that the view you have is formed in a bubble .
- nikolayasdf123 2y ago> Theoretically, it's basically a faster XYZ well, that's the point. it is excellent language for server programming. and not just faster, it is more stable, scales complexity better, stronger security
- dboreham 2y agoWhere you want to just cut code without drama (and dramatic people).
- root_axis 2y agoGo shines for network services. The standard library has everything you need for networking and the web with very accessible concurrency primitives. It's also a pretty lightweight language that's easy for people to pick up.
- philosophty 2y agoGoogle 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.
- benesch 2y agoIt’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. 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. 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. Ian, I hope you take a well-deserved break, and I look forward to following whatever projects you pursue next. [0]: https://github.com/gcc-mirror/gcc/blob/master/MAINTAINERS https://github.com/gcc-mirror/gcc/blob/master/MAINTAINERS
- sidkshatriya 2y agoIt's very important for both the compiler tools chains of go to continue working well for redundancy and feature design validation purposes. However, I'm generally curious -- do people / organizations use gcc-go for some use cases ?
- fweimer 2y agoGCC Go does not support generics, so it's currently not very useful.
- necheffa 2y ago> GCC Go does not support generics, so it's currently not very useful. I don't think a single one of the Go programs I use (or have written) use generics. If generics is the only sticking point, then that doesn't seem to be much of a problem at all.
- cletus 2y agoGoogle has over the years tried to get several new languages off the ground. Go is by far the most successful. 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. There was Dart, which was originally intended to be shipped as a VM in Chrome until the Chrome team said no. 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. 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. 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). Channels were a nice idea but I've become convinced that cooperative async-await is a superior programming model. Anyway, Go never became the C replacement the team set out to make. If anything, it's a better Python in many ways. Good luck to Ian in whatever comes next. I certainly understand the issues he faced, which is essentially managing political infighting and fiefdoms. Disclaimer: Xoogler.
- eikenberry 2y ago> Channels were a nice idea but I've become convinced that cooperative async-await is a superior programming model. Curious as to your reasoning around this? I've never heard this opinion before from someone not biased by their programming language preferences.
- cletus 2y agoSure. First you need to separate buffered and unbuffered channels. Unbuffered channels basically operate like cooperate async/await but without the explictness. In cooperative multitasking, putting something on an unbuffered channel is essentially a yield(). An awful lot of day-to-day programming is servicing requests. That could be HTTP, an RPC (eg gRPC, Thrift) or otherwise. For this kind of model IMHO you almost never want to be dealing with thread primitives in application code. It's a recipe for disaster. It's so easy to make mistakes. Plus, you often need to make expensive calls of your own (eg reading from or writing to a data store of some kind) so there's no really a performance benefit. That's what makes cooperative async/await so good for application code. The system should provide compatible APIs for doing network requests (etc). You never have to worry about out-of-order processing, mutexes, thread pool starvation or a million other issues. Which brings me to the more complicated case of buffered channels. IME buffered channels are almost always a premature optimization that is often hiding concurrency issues. As in if that buffered channels fills up you may deadlock where you otherwise wouldn't if the buffer wasn't full. That can be hard to test for or find until it happens in production. But let's revisit why you're optimizing this with a buffered channel. It's rare that you're CPU-bound. If the channel consumer talks to the network any perceived benefit of concurrency is automatically gone. So async/await doesn't allow you to buffer and create bugs for little benefit and otherwise acts like unbuffered channels. That's why I think it's a superior programming model for most applications.
- nikolayasdf123 2y agoso 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?
- justguesser 2y agoNot 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: > 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. [1]: https://ln.hixie.ch/?start=1700627373 https://ln.hixie.ch/?start=1700627373
- glimshe 2y agoThanks for sharing. One of my greatest fears for our industry is that we'll never have a company like early Google again. The company should have changed names when Pichai took the reins because it metamorphised into something unrecognizable. Most people you'll meet who worked for Google worked under his regime.
- armitron 2y agoLet's not pretend that Google pre Pichai was anything special, the rot was already instilled long before he came along. Other than very early days, Google has mostly been a force that corrupts, commoditizes and destroys. Sundar Pichai just made it explicit, a bagman-beancounter far removed from any engineering ethos.
- 2y ago
- theusus 2y ago[flagged]
- egl2020 2y agoWhen 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. 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.
- notepad0x90 2y agoWhat a nice praise. It is refreshing to see someone being remembered as 'polite'. It is a critical life-lesson I've learned myself, it is better to be considered things like polite, kind and nice instead of smart, 10x <whatever>, capable.
- caprock 2y agoI've found a lot of value in the habits of politeness, especially in written communication. It's disappointing when it's not a first class citizen in a company culture for things like code review. There are plenty of rationalizations for how it might not be needed, but that just feels like laziness.
- robocat 2y agoI personally prefer to be given brutal honesty. Overly polite people often annoy me because they hide information or they can't get to the point or their point is hidden within layers of wishy-washy mush that I need to correctly parse and then respond correctly to. Politeness is absolutely necessary, and I hate seeing callous impoliteness in wider society (e.g. towards service workers). I suspect I would severely struggle in a deeply polite society (stereo-typically Asian?). I can relax the most around very direct people (Dutch?). I am continually stressed when dealing with anyone that absolutely needs politeness. Example 1: a very close friend who can be triggered by anything reminding them of their abusive ex. Example 2: a self-centred acquaintance that needs pandering (however isn't polite in return). There's a balance - but it's hard to find. Perhaps I'm confusing two different dimensions, politeness and honesty? Edit: This is a wishy-washy comment. Difficult topic, straight-jacketed conflict, interpersonal stuff that is hard to understand and talk about.
- firesteelrain 2y agoI 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?
- praptak 2y agoGoogle switched from exploration to exploitation. At least this is what I found at the root of every particular inconvenience that used to wear me down at Google until I finally left in August.
- AdrianB1 2y agoCorporation rot. If you are successful when you are relatively small and hire the best and brightest, then you scale out in numbers, you go down as this model is not scalable. When you have tens of thousands of people, you bring "professional management" that are bozos (this is a quote from an interview with Steve Jobs), the organization first starts to decline as an average (cannot find tens of thousands of really bright people, there are not enough in the world) and second it starts to rot as the bozos have a huge negative impact. When the bozos change the culture for the worse, top people leave, average employee is declining even more. It is a race to the bottom, not in pricing but in employee quality.
- mosura 2y agoThe meta question here is what is the Google of 2005 today? Is it really OpenAI? Does it exist at all? The meta meta question is how long was Google ever really in the state that so many engineers remember as a golden age?
- conqrr 2y agoThere isn't one yet / We can't see it. You're trying to predict an Industry (like the Tech Industry) that will grow beyond $1 Trillion and a company that provides a fundamental and ubiquitous tool (like Search).
- NotAnOtter 2y agoMy take is the 2005 google does not and cannot exist again because it was born in an era where the underlying tech became so much more powerful. Any company that happened to invest creatively in tech during that era became unfathomably wealthy. I joined google in 2022 (and have since left), even as a newcomer it was obvious that not only was the golden era over, but the era after the golden era was winding down too. The atmosphere wasn't "The reckless innovation is over but lets make the product as great as we can" - it was "Just don't break anything and squeeze out 1 or 2% improvements where possible"
- monkeyelite 2y ago> Any company that happened to invest creatively in tech during that era became unfathomably wealthy. Except countless companies did - many went out of business, and few became Googles. The historical context is essential but there are so many factors that set them apart.
- mmx1 2y agoIndeed countless companies went under investing in tech, on various iterations of the exact things that later became enormously successful, e.g. iPhone. Success is only guaranteed in retrospect.
- 2y ago
- sbochins 2y agoBack 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.
- iwontberude 2y ago19 years! Congratulations for making it out!!
- BeFlatXIII 2y agoYou only ever serve two days: the day you sign your new hire paperwork and the day you complete the exit interview.
- iwontberude 2y agoI just assumed it took a while to find a way out (figuratively) through all of the obligation and social entanglement.
- taf2 2y agoWhen you have core people from Google leaving the chrome and now golang project - it’s pretty evident the management is not doing so good
- uaas 2y agoWhile there can be other signs of management not doing so good, let’s not forget that this person is leaving after 19 years.
- mountainriver 2y agoThey are putting all their cards in AI, they see it as an existential battle. They are probably right
- djha-skin 2y ago> ... 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. I wish I had more elaboration on this paragraph. It seems like a real change happened of which Ian took notice.
- mattlondon 2y agoProbably asked to make it more AI or something. "Please add Gemini to the go compiler errors, or take a hike."
- skirmish 2y agoAlmost exactly what I heard, he was told (paraphrased) "for people at this level and pay, we expect them to be working full on time on AI".
- b112 2y agoI have yet to see a thing made better by LLMs. I've seen things with more impressive results, but then interlaced with garbage results. Far less reliable is the outcome. Whether it's the now horrible pixel camera app, search results, or really anything else, it's all garbage Meanwhile, yay!, let's use a billion times the compute.
- deleted 2y ago[deleted]
- bschwindHN 2y agoYep, we're essentially burning billions of dollars to produce garbage, and the next generation of these LLMs will ingest that new garbage and start producing more. But hey we got a few pretty pictures and funny videos along the way!
- YZF 2y agoSad and not surprising. Presumably when you are in the US with US sized total compensation this is even more of a problem. It is also a sign that the technical buffer layer (people like directors, VP, CTO) is not functioning well and also points to issues with company vision and roadmap. I don't think it's wrong per se to suggest that Google should not be in the business of "Go" e.g. but presumably there are many other areas where similar technical expertise can be used in this size of company. That said I've seen good people get stuck in large companies. They are put in a certain bucket and find it very hard to change. Sometimes leaving is the correct answer. As someone who switched to Go in its early days (from C++) and had some interaction with the community (bugs, conventions etc.) it's a little sad but I think also just the way things go.
- 486sx33 2y agoPosts like this really show how resilient C has been over the past few *decades•. Who will invest in Go now that Google doesn’t care about anything ?
- yusina 2y agoI'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? 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.
- laidoffamazon 2y agoWhy 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?
- frollogaston 2y agoCause he didn't hit his retirement number
- leelou2 2y agoAs 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!
- sheepscreek 2y agoInterestingly, the blog has very few posts. What I would really like to read is a follow up to https://www.airs.com/blog/archives/552 https://www.airs.com/blog/archives/552 (“The 2016 Election”)
- ergocoder 2y agoI wonder what an average net worth of a person who works at Google for 20 years. 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. Would it be in $50M-$100M range?
- kridsdale1 2y agoThat depends on if they had a mortgage or rent payment in the Bay Area that whole time.
- georgehm 2y ago> Having two compilers helped ensure that the language was clearly defined. > When the two compilers differed, we knew that we had to clarify the spec and figure out what the right behavior should be. This idea of having two implementations for spec stood out for me.
- frollogaston 2y agoGolang 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.
- 7bit 2y ago> 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. 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.
- kragen 1y agoTo keep working at Google for more than a few months, you must internalize their relatively extreme internal culture of secrecy. Also, potentially Google could sue him for NDA violations.