Hacker News new | past | comments | ask | show | jobs | submit login

I am not sure why you're being downvoted, you're right. Here's the quote from Rob Pike I find astounding:

"The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt. – Rob Pike" [1] (emphasis mine)

You and I: we're not smart enough to use modern language features. And it just so happens that the language features and practices that we can handle are the ones that Rob Pike likes and settled on as good in the 70s and 80s. Anything from the last 25 years, we're not capable of understanding.

Honestly, part of many bonuses of leaving Google at the end of the month (after 10 years there) is that I hopefully will have the choice not to use Go and its heaps of insulting boilerplate... but I also hopefully won't have to deal with that kind of arrogance.

[1] http://nomad.uk.net/articles/why-gos-design-is-a-disservice-...




Researchers tend to write pretty poor code, if any of the research papers I've read/read corresponding code for are any indication.

Obviously not trying to state anything deep here by over-analyzing that one point in his quote, but kinda funny his statement implies researchers write decent code.

Often I question the result of a paper due to how bad the code is. Many paper results cannot even be replicated by writing your own code following the papers description.

I agree more fundamentally with the fact that most people write low quality code if there aren't structures/patterns already in place to protect them from themselves. From that perspective, I agree with his point. Though I'm not a big fan of the implementation of the idea


Welcome to the Xoogler club :D. Just curious what areas did you work in, generally speaking? I never saw a line of Go in close to three years working around the Ads products.

Obviously it's a massive company and I saw maybe 5% of it, but I joke with my friends that I had to leave goog to get real exposure to Go and borg/k8s.


I've been through all sorts of PAs (including ads in my first two years). And yes, I only really saw Go in my last year here, working in Core. I transferred from Nest/Hardware because WFH was too difficult for that kind of work (hardware devices), and I wanted to get back into Google3 so I could be more productive. And it so happened the codebase I landed in was Go. I mean, it's been mostly tolerable, but it's also just... not good honestly.

And yes, I do think generally Go is used more outside Google than it is inside. It's not a language made for Google -- despite what Pike is saying -- it's a language made by some people who happen to work at Google to scratch an itch they've had since they worked at Bell Labs.


In Romania there's an old question to find the character of somebody: are you Roman or Greek? Because if you are Roman, you put practice above theory, you are a pragmatist, skeptic, if you are Greek you will put theory above practice, you are an idealist, optimist, at the expense of hardships in the material world and other potential drawbacks. Rob Pike chose Roman, otherwise it would have cost Google money to train those people and we don't know if those language features could bring any benefits for the kind of software they develop. As he said, they are not researchers working with category theory, instead they program ever-changing software for an imperfect world driven by profits, rather than academic idealism.


I mean, I actually work(ed) at Google and this is nonsense for Google developers.

The most used and deployed code at Google is written in C++, not Java or Python, and while we have a sane subset of it in our style guide it is by no means dumbed down to the level that Pike seems to imply we need it to be.

Google has done fairly fine deploying C++ into production for a couple decades. I haven't found Go superior at all so far, more insulting than anything. And tedious and opinionated in all the wrong ways.


I just replied to your other comment further up thread, but yes this is my anecdotal experience as well. You couldn't walk ten feet without tripping over C++ and Java. Never myself saw Go checked into corp.


Seems Go insulted you so much that you really lost sense of proportion or any reasonableness in your comments.


I never had that, so we can't blame Go.


”Pragmatism vs Idealism” is pretty much like saying “we're doing the right things and others are wrong”. No software engineer would define themself as an “idealist who don't take reality into account into their design”.

For instance, I'd consider Go being very “idealistic” since it was designed mostly from the vision of a small group of people with a clear mantra: “simplicity”. But of course, Rob Pike would never have advertised his language this way.

On the other hand, one could argue that Rust is pretty much is the “realist” camp, since it was initially designed in a very different shape from what it later became when early adopters started using it (the Servo team at Mozilla in the beginning, and then other groups: for instance the Fushia team at google at an impact on the design of the async part of the language).


Curious: Did 'Commander Pike' influence choice of 'Comrade Porcupine'?


No I've had this nick and various variations on it since I was a teenager on LambdaMOO in the early 90s, and I don't think I was conscious of Commander Pike.


You sound like you have a chip on your shoulder and you come off as a spoiled child. Just as the anti-Trump crowd doesn't like Trump's personality, you reject Pike for his arrogance.

He's done great things. Think about the caliber of people that man worked with every day. And then he goes to Google and sees thousands of 'ordinary' people slinging C++ and doing web work. We become products of our environment. There's a lot of gap between him and you. And that's ok. You'll go on to do another 10 years at another big tech company and live a good life.

I'm way below your caliber and I see some arrogance in your words. I think both of you are arrogant because you unconciously became a product of the environment. I'm just a nobody that fails 9/10 interviews, including Google 2 months ago. It takes luck for me to get hired anywhere and I find it hard to relate to the middle class people I work with because I've been so poor. But I bet you I come off as arrogant to tradesmen, cashiers, janitors, and many others. Just let it go.


> Think about the caliber of people that man worked with every day.

Greatness by association is not a solid concept. It shows how lucky a person is to be surrounded by great people but in itself does not count as an evidence of his greatness. But on the other hand, great research minds tend to cluster, thus his priors are above average.


> Just as the anti-Trump crowd doesn't like Trump's personality, you reject Pike for his arrogance.

This feels like an odd and unfair comparison.

I have nothing but respect for Pike and what he’s accomplished.

I don’t dislike him in some anti-cult-of-personality. I’m not ignoring good work he’s done just because it doesn’t fit my world view.

But I CAN criticize his individual work for being limiting or lacking ergonomics that I like.

And it’s entirely fair to look at Pike’s personal motivation for making the decisions he made, because it has an impact not only on what Go is currently, but also what it’s likely to be (or likely to not be) in the future.

If Go were created with the intention to be, say, a cleaner C++ with garbage collection, then I’d be all over it. I’d know that even if I don’t fully like it’s implementation today, it might eventually “get there”.

But instead it was created as an admittedly dumbed down language for people that Pike personally decided needed a dumbed down language, so I know that it’s never going to be what I want it to be.

That’s not an attack on Pike as a person. It’s not me blindly following a media campaign trying to destroy someone.

It’s me saying that I benefit greatly from generics and more robust error handling, and Go is not likely to have those in the capacity that I want because the whole motivation behind the language was to avoid those things at all costs.

None of which takes away from Pike’s career in its entirety.


Nah man, you are not below me. And those kind of comparisons are ridiculous in any case, which is why I reject the content and tone of Pike's quote there and also many of the value judgements about programmer's 'smarts" that seem to have gone into the development of Go itself. It's that kind of attitude that turns me off entirely (also Google's ridiculous interview process but that's another story).

I'm not sure if Pike himself holds these opinions, or if that quote was just a slip, but it's not nice. TLDR Pike is a 'great' man, with smarts well beyond me, but that's not of a lot of relevance to the code that we (code mechanics / producers) have to write every day, and I found Go tiring and insulting to work with.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: