4 ms·
I've been writing Go professionally, full-time, for the past five years. I'm a polyglot, so before Go, I loved exploring every new language I could get my hand
by chimeracoder 9y ago
I've been writing Go professionally, full-time, for the past five years.
I'm a polyglot, so before Go, I loved exploring every new language I could get my hands on[0]. I still do, for fun, but Go is the one language that has kept me hooked all this time. It's not for any single feature, or for the community (though that's a great part of it). It's because it's the only language which I feel gets out of the way for me and lets me write powerful, robust, and maintainable software quickly without having to think or struggle against the tools.
For me, Go is like trying to do surgery wearing latex surgical gloves, instead of wearing thick woolen mittens.
[0] Seriously: if you can name it, and there's a working Linux x86_64 compiler/interpreter for it, I've probably tried it.
- smnplk 9y agoOut of curiosity, what is your take on clojure then ?
- chimeracoder 9y ago> Out of curiosity, what is your take on clojure then ? I have a lot of respect for Clojure, though I don't have much of a use case for it. At the time I tried it, I was annoyed its semantics for '() and nil - they're sort of a hybrid between how Common Lisp does it and how Java does it. Which makes sense - the Common Lisp approach would be a nightmare to implement on top of the JVM while maintaining interoperability, but as someone whose primary language before that was Lisp, it was a bit weird to try and get used to. I love functional programming - before Go, Lisp did pay a number of my bills, after all! - but to me it feels more like art than work. It's fun to figure out the most elegant, Lisp-like way to approach a problem. It's fun to convert an arbitrary task into a language-recognition problem and then write the compiler to recognize that language as the implementation to the solution. I get the same feeling from it that I do when I finish a drawing and stand back to look at it. I don't want to touch it, lest I smudge it - I just want to sit back and appreciate the finished result. But it's a completely different kind of satisfaction that I get from writing Go - there, the fun is in how quickly I can solve a problem, and how confident I am in the reliability, robustness, and long-term maintainability of my initial effort. That's where Go really shines for me, and it's not like the joy of having created an beautiful work of art. It's more like the satisfaction of having built a solid American Colonial house for yourself to live in. I like them both, but for my professional work, I'll choose Go every time.
- deleted 9y ago[deleted]
- sbov 9y agoSo would you say this is more about your mindset when programming in LISPs? I like to use Clojure for my side projects and don't seem to feel the same way about my programs as you do. Even as a long time primarily imperative/OO programmer (but who has tried pretty much every language out there, too), Clojure actually feels like one of the most pragmatic languages I've used.
- smnplk 9y agoIt's the same with me. I didn't have any lisp experience before learning Clojure. I see it as very pragmatic language, the kind that lets you get shit done, it doesn't get in your way. But that said, I can understand why parent compares lisp to art. I would say functional design is art, because you need to put in a lot of effort to learn it.
- vikiomega9 9y agoOn the same line, thoughts on Kotlin?
- dom96 9y agoIn the vein of the other questions. What are your thoughts on Nim? I'm one of its core developers and always like to hear what people think of it, in this case especially since I view it as a direct competitor to Go.
- erikbye 9y agoI've toyed with Go for a while, but it has not yet become my main language. Can you talk a bit about what you use it for, what your tooling is, and if you've discovered some great go-to libraries and supporting tools?
- peoplewindow 9y agoWhat exactly makes Go more powerful or better tooled than Java?