Replying to Avatar Anthony Accioly

I think the underlying reasoning is Scala trying very hard to fit into the Java/JVM ecosystem, i.e., Maven Central and JAR files are the way of the land.

Also... Scala compilation times. Things are improving, but start compiling too many dependencies in your average enterprise project, and we’ll be right back to this: https://3d.xkcd.com/303/

To be fair, things aren't anywhere as bad in other JVM languages like Clojure and Kotlin (despite not exactly loving Gradle as a build tool either). Scala problem was mostly self-inflicted when the community embraced sbt.

Also, sharing and adding the #scala hashtag so I don’t feel too hypocritical after all my pep talks about the discoverability of niche content on Anostr. 🤣

I just realized that JavaScript suffers from this same stupid problem: instead of shipping the source code they ship transpiled bundled garbagized adulterations of the code, it's the same as Java and Scala.

Reply to this note

Please Login to reply.

Discussion

how are you just realizing this now?

I would argue that the JS ecosystem is even worse. I mean... npm, do I even have to say anything? Left-pad, massive dependency trees, security issues, you name it 🤣. I know that these days the cool kids are all using Deno, but IMO you can't fix soydev culture. And it will likely get worse with "vibe coders" on Cursor, Windsurf, etc.

Honestly, you never know what you're going to get from npm. It could be a heavily transpiled, minified package that requires a source map for debugging or something a bit more normal. Often, the same package has multiple releases. And the worst part? Most people who actually need this kind of processing are already using bundlers with their own transpiling, tree shaking, minification, etc. The double pass often makes the final output bigger (and sometimes slower).

Call me a dinosaur, but overall, I'm happy with my JAR files and Maven Central (as messy as it is with dependency hell, XML verbosity, etc). I would love to see something like Go modules or Cargo built into Java, Scala and Kotlin, but I'll take the "Maven way" over npm, or, say, Python's absolute madness (conda, pip, poetry... basically anything before uv).