3 ms·
My initial impressions back in 2013 when I started using Go was that it's development environment was annoyingly opinionated (the GOPROJECT env var crap, which
by koffiezet 4y ago
My initial impressions back in 2013 when I started using Go was that it's development environment was annoyingly opinionated (the GOPROJECT env var crap, which is now gone). I was mainly using C/C++ at the time and for smaller tools python. Go with it's static binaries however looked like a very interesting python alternative, so I tried it anyway, and found a language that was very easy to dive into. Took me only a few days to really feel comfortable with it, which surprised me a bit.
My main take-aways, other than what is mentioned in the article:
* it was a lot easier and even a natural thing to dive into other people's and even the stdlib's code. I had been coding in C/C++ and the only time I did that was when I was tracking bugs. Now I just do it to figure out how things are done or even out of curiosity.
* libraries are source-code only. This is great for developers, and is a large reason for the previous point, but some businesses are hesitant towards this. One thing to always keep in mind here however is licensing.
* while not actively encouraged, the way you write Go pushes you towards writing reusable libraries, with just a small wrapper frontend. You see this in many larger projects you can easily integrate many in your own application.
* the standard library is fantastic, and contains a lot more than many expect, but clearly shows what the target audience is: operations and backend development.
* dependency management used to be garbage, this has massively improved. Not perfect, but better.
* Cross-compiling is a breeze. Coming from C/C++, this blew me away. Even when using CGo, which complicates things a bit, there is pretty good tooling around this.
* It's very opinionated, but most of the times, in my opinion, right.
It ended up replacing pretty much all my need for C/C++ code, except for embedded Arduino-like hobby stuff, and I haven't looked back. The main valid thing I've seen people complain about is the lack of a decent multi-platform GUI library, which I don't need, and is always a mess anyway. Web-frontends are a thing though, and goes hand in hand with Go being pretty damn good at backends and APIs.
- justin66 4y ago> The main valid thing I've seen people complain about is the lack of a decent multi-platform GUI library Never mind decent or multi-platform, is there any built in facility for developing a GUI?
- stirfish 4y agoDo go:embed and html count? I've used that a few times
- yencabulator 4y ago> the GOPROJECT env var crap, which is now gone The Go version control history has never contained the word GOPROJECT. Maybe you meant GOPATH?