3 ms·
When I was a Java programmer I used to build my own abstractions. I can understand the complaint > ...if there’s one complaint I’ve heard consistently from > m
by noelwelsh 8y ago
When I was a Java programmer I used to build my own abstractions. I can understand the complaint
> ...if there’s one complaint I’ve heard consistently from
> my fellow developers over the years, it’s that they can’t
> understand my code until they also understand the set of
> abstractions I’ve introduced"
Now I mostly use Scala in an FP style I find I reuse abstractions. The abstraction I want almost always exists in a library. Monads, applicatives, monoids, etc. actually work for code reuse, and this makes it much easier to read code. When I look at a code base such as http4s (https://http4s.org https://http4s.org) I find I can read it without much difficulty even though I'm not familiar with the code.
So my contention is you can reduce expressivity to make code easier to read, or you can increase expressivity so that truly reusable abstractions can be created. (You basically need higher-kinded types in addition to the usual FP abstractions.)
- dionian 8y agoyeah, it's not "either C# with a better language and less ecosystem, or java"... you can use scala and get something more powerful than C# and still get the java ecosystem. I suspect I will be using scala as my main language for some time to come