3 ms·
My experience with reading Go is that the language not giving tools to build good abstractions has failed to stop developers from trying to do so anyway. There'
by plorkyeran 3y ago
My experience with reading Go is that the language not giving tools to build good abstractions has failed to stop developers from trying to do so anyway. There's never a line of code where I just plain don't know what's even going on syntactically as some languages can have, but understanding what it's actually doing can still require hopping through several files.
- valenterry 3y agoIn short: a simple (programming) language does means that every small part/line is simple. But it doesn't mean that the combination of all parts/lines is simple. Rather the opposite.
- cryptos 3y agoVery true! I think a lot of the accidental complexity of early Java systems were rooted in the not so powerful language. If the language is too powerful (like Scala 2) developers do insane things with it. If the language is not powerful enough, developers create their own helpers and tricks everywhere and have to write a lot of additional code to do so. Just compare Java streams with how collections are handled in Go and scratch your head how someone can come up with such a restricted language in this century.
- groestl 3y ago> and have to write a lot of additional code to do so. And most importantly: you have to read a lot of code like this, and understand it's assumptions, failure modes, runtime behavior and bugs, which are different every time. Instead of just reading "ConcurrentHashMap", and be done with your day.