Ehhh, golang’s pretty down there for me too. Sure, you have types, but the way you “implement” an interface is the sussiest thing I’ve seen in most well-known programming languages. Not to mention all the foot guns (pointers for nullables is a common one, and oh, if you forgot that a function returns an error, and you called it for its effects, you’ve just built a possibly very silent bomb) you end up building into your programs. I use in prod, and I get scared.
I’m pretty new to it. The types and struct stuff are a bit hand-wavey, but I like how quickly I was able to ramp into it. I built a simple API with it in a few hours.
2 things I like about golang is just 1) the ease of getting someone to start work, and 2) goroutines. I have no complains about goroutines cause I’ve barely used it, and when I do it’s been fine. The first point though, I’d say the simplicity of the language is a double-edged sword — it’s easy to learn with little surface to cover, but it forces you to implement a lot of basic machinery you find in other languages by yourself, and so your codebase can get clunky to read really quickly, especially as your project grows.
Not trying to dissuade you from learning golang tho. I think it’s a good language to learn and use, especially for small simple programs, but it’s not the great language many try to say it is. It’s… fine. There are many reasons why it grinds my gears, but I’m still fine with using it and maintaining it for prod.
“Clunky” - this hit it on the head for me. When I was initially getting started, some of the setup and boilerplate felt awkward. It feels very barebones, which I can see the benefit if you’re not a fan of opinionated, but as a project grows, it seems like a dark corner that technical debt and spaghetti code would amass.
I write JS/TS daily and I agree with this lol.
I’ve offset it with Golang lately.
Ehhh, golang’s pretty down there for me too. Sure, you have types, but the way you “implement” an interface is the sussiest thing I’ve seen in most well-known programming languages. Not to mention all the foot guns (pointers for nullables is a common one, and oh, if you forgot that a function returns an error, and you called it for its effects, you’ve just built a possibly very silent bomb) you end up building into your programs. I use in prod, and I get scared.
I’m pretty new to it. The types and struct stuff are a bit hand-wavey, but I like how quickly I was able to ramp into it. I built a simple API with it in a few hours.
2 things I like about golang is just 1) the ease of getting someone to start work, and 2) goroutines. I have no complains about goroutines cause I’ve barely used it, and when I do it’s been fine. The first point though, I’d say the simplicity of the language is a double-edged sword — it’s easy to learn with little surface to cover, but it forces you to implement a lot of basic machinery you find in other languages by yourself, and so your codebase can get clunky to read really quickly, especially as your project grows.
Not trying to dissuade you from learning golang tho. I think it’s a good language to learn and use, especially for small simple programs, but it’s not the great language many try to say it is. It’s… fine. There are many reasons why it grinds my gears, but I’m still fine with using it and maintaining it for prod.
“Clunky” - this hit it on the head for me. When I was initially getting started, some of the setup and boilerplate felt awkward. It feels very barebones, which I can see the benefit if you’re not a fan of opinionated, but as a project grows, it seems like a dark corner that technical debt and spaghetti code would amass.
Go has the pitfalls you’d expect from an abused configuration language, not from a modern statically typed language.