top | item 46719398

(no title)

davidee | 1 month ago

I'm partial to Scala. It's the first language I've tried to start to master. I have fallen in love with a number of libraries that dramatically expedite the kinds of projects I work on (mostly the work of Typelevel).

For whatever reason, the FP-first approach it allows me to use, matches how I like to think about problems. For comprehensions for handling complex types, easily, feel like a superpower.

When I started (and I started out of necessity, inheriting a number of old Scala 2/Play 2.x codebases), it felt like a big mistake. Weeks of banging my head around abstractions I didn't yet understand, or immutability-first approaches that were different from my (limited) python experience had me terrified. It eventually clicked. For my first year, I committed to write some Scala every single day; it was worth it.

Though to be fair, two years with the language versus ten is a big difference, so I very well could be completely wrong here. It's just like, my opinion, man.

Would I enjoy writing any language after putting in a lot of dedicated seat time? I don't know. I certainly didn't fall in love with Python the same way - but I'm willing to admit I could be doing it wrong.

That said, a number of the concerns in the post are valid. There's some spread between Scala2 and Scala3, related libraries, tooling, and a few surprising gotchas. Testing frameworks are bit fragmented with Scala2 and 3 support. However, I've not found it nearly as horrible and the joy of being able to work with what is working has outweighed the occasional "WTF" cost (often measured in "time wasted" lol).

I can't speak to the IDE issues the author is noting, I don't use IntelliJ. I've found Metals + Neovim to be truly wonderful on the whole, and it's pushed me to be even more aware of the underlying tooling I'm using.

Scala's 3 enums, opaque types (and now named tuples) are just a few changes that have made Scala 3 pretty wonderful to work with. It doesn't seem to me like Scala3's release is a failure. The real word is messier than a well-written function. ;)

One thing I've found, not at all mentioned in the article, is how welcoming the Scala community is, whether by necessity or virtue (why not both?). They're open to accepting help, willing to mentor/teach, engage in reasonably thoughtful discussion (from my experience), and seem to be willing to support each other.

Scala also pushed me to start learning Rust. Some of their shared heritage and style made it an interesting target for my desire to learn a language for a few embedded systems projects I'm working on.

So is it a dying language? I don't know if I really care. I'm incredibly grateful it exists.

PS - ScalaJS is both fun and cool. I love that someone wanted to make this a reality.

discuss

order

No comments yet.