WelcomeUser Guide
ToSPrivacyCanary
DonateBugsLicense

©2024 Poal.co

246

Just like exactly every other thing google has ever produced (such as dart, flutter) golang sucks.

Reasons:

  • datetime formatting - most retarded method I've ever seen
  • pointers - mixes two completely separate concepts together namely making a variable nullable and pass-by-ref as optimization these two having nothing to do with each other
  • no constructors - no safety. all fields are in practise optional. custom make functions can by bypassed. you'll end up with objects risking having not be fully initialized.
  • no optional arguments, no default arguments
  • no labeling of function parameters when calling the function - you can use structs but then you've turned every single argument into an optional argument
  • no true enums
  • go test output sucks (github.com) - just show me what tests failed ffs
  • a hello world program in golang compiled into webassembly takes at least 2 megabytes - no I am not joking!
  • no throw catch exceptions - returning errors from functions is not a problem or bad, the problem is that it's the only option in golang. error handling takes up a lot of space and makes it less readable
  • no ternary operator - nested ternaries suck, true, but what looks best this s := b ? 'true' : 'false' or this var s string; if b { s = 'true' } else { s = 'false' }?

There is a longer list of dumb shit here (it's loong) https://github.com/ksimka/go-is-not-good .

Seems they all missed the datetime formatting madness so I describe it briefly:

Unlike other languages where you can format datetime like this

t := time.Now()
fmt.Println(t.Format("yyyyMMddHHmmss"))

you can't. Instead you need to do EXACTLY this

t := time.Now()
fmt.Println(t.Format("20060102150405"))

If you write 20070102150405, 20060102150406 or 20060112150405 it won't work. All magic numbers. Why? Because google are retards that's why.

https://stackoverflow.com/questions/20234104/how-to-format-current-time-using-a-yyyymmddhhmmss-format

For anyone liking golang for it's simplicity of I'll just state that nothing's stopping you from picking a more full-featured nicely designed language and limit yourself by only using a subset of it's features. If you like driving a car very slowly you don't have to drive a Trabant you can drive a faster better car by limiting yourself to just using the 1st gear.

Just like exactly every other thing google has ever produced (such as dart, flutter) golang sucks. Reasons: * datetime formatting - most retarded method I've ever seen * pointers - mixes two completely separate concepts together namely *making a variable nullable* and *pass-by-ref as optimization* these two having nothing to do with each other * no constructors - no safety. all fields are in practise optional. custom make functions can by bypassed. you'll end up with objects risking having not be fully initialized. * no optional arguments, no default arguments * no labeling of function parameters when calling the function - you can use structs but then you've turned every single argument into an optional argument * no true enums * [go test output sucks](https://github.com/golang/go/issues/13106#issuecomment-456896310) - just show me what tests failed ffs * a hello world program in golang compiled into webassembly takes at least 2 megabytes - no I am not joking! * no throw catch exceptions - returning errors from functions is not a problem or bad, the problem is that it's the only option in golang. error handling takes up a lot of space and makes it less readable * no ternary operator - nested ternaries suck, true, but what looks best this `s := b ? 'true' : 'false'` or this `var s string; if b { s = 'true' } else { s = 'false' }`? There is a longer list of dumb shit here (it's loong) https://github.com/ksimka/go-is-not-good . Seems they all missed the datetime formatting madness so I describe it briefly: Unlike other languages where you can format datetime like this ``` t := time.Now() fmt.Println(t.Format("yyyyMMddHHmmss")) ``` you can't. Instead you need to do EXACTLY this ``` t := time.Now() fmt.Println(t.Format("20060102150405")) ``` If you write 20070102150405, 20060102150406 or 20060112150405 it won't work. All magic numbers. Why? Because google are retards that's why. https://stackoverflow.com/questions/20234104/how-to-format-current-time-using-a-yyyymmddhhmmss-format For anyone liking golang for it's simplicity of I'll just state that nothing's stopping you from picking a more full-featured nicely designed language and limit yourself by only using a subset of it's features. If you like driving a car very slowly you don't have to drive a Trabant you can drive a faster better car by limiting yourself to just using the 1st gear.