I’ve discussed this with @Duhemm, @lrytz, and @dwijnand, and here’s the summary of my view.
First, I want to thank Martin for initiating this discussion and proposing an implementation. I am sympathetic to the idea of improving the command-line user interface via various means. I’ve done my share of that including sbt-slash proposal, sbt-doge, having a better prompt etc. We should continue to discuss the pros/cons and improvements we can make in the error reporting.
Second aspect of this proposal that seems to be taking over this thread is the topic of where and when we should make this change. As sbt 1.0 has gone into RC cycle, we will not be able to accept this feature as part of sbt 1.0. There are certainly breakages due to removal of archaic syntax and addition of Zinc and LM APIs, but we intend to minimize the jump between sbt 0.13 and sbt 1.0, not add more attractions. This principle applies also to my own proposal for unified slash syntax (sbt-slash), which we decided to release as sbt 0.13 plugin to test its stability and usability instead of including it to sbt 1.0:
There’s also been concerns around introducing this change late in the game, so after discussing with Dale, we decided to introduce this as a form of a plugin.
Precisely because of the wide usage of sbt (by humans or otherwise), I don’t think we should treat sbt as a means of sidestepping the validation by Adriaan’s team. If we have community’s support for Martin’s change, the roadmap should lead to upstream contribution to the Scala compiler. I think sbt plugin is a great way to experiment and iterate these types of things, and we can help socializing the plugin. Once there are community support around the proposal (or some subset of it), Lightbend Scala team should be open to adding that feature into Scala 2.12 and 2.13.