Hacker News new | ask | show | jobs
by zumu 1222 days ago
I've just recently tried to pick up Scala, by going through the excellent Hands-on Programming with Scala so I can provide a newcomer's perspective.

Metals is great if a bit buggy. Being able to just install a VSCode plugin and start hacking is huge. If you want to win new programmer mind share, improving Metals (or some other VSCode language server) is the way. Scalafmt is nice to see coming from Java.

The build tooling situation is awkward. Mill looks much more modern than sbt but clearly isn't the de facto choice. The general community displease about sbt further adds to the unease. The main take away here should be the onboarding experience to the build ecosystem does not instill confidence.

The difference between ZIO/Typelevel stuff is not immediately clear. Why are there two functional programming ecosystems? I guess it's a convention vs configuration debate? It seems like the two ecosystems should overlap then, but fair enough.

A single language level package repo would be cool for discoverability purposes, but I'm also used to the multi-repository thing. A directory or something to make packages more discoverable might be a good half-step.

Ammonite is fantastic, but along with Metals and all the other tooling I've used, it works better under Scala 2. Scala 3 is still kind of weird.

The biggest things to me would improve Metals, improve onboarding for build system, improve Scala 3 support for tooling all around, improve discoverability of defacto best/most active packages.

3 comments

> Why are there two functional programming ecosystems?

Reading the politics in Scala was a guilty pleasure of mine.

I think these two discussions should give a clear enough picture.

https://www.reddit.com/r/scala/comments/9a11p1/newbie_wonder...

https://www.reddit.com/r/scala/comments/qweo20/a_statement_a...

I'm not sure if I'm enjoying this, but there's certainly a lot of passionate content out there!
The difference between monofunctor and bifunctor is definitely clear.
Sadly, given the behaviour of Typelevel as an organization (leftwing political activism, targeting rivals with cancellation etc), it seems vital that there’s an alternative.

I invested a lot of effort in implementing systems using Typelevel libraries (which are great, by the way), but I feel increasingly nervous about wedding myself to this side of the ecosystem.

I attended the Functional Scala conference in December (organized by De Goes and friends). It was invigorating and demonstrated that there’s momentum, professionalism and a warm community in the ZIO side of the ecosystem.