Scala Center Monthly Update - February 2022

The mission of the Scala Center is to steward open-source development and education in the Scala ecosystem. The Scala Center creates high-quality free educational material, it creates open-source tools increasing the productivity of Scala developers, and it guides and supports the Scala community.

Dear community,

In this post, we would like to share what the Scala Center team has achieved in February.

Compiler

Scala 3 Compiler

Together with the compiler team, we created the issue maintenance role who is responsible for picking on critical issues, for ensuring that all external PRs are handled by someone and for spotting breakages in the testing and benchmarking infrastructure.

We also contributed with:

  • Ensuring that sum mirrors are stored in the companion object in the REPL (#14609)
  • Adding a warning when package name in source file will be encoded in the resulting class files (#14597).

Scala.js

We published Scala.js 1.9.0, with some new JDK classes and methods, as well as the usage of strict Float semantics by default.

Ecosystem

Scaladex

For Scala 2 and Scala 3

Scaladex is the index website for Scala libraries. The project suffers from usability and reliability issues, which we are currently addressing.

To fix the recurrent issue of missing artifacts due to downtime, we added a scheduled job that retrieves all missing artifacts from Maven Central.

In the new “Awesome Scala” page, we added the Scala version and platform filters in the so that users can have an overview of the Scala.js or Scala Native ecosystem on a particular Scala version. We also added a page to browse the projects of a single category. While the new “Awesome Scala” is not officially released, we already deployed it at https://index.scala-lang.org/awesome.

We added more badges in the “see more badges” pop-up of the project page.

As we want to encourage external contributions from the community, we created a list of good first issues.

Unified Scala.js ecosystem

For Scala 2 and Scala 3

This project aims at building up and providing a unified, integrated ecosystem for Scala.js on Scala 2 and Scala 3. Central to this ecosystem will be a set of documentation and templates on how to effectively integrate Scala.js and its major libraries with servers and/or bundlers, with a good development experience.

We reached out to the main contributors of the Scala.js ecosystem that are willing to participate in this project. We are currently preparing a survey and a brainstorming meeting.

Tooling

Metals

For Scala 2 and Scala 3

Metals is the recommended Language Server implementation for Scala, offering IDE-like features in multiple editors.

Bloop

For Scala 2 and Scala 3

Bloop is an implementation of the Build Server Protocol for the Scala Language. It allows us to compile, test and run Scala code and it integrates with build tools, command line applications, editors and other tooling.

We finalized the update of Zinc to 1.6.0 and dropped the forked version. To achieve this, we needed to remove the pipelining optimization but our benchmark does not show any significant regression of the performance. We can bring pipelining back later using the newer implementation in the mainstream version of Zinc. This new version of Bloop can be tested in the current nightly version 1.4.13-6-7f377e9b.

Communication

Scala-lang Website modernization

This project aims at modernising and reorganising the scala-lang website to provide the optimum experience for new and returning users.

We reworked the getting-started instructions and made it more visible from the main page and download page. Our aim is to converge on a more approachable and more consistent getting started experience, that does not depend on Scala 2 or Scala 3.

Scala in Science

This project aims at developing a niche for Scala in the scientific community.

We tested our workshop, which is about using Scala to simulate the launch of a simple rocket to orbit, and we got some positive feedback. We are now reaching out to larger groups of people that would be interested in the workshop.

LinkedIn

Our LinkedIn page is growing in followers and content.

We published 7 posts gathering 152 new followers, 333 reactions, 13 comments and 23 shares.

Scala Google Summer of Code 2022

Google Summer of Code is a great opportunity for us to engage with students around the world and onboard a new, more diverse generation of contributors to Scala and its ecosystem.

We submitted the application for 13 projects, and we are awaiting the acceptance announcement on March 7th.

Let’s Talk About Scala 3

Let’s Talk About Scala 3 is a series of videos presenting new features or interesting topics of Scala 3.

We published a new video demonstrating how to write simpler command-line programs in Scala 3.

Education

Effective Programming in Scala on the EPFL Extension School Platform

This project aims at offering a more personalized Scala training through the EPFL Extension School. This product is complementary to our courses on Coursera and will share part of the content, while proposing a different experience in mentorship and personalized feedback.

We ported the content of the Coursera course Effective Programming in Scala to the infrastructure of the Extension School (including videos, quizzes, and graded assignments).

MOOCs Communication Campaign

The goal of the MOOCs communication campaign is to increase the number of students and increase our revenues from certifications.

We added testimonials from former students in the “Online courses” page on scala-lang.org and posted 4 LinkedIn posts.

12 Likes