3 ms·
Could you elaborate on what power it give? After working on several projects in a golang monorepo, it's exceedingly weak at modeling, which results in verbose c
by gher-shyu3i 5y ago
Could you elaborate on what power it give? After working on several projects in a golang monorepo, it's exceedingly weak at modeling, which results in verbose code that is also thin - meaning that it takes a lot to write to say a few things. You can see the for loops and if conditions in front of you, but it's difficult to extract the underlying logic its trying to convey.
The code bases were a complete mess to work on, and even new projects are suffering because of it - no lessons learned can fix it because the language is so weak.
- gct 5y agoI said it _doesn't_ give you enough power to justify the baggage, apologies if I wasn't clear. Iteration/modeling is one of my gripes in fact. The only way to copy a map is a for loop, really?
- gher-shyu3i 5y agoSorry about that. You wrote that the power it gives you does not justify the mess of the language. I agree that the language is messy, but that it also lacks any power whatsoever worth speaking about :)
- DangitBobby 5y agoThis isn't really fair. Despite requiring overly verbose code with lots of repetition and boilerplate, it is still quite powerful.
- gher-shyu3i 5y agoCould you list some of its powerful features? The only thing that gets a passing mention is goroutines, and even they are not implemented in a great manner.
- DangitBobby 5y agoPortable binaries, good cross-compilation support, easy to make shared libraries for use in, say, Python code for easy performance gains, goroutines and channels (they are a mixed bag). Apart from these, the language does make it easy for novices to write performant one-offs similar to how Python enables them to write slower one-offs. I personally hate writing in it, but I will when I think it makes my life easier.
- gher-shyu3i 5y ago> Portable binaries, good cross-compilation support, Nothing to do with the language. Other platforms provide the same features. > goroutines and channels Extremely verbose and also error prone. C#'s Tasks are much better abstractions for example. > the language does make it easy for novices to write performant one-offs Nothing to do with the language itself, it's just that it's compiled not interpreted like Python.
- DangitBobby 5y agoTooling is an important part of a language.
- gher-shyu3i 5y agoIt is, and Java/C# and gang have superior tooling.
- baby 5y agoEngineers who complain about that are usually the ones who want to write extremely clever solutions that nobody will be able to understand nor maintain after they have left.
- omginternets 5y ago>You can see the for loops and if conditions in front of you, but it's difficult to extract the underlying logic its trying to convey. That's what abstraction is for. Do you not use functions or something? Do you not group related ones in packages, and pay attention to how they model your domain? What you're pointing out seems more like bad programming practice than a bad language. Even PHP doesn't have this problem.