3 ms·
If I can use GC, why would I pick go over any of the other compiles-to-native languages with vastly friendlier type systems and language features? Rust, D, Hask
by wyager 10y ago
If I can use GC, why would I pick go over any of the other compiles-to-native languages with vastly friendlier type systems and language features? Rust, D, Haskell, etc. all offer similar performance profiles and are much nicer for the programmer.
- geodel 10y agoMost likely you wouldn't but many seems to prefer it over Rust/D/Haskell.
- mseepgood 10y ago"vastly friendlier type systems"? The type systems of all of these languages are more "bondage & discipline" than Go's. Stricter, more complex.
- wyager 10y agoIf they're stricter, it's only because they rule out more kinds of incorrect behavior. Go's type system is actually strict in a useless way, because it doesn't allow you to write correct parametric code (for example, sorting generic slices).
- stcredzero 10y agoIf they're stricter, it's only because they rule out more kinds of incorrect behavior. Sounds pretty bondage & discipline to me.
- wyager 10y agoWell then bust out the gimp suit, because I want my program to run correctly.
- stcredzero 10y agoI think that could also improve morale in your office. Might be worth your while giving it a try!
- catnaroek 10y ago> Stricter, That's exactly what a helpful language does: (0) Define a region in the design space that contains the program you want. (1) Conveniently tell you when you have accidentally stepped outside of this region. > more complex. How are you measuring this? I know of two good measures, and neither favors Go: (0) The size of a formal semantics. Go's particular feature set suggests looking at Featherweight Java (a subset of pre-generics Java specifically designed to be amenable to formalization), and, well, FJ's ratio of static guarantees to language size is very low compared to most typed lambda calculi (on which ML and Haskell are based). (1) The number of special cases in the language's design. Here Go fails miserably, due to the sheer number of built-in types and functions that require hardcoded support.
- pjmlp 10y agoMe too, however I do see Go as having a sweet spot for those that don't want to move beyond C, but can accept having a GC around and more type safety. For everyone else, there are better options.