3 ms·
Kudos to the author for calling out Haskell's String—but the problems run deeper than defaults. For example: if you're not aware of strictness, you can easily w
by riwsky 5y ago
Kudos to the author for calling out Haskell's String—but the problems run deeper than defaults. For example: if you're not aware of strictness, you can easily wring poor performance out of the "good" types like Text and ByteString. And even in cases where you want laziness—streaming IO, parsing, and so on—you still can't use those, and need a stream processing library like conduit to handle resources and errors reasonably.
In comparison: does lack of monads, operator overloading, and so on make go simpler than Haskell? Sure—but, having written quite a bit of both: it really helps that go knocked this shit outta the park with their string type and related designs ([]byte, io.Reader/Writer…).
(Though, in Haskell's defense: go's designers include the inventors of the now-ubiquitous utf8, and Haskell…predates utf8's existence by 2 years.)