4
neeno
4y

I've been using go for two days and I'm already pissed at it. Don't get me wrong, I like the language itself, I love the simplicity, the tooling and frameworks are the problem. Like, why does everything have to be so hard?

Why do I have to spend around 4 hours in total just to configure a fucking linter?

Why does everything have to live inside the fucking GOPATH?

Why the fuck can't I put a src/ folder in my project so I don't mix code with config files, docker files, etc?

Why the hell does documentation for frameworks/libraries/tools suck so much? Looking at you Gin and Gorm.

Why can't gin-swagger just find out what routes I have?

I must be either dumb or chosen the wrong frameworks and libraries, but the "development experience" I'm having sucks. Nothing works first try and documentation is shit and vague.

I want to like the language, but I can't, at least not if it's always going to be shit like this. Does it get better? Am I just a noob? Or should I just jump ship and look for something else?

Comments
  • 0
    Never used go but damn bad documentation ruins everything, especially when it comes to things like setting up a linter, which I’ve never done before but shouldn’t that be done automatically for the developer so he can at least begin programming? I’ll stay away from this language (at least for now)
  • 2
    Not everything has to live inside GOPATH. Two words: Go modules

    There's gofmt in built for formatting and golanci-lint for other linting and you don't need to configure them at all. It's just a one command each you need run(if you're using vscode or goland then that's also taken care of). What linter are you using that you had to spend four hours configuring.
  • 0
    @darkLord go modules solved that problem, thanks! As for linting, there isn't much to configure, I just couldn't get golangci-lint to work. I had a src folder and for some reason I couldn't specify that I wanted it to run for the files inside that src folder, the path argument didn't seem to work as I expected it to. Another problem was making it work with pre-commit, eventually it worked (once I got rid of the src folder), but still, it shouldn't have been so hard :/

    I find go tooling very inflexible.
  • 0
    @neeno it should have worked with src folder too without any configs as far I'm aware.

    I'd agree that go tooling is not flexible and to most extent it's by design. Go philosophy is to only one way to do things to avoid fragmentatiolike other languages for example C++.

    But most of it is documented very well(from my experience). If you have gone through go lang tour and golangbyexample then you should be familiar with many of Go's restrictions and caveats
Add Comment