Scala Center Monthly Update - January 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 January.

Compiler

Dotty Project health monitoring

We were working with LAMP to update their Issue Tsardom role to enable more in-depth monitoring of the Dotty issues status and CI and benchmark infrastructure health. We have successfully specified the new role and conducted the first iteration of it.

Maintenance of Scala 2 TASTy Reader

The TASTy Reader in the Scala 2 compiler allows Scala 2 projects to depend on Scala 3 projects in order to let library authors update their codebases to Scala 3 without breaking compatibility for their users.

We tested and confirmed support of tasty-reader in Scala 2 for Scala 3.1.1.

Ecosystem

Metals

For Scala 2 and Scala 3

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

Version v0.11.0 and v0.11.1 were released. They fix many issues, making the user experience more smooth, and introduce support Java codebases.

Scaladex

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

The team started working on an “Awesome Scala” page in Scaladex. A list of categories and meta-categories was assembled and more than 800 projects were tagged with a proposition of categories.
The implementation of the page started and a WIP is visible at https://index-dev.scala-lang.org/awesome .

We also reorganized the project repository and we generated a new small index to facilitate the onboarding of new contributors.

Coursier

For Scala 2 and Scala 3

Coursier can be used as an installer for Scala 2 and Scala 3. However, it was reported by the Advisory Board that it suffers from several issues that make it unsuitable for beginners.

Our work on coursier to a) make its menus more user-friendly, b) install the original sbt, and c) merge Scala 2 and Scala 3 has now been published, and is available by default when users install cs from scratch from its installation instructions.

TASTy Manipulation Library

tasty-query is a library that will allow the consumption of TASTy files at a high level, allowing introspection of Trees and their Types, as well as inspection of definitions and their signatures. The roadmap of the project is here

tasty-query was expanded to create Symbols from both Java class files and Scala 2 pickles. The codebase was also refactored and improved.

Bloop

For Scala 2 and Scala 3

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

We are working on using a more mainstream version of Zinc in Bloop instead of a custom fork. This is crucial to move the development of Zinc forward and to benefit from it in all Scala versions. The adoption of Zinc 1.6.0 in the Bloop codebase is being tested.

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. 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 published the roadmap for a Unified Scala.js ecosystem: The Scala Center's roadmap for a Unified Scala.js Ecosystem

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 presented a plan to the stakeholders for our Q1 ideas for low cost changes with a high impact and, based on feedback on that meeting, we iterated the design and plan.

Scala Center Shop

This project aims at creating a Scala online shop to offer a range of Scala merch to community members while giving them the possibility to contribute to the Scala Center.

Scala 3 books were bought and the gadgets chosen in agreement with EPFL E-Shop. We will start selling 50 pieces of every kind (water bottle, swiss knife and notebook)

Scala in Science

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

It started in collaboration with AeroPoly at EPFL. We are preparing a Scala workshop for the Association focused on simulating the launch of a simple rocket to orbit. We received some licenses for a proprietary tool for the workshop.

LinkedIn

Our LinkedIn page is growing in followers and content!

The team published 4 posts gathering 76 new followers, 240 reactions, 2 comments and 22 shares. We have a total of 521 followers and the engagement rate is growing from 4 to 7%.

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 started to prepare our candidacy to participate in GSoC 2022 as an organization by sending the call for mentors.

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 published our lectures and quizzes on the Extension School platform and we experimented with grading infrastructure. It will be based on self-hosted GitHub Actions runners.

MOOCs Communication Campaign

The Education team launched a promotion campaign on LinkedIn for our MOOCs. The information about the courses was reorganized on scala-lang.org, a video trailer and a blogpost were published

You can find the campaign

Scala 3 MOOCs

The Spark and the Scala Capstone courses have been updated to use Scala 2.13 and Scala 3. On Coursera, students can choose between the two versions of the course. Some other feedback was taken into account to make the assignments easier to do. Here are the links to the courses:

MOOCs Maintenance

The course “Functional Programming Principles” was updated to introduce new quizzes to improve learner’s experience

9 Likes