Actually I think that Go is exactly lacking lots of paradigms and is only good enough for people looking for a better C, as it lacks many of the abstractions from mainstream languages.
But if you are conformable with it, by all means use it.
- generics
- enumerations (the iota thing feels like a poor man's enums)
- operators as method names
- lack of exceptions leads sometimes to ugly defer/recover patterns
- some data types are special like maps, as you cannot implement similar types yourself
Comments
Actually I think that Go is exactly lacking lots of paradigms and is only good enough for people looking for a better C, as it lacks many of the abstractions from mainstream languages.
But if you are conformable with it, by all means use it.
What abstractions in particular? I'm interested from the perspective of resolving any issues in that space.
The following concepts are lacking:
- generics - enumerations (the iota thing feels like a poor man's enums) - operators as method names - lack of exceptions leads sometimes to ugly defer/recover patterns - some data types are special like maps, as you cannot implement similar types yourself