<story><title>Brooks, Wirth and Go</title><url>https://www.fredrikholmqvist.com/posts/brooks-wirth-go/</url></story><parent_chain><item><author>dgb23</author><text>I really like Go and respect the authors and maintainers of the language. It is well designed and achieves its goals exceptionally well. The author of this article is right: Give it a Go! You&amp;#x27;ll learn it quickly and will appreciate having learned it, there are many, very considerate design decisions to discover, ranging from language implementation, tooling and the standard library.&lt;p&gt;I&amp;#x27;m sometimes jealous of Go&amp;#x27;s users, the language is very readable, light and refreshingly straight forward.&lt;p&gt;That said, I cannot bring myself to use it (anymore).&lt;p&gt;The language doesn&amp;#x27;t scale with my ability and in some sense seems almost patronizing. I&amp;#x27;m not a particularly good programmer, but I&amp;#x27;m experienced enough that I feel held back by languages like Go. When you are used to more power, expressiveness and clarity, then you just miss it at every step of the way.&lt;p&gt;On one hand the language doesn&amp;#x27;t let me encode higher level thinking directly (relational, functional, domain specific...) but I have to act as a compiler. And vice versa it doesn&amp;#x27;t expose the low level control that one would want to squeeze out performance and minimize resource usage either.&lt;p&gt;Again, Go still feels attractive in some sense, and I wish I had a reason to use it more, but I can&amp;#x27;t find it.</text></item></parent_chain><comment><author>t8sr</author><text>I think not letting you encode relational, functional and domain-specific higher level thinking is by design.&lt;p&gt;I review a lot of code, and have been programming for 20 years. I think most programmers go through a phase, after 2-5 years of experience, where they get really into higher-level thinking. Everything is written according to a mantra like TTD, functional design, or everything-is-an-object, and they spend most of their complexity budget on abstractions.&lt;p&gt;The code people write in that stage of their careers looks to them like an improvement over the simpler concepts they started with, it ends up being so much technical debt 12 months later, because almost nobody is good at predicting which higher-level concepts you are going to need, and by the time you realize you were wrong, it’s too expensive to remove them.&lt;p&gt;It’s hard for a language to encourage this kind of you-ain’t-gonna-need-it thinking without seeming patronizing, but I promise you that the next 10 years of your career will change your mind.&lt;p&gt;(I realize I also sound patronizing and I’m sorry: I typed this on a phone, so left out some caveats, such as I don’t know you and your background.)</text></comment>
<story><title>Brooks, Wirth and Go</title><url>https://www.fredrikholmqvist.com/posts/brooks-wirth-go/</url></story><parent_chain><item><author>dgb23</author><text>I really like Go and respect the authors and maintainers of the language. It is well designed and achieves its goals exceptionally well. The author of this article is right: Give it a Go! You&amp;#x27;ll learn it quickly and will appreciate having learned it, there are many, very considerate design decisions to discover, ranging from language implementation, tooling and the standard library.&lt;p&gt;I&amp;#x27;m sometimes jealous of Go&amp;#x27;s users, the language is very readable, light and refreshingly straight forward.&lt;p&gt;That said, I cannot bring myself to use it (anymore).&lt;p&gt;The language doesn&amp;#x27;t scale with my ability and in some sense seems almost patronizing. I&amp;#x27;m not a particularly good programmer, but I&amp;#x27;m experienced enough that I feel held back by languages like Go. When you are used to more power, expressiveness and clarity, then you just miss it at every step of the way.&lt;p&gt;On one hand the language doesn&amp;#x27;t let me encode higher level thinking directly (relational, functional, domain specific...) but I have to act as a compiler. And vice versa it doesn&amp;#x27;t expose the low level control that one would want to squeeze out performance and minimize resource usage either.&lt;p&gt;Again, Go still feels attractive in some sense, and I wish I had a reason to use it more, but I can&amp;#x27;t find it.</text></item></parent_chain><comment><author>kubb</author><text>Many people love it on HN, but for me coding in Go is a chore that makes me disinterested in my job. After 3 years of working with it, I dispute the claims about readability and simplicity. In Go, you solve problems by outputting inhuman amounts of code. It can feel productive, but most of it is just noise.&lt;p&gt;Of course just because I&amp;#x27;m not well suited for it doesn&amp;#x27;t mean it&amp;#x27;s not for others. But there&amp;#x27;s a lot that we&amp;#x27;ve collectively learned about programming, that&amp;#x27;s not acknowledged in Go&amp;#x27;s design.&lt;p&gt;You can start coding in it pretty fast, that much is true.</text></comment>