5 ms·
> It just genuinely felt like the Go language designers didn’t want to engage with any of the ideas coming from functional programming. You'd be right. "The k
by olivia-banks 1y ago
> It just genuinely felt like the Go language designers didn’t want to engage with any of the ideas coming from functional programming.
You'd be right.
"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"
"It must be familiar, roughly C-like. Programmers working at Google are early in their careers and are most familiar with procedural languages, particularly from the C family. The need to get programmers productive quickly in a new language means that the language cannot be too radical. – Rob Pike 2"
Talking as someone who wrote OCaml at work for a while, the benefits of functional programming and the type guarantees that it's ilk provides cannot be understated; you only start to reach them, however, once most developers have shifted their way of thinking rather extremely, which is a time cost that that designers of Go did not want new Googlers to pay.
- VirusNewbie 1y agoYou would be surprised how many Googlers think the Go team is making bad decision after bad decision.
- olivia-banks 1y agoHow so? I’m not that familiar with Go anymore.
- hyperhopper 1y agoSearch any Go codebase for err != nil, for starters.
- olivia-banks 1y agoWell, sure, but this is a problem nearly as old as Go itself. I thought they were referring to larger more recent things, like how generics work, or something to that effect.
- galvatron9k 1y ago> is a problem nearly as old as Go itself It's as old as C. C and Go are the only two significant languages which end up constantly checking for errors like this.
- deleted 1y ago[deleted]
- keyle 1y agoNot just Googlers. There is a certain pragmatism and then there is being stubborn.
- boppo1 1y agoI am exactly the type of novice programmer described in the quotes. >have shifted their way of thinking rather extremely What could I read to shift my way of thinking? The signals & threads episode about OCaml strongly piqued my interest, and not because I have any JS delusions (they would never, lol).
- olivia-banks 1y agoFunctional programming is a different way of thinking about solving problems. People say it's about thinking about "what you're trying to compute" versus "how you're computing it," but quite frankly that never made sense to me. I prefer to think about it in terms of thinking about relationships (FP) versus thinking about steps over time (procedural). This, at least for me, brings the act of writing a specific piece of code more inline with how I think about the system as a whole. I spend less energy worrying about the current state of the world and more about composing small, predictable operations on relationships. As for what you can read, I find it's just best to get going with something like OCaml or F# and write something that can take advantage of that paradigm in a relatively straightforward way, like a compiler or something else with a lot of graph operations. You'll learn pretty quickly what the language wants you to do.