3 ms·
Go is type safe.
by badrequest 3y ago
Go is type safe.
- the_gipsy 3y agoThe zero-values idea, nil, reflection and stringly-typing all over stdlib and the most popular libs makes go not type safe. Were you thinking of statically typed?
- badrequest 3y agoI genuinely have no idea what you're referring to by "stringly-typing all over stdlib". I've written Go every day for the better part of a decade and used the standard library the whole time. What standard library functions require passing in the string of a type?
- the_gipsy 3y agoYou are right, stdlib doesn't have much of stringly-typing. However the core language way of dealing with enums for example is extremely weak. It's common to have a typed enum on a struct. When parsing the struct, random string (or whatever the alias is) values sneak in and the only thing you can do is validate.
- tazjin 3y agoWe're literally in the comment thread of a new stringly typed thing being introduced to the stdlib!
- drdaeman 3y agoStruct tags is the most notorious example. They’re convenient but error-prone. I think everyone who wrote a decent amount of Go had that malformed, misspelled, or misnamed (“db” vs “sql”) tag at some point.
- deleted 3y ago[deleted]
- majewsky 3y agoType safety is a spectrum, not a binary choice. Having used Go for 10 years now, next to other popular languages like JS and Python, I think it squarely falls into the "more type-safe than not" half of the spectrum. But it's definitely a positive development that, as this discussion shows, the Overton window of type safety is shifting towards the safer part of the spectrum.
- the_gipsy 3y agoThat's true. From that perspective it is safe. But from the perspective of for example Elm and Rust, I would say go ends up in the other half of the spectrum - but still close to the middle.