3 ms·
Most compiled languages have fractured build ecosystems, and may require some tricky invocation orders, external+not-included dependencies, or some funky flags
by sk0g 4y ago
Most compiled languages have fractured build ecosystems, and may require some tricky invocation orders, external+not-included dependencies, or some funky flags depending on your compiler version. Or may just not work because you have the wrong compiler, missing their preferred build scripting runtime, etc.
NPM (packages) frequently go down, doesn't resolve packages, or just does something unexpected. Java has the Gradle/Maven split, C++ has a few extra common ones - Make/CMake, Autotools, Ninja, Meson, etc. Modern C# is the one that's got a similar scene to Go from what I've seen.
Go is simple and consistent. It adheres to the Zen of Python, particularly "There should be one– and preferably only one –obvious way to do it.", better than Python itself does (IMO). You check out a repo, you run go build, and 90% of the time you have a binary. A 5 line Python script could automate this process, good luck doing the same with Java or C++.
- shirogane86x 4y agoThat is 100% fair. I mostly develop on .NET+TS at $dayjob so I never really have experienced particular problems with nuget, and I've had the luck of never having an npm package go down on me either - so I just never really experienced the problems that people are frustrated about.
- noodleman 4y agoThis is really the selling point of Go for me that makes up for it's shortcomings. I've probably lost years off my life thanks to gradle.
- sk0g 4y agoWhen your build scripts require the power of a full-blown programming language, I do have to wonder what catastrophe lead to such complications! I'm sure there's a reason for it and all, but it's just not something I will deal with unless I am being paid (handsomely) to do so.
- adamgordonbell 4y agoI wrote a post about this topic. Consistent tooling is very valuable. https://earthly.dev/blog/programming-language-improvements/ https://earthly.dev/blog/programming-language-improvements/