The main contributor to the Scala compiler, Paul Phillips, has announced on GitHub that he is forking the compiler to “fix some of the innumerable problems” that he wasn’t able to do while working at Typesafe.
Phillips was one of the cofounders of Typesafe, which leads Scala and other open source projects. He left the organisation in June 2013 due to his “lost faith” in management's competency to address some of the big issues around Scala such as its complexity.
“The leadership of Scala has shown itself unfit stewards of the core technologies and the total price paid by Scala programmers (actual and potential) is too high. I failed for half a decade to change that from the inside. Now I'll try from the outside,” he wrote in a GitHub post.
Phillips has made 3,500 commits in the Scala repository, making him the largest contributor.
“I forked it because it could be so much better. I'd rather go to my grave having failed at the right thing than having succeeded at the wrong thing,” he told Techworld Australia.
Phillips plans to make changes to the source compatibility of the Scala compiler.
“My intention is to backstop outright deletions with extension methods in auxiliary jars such that source compatibility can be retained by adding a legacy dependency, e.g. depend on policy-legacy-views and obtain implicit classes which install the old views onto the core collections types,” he wrote.
He also plans to expand and automate the test infrastructure before making major changes to the compiler.
“I've written a whole lot in the feature department, but I am proceeding very slowly with incorporating improvements in order to keep a firm grip on the transition path from ScalaC.”
Phillips also wants to eliminate the entire Scala-reflect layer, which he sees as “useless”.
Phillips listed some of the changes he has worked on in the compiler, including:
- An extensive sbt-driven build system
- Bringing partest back from separate repository
- The deletion of lots of the worst and/or least necessary code
- The deletion of tons of useless and unmaintained compiler log messages
- Elimination of scala-reflect jar
- Elimination of asm fork in favour of standard asm dependency[*]
- Trailing commas.
Phillips is holding out on publishing his fork of the compiler as Typelevel has also forked it and it would "give them an opportunity to exploit my work".
Techworld Australia was seeking more information from Phillips at the time of publication.