Scala Center Q1 2022 Update

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.

In this post, we would like to share what the Scala Center team has achieved during the first quarter of 2022, and what is our plan going forward. This post only highlights the main items, please read the full activity report and roadmap on our website.

During the first quarter of 2022, among other things, we completed two Advisory board recommendations, we simplified the implementation of scaladex and added a new feature, “Awesome Scala”, and we refreshed the landing page of the Scala website to make it simpler and leaner.

We improved the newcomers’ onboarding experience based on the recommendation Solidify the “getting started” experience with Coursier. This proposal aimed to provide a simpler, hassle-free, setup experience for newcomers. You can find more details about the work that was involved in this project here.

We published an inclusive language guide helping the community adopt a more inclusive way of communicating, and we updated our code repositories to follow this guide. This work followed an advisory board recommendation.

Scaladex is an index of the Scala libraries. It allows developers to find libraries that match their needs and to see which platforms and Scala versions are supported by these libraries. We overhauled the internals of Scaladex to make it more reliable and simpler to maintain. Scaladex now requires fewer manual actions to work, and its codebase is more contributors-friendly. We also released a new major feature that makes it even simpler to find popular libraries classified by domain: Awesome Scala. Learn more by reading the accompanying blog post.

We noticed several issues with the Scala website: inconsistencies between duplicated content (getting started instructions), a bloated landing page, a division between Scala 2 and Scala 3 content, and a focus on language features rather than concrete use cases. We started addressing these issues in order to make the Scala website more appealing and leaner. We will continue working on them during the second quarter of 2022.

This is only an excerpt of our full activity report, which we encourage you to check out! You can also look at our roadmap to learn more about the priorities for the current quarter.


Good work!

Glad to hear that Scaladex is better behind the scenes! The search capability and UI could also use a bit of improvement in my opinion…maybe the reduced technical debt will allow that at some point?

Awesome Scala is awesome, but it is a bit weird that you’re dropped directly into “Asynchronous, Concurrent, and Distributed Programming”. I mean…that stuff is awesome, of course. But it would be better if the landing page was in some sense the most awesome-of-the-awesome (by popularity) or picked out some great libraries at random, or something like that. Unless you have data to indicate that async is the most in-demand thing, this seems like alphabetization driving a pretty important first impression. Like, personally, I would think having sbt, mill, better-files, spark, etc., on the landing page would make more sense.

The Inclusive Language Guide is a good idea–a lot of these things are not necessarily obvious and guidelines can help. But there are two parts of the document that seem really weak.

First, blacklist/whitelist ends with an admission that there is no accepted solution and a really clumsy suggestion: “excludelist”–ugh, who wants to say (or type, or read) that? I think it would have been better just to raise the problem and leave it to the community to find another comfortable way to talk about it if there isn’t already a good standard. I am almost positive that excludelist isn’t going to be it, given other possible alternatives (including two-word ones like “allow list” vs “deny list”, “accept list” vs “reject list”, and so on). The L-D-L thing is just physically clunky if you’re trying to say it.

Secondly, “sanity check” has a very different connotation from “confidence check”. An actual sanity check examines only the most ridiculous types of predicted wrongness, like “does this phone number have digits in it”. It might be good to switch from the idea of “let’s only catch the most patently absurd situations” to “let’s assess the degree to which we believe this is correct”, but if so it should be made really clear that you’re changing the approach not just the phrasing. As it is, the suggested correction is unhelpful because the meaning is too dramatically changed. “Feasibility check” is a better match for coding because it too suggests that you’re not being terribly careful here, but doesn’t cover all the same ground because “sanity check” can also be used for arguments (“let’s have a quick sanity check here–at 250C, the water isn’t going to be liquid, so the thermometer must be broken”) where you’re not trying to accomplish anything and therefore feasibility isn’t relevant. “Integrity check” for user input data that isn’t necessarily going to be used for something is another option.

Finally, I do wonder whether the “inclusive language” guidelines are driven by data about what people in practice find non-inclusive? It seems like there ought to be more to say about things like avoiding idiomatic expressions and cultural references (to be more inclusive of people with less mastery of English or of different cultures), using technical terminology when and only when critical for understanding (to be more inclusive of people with different technical backgrounds), and so on. Once upon a time advice of this sort was common, and anecdotally I have in the past heard complaints about these things being a barrier to entry when not followed…but maybe it’s so ingrained now that we don’t need to repeat it?


Thanks @Ichoran for the feedback.

I moved the discussion about Awesome Scala in Scaladex to Improving Awesome Scala landing page · Discussion #1000 · scalacenter/scaladex · GitHub.

1 Like

The only just outcome of the alphabetical arrangement is that XML comes at the very bottom.