2 ms·
I think he very accurately described the problem Go is trying to solve which is how do you make new grads productive? In my experience at AWS people that gradu
by shepherdjerred 4y ago
I think he very accurately described the problem Go is trying to solve which is how do you make new grads productive?
In my experience at AWS people that graduated didn't understand the languages we used. This leads to a bunch of problems, and makes it's easy to write very bad, unmaintainable code. Lots of needless class hierarchies in Java, or a misunderstanding of `this` in JavaScript. Go solves the problem perfectly.
- cmrdporcupine 4y agoNever had that experience at Google. New grads and interns always seemed sharp. Might just be the superior quality of education out of U of Waterloo, or the hiring bar at our site, or both. I enjoyed working with them. With new grads, I generally didn't have to teach coding knowledge. It was more about transmitting wisdom around best practices, estimation, architecture, etc. If anything, to me Go makes a lot of things harder that could be simpler. Lack of generics means boilerplate. Eschewing test frameworks means boilerplate. The structural typing stuff is exotic (but neat I guess) and not familiar to most new programmers. The actor / CSP type concurrency stuff is also exotic and not familiar to most new programmers. I don't see how it's a language for new programmers. It also seems very much like a rehash of the concepts they had in Limbo so I actually don't find it honest for him to be claiming it was designed for this purpose (to simplify programming). Instead it feels very much like they had a hammer in search of a nail, an itch they've been scratching since the Plan9 days. And that's fine. I just don't buy this pitch about its market niche and the stuff about the relative intelligence of programmers is gratuitous. I've seen some very smart new grads produce amazing Rust code for example.
- shepherdjerred 4y agoGo has generics now, and they're great. Anyway, the idea isn't that everyone already knows Go because it uses familiar features for concurrency, typing, etc. The idea is that Go is such a simple language, that anyone with solid CS experience can pick it up in a short amount of time and start being productive with it.