The Scala Center team is dedicated to providing regular and transparent community updates about project plans & progress. In this forum we created a new topic category to allow quicker orientation going forward: “Scala Center Updates”. Even though all feedback is welcome, we keep the right to make executive decisions about projects we lead. Overview of all our activities can always be found at https://scala.epfl.ch/records.html .
The Scala.js ecosystem contains individual pieces of great quality, from the compiler to the UI libraries. However, it is a challenge for every newcomer to find the pieces that are relevant, to connect them, and to build a good development experience. Good practices are only built in-house and sporadically shared through ephemeral channels like Gitter and Discord: incremental save-reload setups, integration with npm modules and their facade types, deployment together with a web server, etc. This means that only the most enthusiastic developers (and that means almost exclusively existing Scala developers) actually invest in it and build professional projects on top of it.
We believe that we can dramatically improve on this situation, and hopefully attract new people to Scala(.js), by providing a clear, “unified Scala.js ecosystem”. As a result, we should be able to advertise Scala as a great language to write front-and-back-end systems.
Here is our roadmap for this endeavor, which we are starting now (early February 2022).
List existing libraries, tools, tutorials and templates
Our first phase is to build up more-or-less comprehensive lists of all the Scala.js-related resources out there: libraries, tools, tutorials, getting-started templates, best practices, etc. Those lists will be used as the basis for the following tasks.
In addition, identify the major actors of the current ecosystem: library authors, users active in the Discord/Gitter channels, etc.
Expected time span: 1-2 weeks
Brainstorming meeting with Scala.js ecosystem actors
With the people who would like to participate, build up consensus on what are the best libraries for Scala.js, what are the best “alliances” between libraries, what are the best tools, and best practices. In addition, identify what are the biggest “holes” in our ecosystem: what tools are missing, etc. Going out of this brainstorming session, we would like to create a “task force” for the rest of this project with willing actors.
Expected time span: 2-3 weeks
Map out the ecosystem
Starting from the pieces identified earlier, map out the Scala.js ecosystem, its use cases, the libraries and tools that fit those use cases, etc. Build a sketch of what we would want the experience of a new user to be: what path would they follow and how, depending on their use case. We would need to reach consensus within the task force to proceed further.
Expected time span: 3-4 weeks
Implementation
Up to here was the “research” phase. Next come three areas of “implementation”:
- New design of the website to follow and introduce the map of the ecosystem, bringing newcomers from zero to where they want to be.
- Bring together the relevant templates and tutorials, and write the ones that are missing.
- Develop missing tools.
Expected time span for a first full iteration: 2 months (the different areas above would happen in parallel). Refinements will continue afterwards.
This is a rather long-term project, and it will require the participation of a number of people. We hope that the Scala.js community, and the larger Scala community, will join in on this effort.
Feedback welcome