The more I learn/use/etc about go, the more I despise it.
Don’t get me wrong, it’s nice to be able to churn out a few static binaries here and there so I don’t have to install/manage a runtime environment on an arbitrary machine.
However, here’s a list of things I always miss when using go:
List comprehensions (mentioned above)
A halfway decent dependency manager (npm is what I attribute a lot of JavaScript’s popularity to, despite npm being a nightmare a lot of times.)
assertj
union/sum types
not having nil that is all types at once
monads/applicative functions
true tuple return values
not having to worry about pointers (seriously, why allow pointers when I can’t do math with them?)
being able to write fun instead of func
a static type system that can figure everything out (seriously, use a language that goes full Hindley-Millner, you will experience the joy of programming like you’re using a dynamic language but with super strict typing)
You might want to take a look at crystal-lang.org – to totally oversimplify it, it's a bit like "the best stuff taken from Ruby and Go". It might not fit all your points, but might be interesting enough.
Go actually does a lot of the stuff that you mention here. Maybe not to your specific liking, but it definitely does. Your issues with the language are definitely valid. Mainly because all of programming is opinionated. Don't use Go if you don't like it. It probably doesn't do everything you need it to do. In cases where Go is useful, it is usually the superior option. Totally understand your concerns.
"Don't use Go if you don't like it." HAH! Good one. Some of us don't get to pick our toolchain front to back. (To my teammate's credit, I'd probably just choose Haskell front-to-back, which would be unreadable to anyone but mathematicians.)
The more I learn/use/etc about go, the more I despise it.
Don’t get me wrong, it’s nice to be able to churn out a few static binaries here and there so I don’t have to install/manage a runtime environment on an arbitrary machine.
However, here’s a list of things I always miss when using go:
You might want to take a look at crystal-lang.org – to totally oversimplify it, it's a bit like "the best stuff taken from Ruby and Go". It might not fit all your points, but might be interesting enough.
Go actually does a lot of the stuff that you mention here. Maybe not to your specific liking, but it definitely does. Your issues with the language are definitely valid. Mainly because all of programming is opinionated. Don't use Go if you don't like it. It probably doesn't do everything you need it to do. In cases where Go is useful, it is usually the superior option. Totally understand your concerns.
"Don't use Go if you don't like it." HAH! Good one. Some of us don't get to pick our toolchain front to back. (To my teammate's credit, I'd probably just choose Haskell front-to-back, which would be unreadable to anyone but mathematicians.)
Hahaha. Fair point, fair point. We don’t always have that luxury. 😅
Imagine writing
fn
instead offun
😉