> The mixed capitalizing based on function privacy, to me, is awful
Awful compared to ... what? `private` and `public` keywords? Ugly hacks like pythons `_` and `__`?
> it just feels very hacked together
> the wonky generics
What exactly about the generics is "wonky"? "Wonky" is not a term defined in any programming textbook I ever read. And languages are not designed on feelings, especially when the design goal is to be as pragmatic as possible, as is the case in Go.
And btw. 99% of the time tuples are used, it's as a stand-in for multiple-returns. E.g. Python does that. Go simply has...multiple returns.
> and enums,
Outside of language-enthusiasm with matching and whatnot (which more often than not is used because it looks cool rather than being useful), the most common (and again, 99%) use of enums, is to give names to magic values. Go has that covered:
type Color string
const (
RED Color = iota
GREEN
BLUE
)
> the bolted on module system
Pray tell what exactly is "bolted on" about modules? They are simply an extension of the import system, nothing more, nothing less.
> the annoying error handling
The "annoying" thing about it is that it's explicit and forced. Both of which are positives as far as I'm concerned, because I AM FREKKIN DONE with shitty 10-mile stacktraces because some joksters library threw an "exception" 400 layers down in some sub-sub-sub-sub transient dependency lib.
Awful compared to ... what? `private` and `public` keywords? Ugly hacks like pythons `_` and `__`?
> it just feels very hacked together
> the wonky generics
What exactly about the generics is "wonky"? "Wonky" is not a term defined in any programming textbook I ever read. And languages are not designed on feelings, especially when the design goal is to be as pragmatic as possible, as is the case in Go.
> the lack of useful types like tuples and enums,
Need a tuple? Use an array and don't change it.
And btw. 99% of the time tuples are used, it's as a stand-in for multiple-returns. E.g. Python does that. Go simply has...multiple returns.> and enums,
Outside of language-enthusiasm with matching and whatnot (which more often than not is used because it looks cool rather than being useful), the most common (and again, 99%) use of enums, is to give names to magic values. Go has that covered:
> the bolted on module systemPray tell what exactly is "bolted on" about modules? They are simply an extension of the import system, nothing more, nothing less.
> the annoying error handling
The "annoying" thing about it is that it's explicit and forced. Both of which are positives as far as I'm concerned, because I AM FREKKIN DONE with shitty 10-mile stacktraces because some joksters library threw an "exception" 400 layers down in some sub-sub-sub-sub transient dependency lib.