| 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. |
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...