>SBT is way, way too complex and intimidating for the needs of 95% of users who are only going to have one module, few plugins at most and a bunch of dependencies. Look at Rust Cargo for a better direction and it's fast.
Compared to maven or gradle?
Here's the minimal maven pom: https://gist.github.com/torgeir/6742158
Here's gradle:
https://gist.github.com/damienstanton/fb7c608e9883d57da34d4238b0ecaabf
Here's sbt:
https://github.com/typesafehub/activator-minimal-scala/blob/master/build.sbt
Repositories are built into the scala build. Not so with gradle. Gradle doesn't need a name or org. Maven needs, well, everything.
As for running. sbt compile. sbt test. sbt package. sbt publish. Not sure you could get a more concise basic build out of anything else.
Where things get wonky is in adding all the plugin configurations, but that's an arbitrary mess in maven and gradle, too. They're in turn better than ANT, Rake, make, npm, and poetry, but the days of sbt APL-like builds are about 9 years ago. If everyone would follow the Best practices for plugins, life would be easier. Maybe we need an sbt lintPlugin task to make people conform?
You know what sbt really needs? A better cli prompt parser, so I don't have to type ; in between commands and don't need random quotes around commands that take arguments.
>which libraries are available
Scaladex: https://index.scala-lang.org/
Shows you exactly what you asked for. Though it does need to be integrated into sbt with something like sbt search
.
>a microsite template that developers can use so that we have consistent, usable documentation across the ecosystem
Literally what scaladoc is, it comes with sbt. Although, it's better when enhanced with mdoc so that you get the standard microsite template like these. It would be nice to have an sbt serveDocs and if everyone would host their docs for external linking, but javadoc doesn't do that either.
>guides on how to use Scala
- Programming Scala, Fifth Edition, book
- Functional Programming in Scala for Mortals
- Akka in Action
- https://docs.scala-lang.org/getting-started/intellij-track/building-a-scala-project-with-intellij-and-sbt.html
- https://docs.scala-lang.org/tutorials/scala-for-java-programmers.html
- https://docs.scala-lang.org/tour/tour-of-scala.html
- https://www.coursera.org/learn/effective-scala
- Scala with Cats, book
- https://www.manning.com/books/functional-and-reactive-domain-modeling, Book
- The ZIOnomicon, Book
- Dev Inside You, YouTube vlog, discord
- All the library and language gitter and discord channels
And the readmes and tutorials written for the major libraries are some of the best, and most concise out there. Seriously, even the old stuff, like scalacheck's guide is really good. Compare that to hypothesis. The hypothesis uses readthedocs, but other than the window dressing, much better. Try to find similar concise guides for major Java projects outside of spring boot. They're all external to the projects, published on Baeldung.
As for complex syntax
>ScalaJS needs to be integrated into Scala, properly supported with far more end to end examples and the facades project
Agreed, ScalablyTyped has my vote for some ScalaCenter love, beyond the npm dependencies plugin. I'm using it currently outside of scalajs react, and it took a minute to translate the examples, and it needs to be available for maven, gradle, and mill as well as sbt.