I have six years programming in Scala and I unfortunately agree with everything in this article. Our work experience is very similar; competing approaches/styles, poor tooling, and slow feedback cycles. The language itself is nice is many ways, but it turns out that these things are more important.
We've started using Typescript a lot for http-templating style use cases (instead of Play) and I'd lean towards Go for the pure networky stuff. Combined these give a much better experience than Scala for our types of use cases.
I was a TypeScript skeptic -- sum types >>> union types -- but I was wrong.
TypeScript is simultaneously (1) incredibly practical, (2) allows for type-level capabilities matching or exceeding Scala, (3) has excellent IDE support, (4) is explicit, and (5) related to #3 can compile sans type checking.
I don't love Node.js for server-side, but from language perspective, TypeScript really checks the boxes.
Comments
I have six years programming in Scala and I unfortunately agree with everything in this article. Our work experience is very similar; competing approaches/styles, poor tooling, and slow feedback cycles. The language itself is nice is many ways, but it turns out that these things are more important.
We've started using Typescript a lot for http-templating style use cases (instead of Play) and I'd lean towards Go for the pure networky stuff. Combined these give a much better experience than Scala for our types of use cases.
I was a TypeScript skeptic -- sum types >>> union types -- but I was wrong.
TypeScript is simultaneously (1) incredibly practical, (2) allows for type-level capabilities matching or exceeding Scala, (3) has excellent IDE support, (4) is explicit, and (5) related to #3 can compile sans type checking.
I don't love Node.js for server-side, but from language perspective, TypeScript really checks the boxes.