How’s your experience with Golang so far? I’ve tried a few things in it but the error handling kind of skeeves me out.
I'm not the person you are asking, but I spent this past December writing a tiny project (~1000 deployed loc), and my unwarranted opinion is that Go is a decent language to teach people the basics of software engineering: writing software, using source control, versioning, testing, coding conventions, simple debugging, deployments, and so forth. It has a rudimentary syntax and a basic type system, and with this it tries to be uniform with its interfaces (e.g.
len()
for the length of containers,
for
being the only looping syntax, etc.) There's not much you need to learn about any aspect of it deeply in order to get okay working code, and that is by design. That being said, there were issues I had with the language that I don't see mentioned often elsewhere: forking existing projects and the community.
Beside my tiny project, I also attempted to fork a project to make my own changes and host on another non-github repository. I cloned it locally and attempted to update the go.mod file using the officially recommended way:
go mod edit -replace
This ended up with an error about module declares path as "x" but was required as "y" (stack overflow thread:
https://archive.is/jgaE6), and after trying everything in that thread, I still couldn't resolve the issue. (I of course looked elsewhere, but pretty much every answer I found was the same as that thread). In the end I got it to work by doing a find and replace of the old URL over the entire project. I ended up trying to fork a different project at a later point and that had no issue when using the replace directive, so it might have been an issue with the first project or me, but the experience left a bad taste in my mouth.
As for the community, it seems like its made up of people who don't value their time. By this I mean people pride themselves on either reinventing the wheel for everything; or if you do want to use existing software the developers think that you should debug their code to learn how to integrate said software. I encourage people to RTFM when trying to learn something, but for what I was trying to do, the projects I saw felt that autogenerated docstrings on functions were the best documentation. Overall it felt like I was dealing with the same pain points I have when dealing with proprietary software, only I wasn't being paid to do it in Golang's case.
So overall I'd recommend the language if you are learning to develop software or if it's for paid work; but if it's for a hobby project, then think deeply about what you are expecting to learn from it, and you will probably find the tools and ecosystem is better established elsewhere.