Scala Center Five-Year Impact Report

Hi :wave:

We just released the Scala Center Five-Year Impact Report. We’ve been working on it for almost a year!

We invite you to check it out and share it - especially if anyone ever asks you “what does Scala Center do” :face_with_hand_over_mouth:


Screenshot 2023-03-07 at 16.25.18


Hi, under the Language Enhancement section, the SIP process is mentioned and ‘before/after’ screenshots are shown of how the process improves the Scala language. But, the example shown in the screenshots has to do with the Scala 2 → 3 changes of using enums instead of sealed traits, and using braceless syntax. Neither of these changes went through the SIP process, unless I’m mistaken? I feel it’s a bit misleading to show those screenshots when talking about the SIP process. I would suggest using some other SIP success stories.

EDIT: also…shouldn’t this report also be posted in the Scala Users discussion forum? This (contributors) forum is for a more limited audience of people who are developing the Scala language, libraries, ecosystem. The users forum is made up of users, who would benefit from seeing this report.


You are in fact mistaken. :wink: Both of those changes went through the SIP process, and were approved with the required majority of yes votes.


To expand, these were discussed in 3 meetings on the 11 March 2020, 12 March 2020 and 13 March 2020. (edit 11.03, actually most of 2019 meetings too) There was also some other follow up meetings that were not published as minutes, but where the features were approved. We should probably (in an ideal world) generate official SIP documents for each proposal so that they can be indexed in the documentation


Can I clarify something? Are we saying that Scala’s new braceless syntax and the new enum syntax went through the SIP process, and also there is no official SIP document for either? Doesn’t this contradict the specification?

To be clear, I don’t care to litigate whether the new syntax and features were done through an official SIP process, they’re a fait accompli. I’m just asking if the definition of ‘went through SIP process’ in this thread matches up with the definition given in the spec.


That specification you linked is younger than those changes. At the time, there was a different specification. The process was different in the precise rules, but the spirit was the same.


I would like to second Seb and Jamie and state publicly and strongly that every really significant change in Scala 3 was discussed and voted on by the committee.

I think Yawar’s impression otherwise is at least somewhat common, and that’s why I’m posting this.

These discussions happened in remote meetings, they happened in the extensive public discussions here on Discourse which we all read and absorbed and many of us participated in directly, and they happened in two multi-day workshops in Switzerland in 2019 and 2020 where we discussed all of this stuff in depth all day every day, focusing on whatever was most controversial, according to the series of straw polls and votes that we took.

It’s true that once the pandemic hit, there weren’t any further meetings. (I had to flee the continent in the middle of the second workshop…) But our work was already largely done by then.

It’s also true that we could have done more to communicate the work we did to the community. I believe that the new SIP process that the Center started last year reflects our learning of what could be handled better, process-wise.


Thanks for clarifying. I think the reason myself and others were confused is because we had always been under the impression that a numbered SIP document was needed to kick off the process. At least based on my admittedly surface level understanding. But apparently that was not the case before, but since Scala 3 release it is now.