Part I: Departure
Since I began my work on Scala around 2011, I have focused on increasing the quality of the language, its standard library, its tooling and documentation. My goal was to the improve the experience of Scala developers (especially newbies) by addressing frequently encountered issues, therefore making the language easier to adopt and more attractive to a wider audience.
At the beginning of this year I have ceased Scala development and resigned from all related activities.
Reasons for my departure are the lack of interest in improving the experience of our users, the mounting problems caused by not addressing pressing issues “even when the failings were grossly apparent”, the barrage of low-quality language extension and library addition proposals, the decline or outright lack of standards concerning the evolution of the language, the lack of honest and effective communication, questionable copyright practices123 which endanger both the project itself as well as users of the language, and the continued failure to correct organizational issues that cause contributors to leave4.
I had the expectation that Scala’s future development would learn the lessons of past mistakes – instead of repeating them over and over – and achieve a marginal level of quality and stability, in which the rate of cleanup and repair would eventually be higher than the rate of newly added mistakes and cruft. It has become abundantly clear that this expectation turned out to be wrong.
As a consequence, I have dropped all work on Scala itself as well as development, support and maintenance of all Scala-related projects. All libraries I authored and distributed have reached their end of life.
I will comment on the end-user impact of this announcement and potential mitigations at a later date.
I am aware of four contributors who have quit working on their projects and/or left the Scala community in the past year alone. The number of departures I’m not aware of is likely to be higher. ↩