It also means that the main designer of the Scala language is not working on Scala but on a language that will "eventually" become the future of Scala, which means that, right now, dotty is not the future of Scala.
A lot of very smart people seem to be very excited about that, I can't help but find it ominous.
> It also means that the main designer of the Scala language is not working on Scala
No, it means that person is not working only on Scala, or rather the current implementation of Scala. People can work on multiple projects over the course of a year/years.
> on a language that will "eventually" become the future of Scala
You changed "Is it the future Scala? Yes, it will be - eventually" (I think can best be reworded "eventually be the future Scala") to "eventually become the future of Scala." To me, those have different connotations. The former means that it's not finished yet, but when it is it will be the base of Scala at that time. The latter implies, to me, that at some time in the future this will be the base of Scala at some time further in the future.
> which means that, right now, dotty is not the future of Scala
And here's where that different meaning leads you wrong. dotty is the future of Scala right now, but it's not that future Scala yet.
> A lot of very smart people seem to be very excited about that, I can't help but find it ominous.
People are generally happy to have to the creator of something they like working on its future.
Scala is being maintained. Improvements and releases are being made in the meantime. More than one person can work on Scala, and a single person can work on multiple aspects of Scala. Big changes like dotty are being carefully planned and executed at the same time other changes are made. People are excited that Scala is continuing to evolve and becoming a better language, and that a beloved innovator/creator is playing a significant role in that.
Right, yes, I read "the future of Scala" but that isn't what it said at all. My mistake entirely, you're absolutely correct.
On the other hand, I stand by my "not working on Scala" comment. This is based on commit history, which I admit might not give the whole picture but is certainly a fairly strong indication: https://github.com/scala/scala/graphs/contributors
Odersky's activity has drastically diminished towards the end of 2012, with his last Scala commit in July, 2014.
I've no issue with him doing exactly what he wishes, he owes the community (or at least, me) absolutely nothing and if he's more excited to work on Dotty than on Scala, then there is no doubt that's what he should be doing. My concern is that the more I look at Dotty, the more it looks like a very promising language that looks a lot like Scala, but that adds and removes some features to it - that is to say, not actually Scala. I've no trouble imagining a future where the differences grow enough that they stay / become entirely distinct, and seeing a large chunk of the brains behind Scala busy on Dotty doesn't feel me with confidence in the former's future.
I really do not see the problem with this. Odersky oversees a team of very capable people he trusts to work on the current Scala version, while he works on the future. He is the father of Scala, but please do not underestimate the brilliant people that are actively working on Scala now, allowing him to develop the bleeding edge.
Scala 2.12 would be taking a lot longer and delivering a lot less than Scala 2.11 even if it were on schedule (which it isn't, and there's been no official comment on what the new schedule is). I think the focus of 2.12 is entirely wrong (for my use cases it brings no new features to the table, and since it drops Android support, it's actually a regression compared to 2.11), and I think important features (better syntax for type lambdas, a way to express sum types without extraneous subtypes) are being delayed for too long if they're being delayed until Dotty.
You're misreading my comment. What bothers me is not that the "father of Scala" is working on the future of Scala, but that he's working on something that I fear might become another language altogether.
I'm not saying Scala is in bad hands or a dead language. But when a project's creator looses interest and moves to different things, well, it's usually not the best sign for that project. And again, I'm not saying that this is happening right now, or even that it necessarily will, just that Dotty definitely has the potential of leading to that situation.
> I'm not saying Scala is in bad hands or a dead language. But when a project's creator looses interest and moves to different things, well, it's usually not the best sign for that project.
"looses interest" ... "moves to different things" ... WTF? How can people come up with this FUD?
Scala2 and Dotty are two dialects of the same language, just as ScalaJS and Scala Native are dialects of the language.
If the language requires a single specific person to be involved so it can move forward, that they are choosing to spend their time on something you deem not the best way to advance the language, then that's actually the lesser of a few problems. Is the bus number of this project really one? If not, then it doesn't really matter what he chooses to spend his time on.
My english is obviously not as fluent as I thought it was. None of this was meant to be implied by my comments. I have no opinion on what the best way to advance Scala might be, nor am I even qualified to hold such an opinion. I have no idea whether Odersky's continued involvement with the language is needed or even desirable. I've no concept how much work is being done on Scala - none whatsoever? more than I could possibly imagine? probably somewhere in the middle.
What I said, and mean as my opinion and not an absolute truth, is that a non-insignificant chunk of the brains that used to work on Scala now seems to be busy on Dotty, and that the resulting work, amazing though it may be, might not make it back to Scala.
I have nothing to back this opinion up. Everybody involved with Dotty seems absolutely committed to it being the future Scala, and I've no reason to believe they're not in earnest. But I can't take the switch for granted until it's happened.
Thanks. I'll give this a thorough read - I think it deserves more than the cursory read I can afford to give it right now - and appreciate the time investment this no doubt represents.
The first is that the linked post answers a lot of points, but not the ones I made. It makes Dotty sounds really exciting, which it is. It makes it sound as if everybody working on Dotty believes it to be the future of Scala, and I believe that to be true, too. What it does not do (that I could see) is give reassurance that Dotty and Scala will not drift appart and become two similar but incompatible languages. I felt it'd be rude to point this out, since there really is no way to provide such guarantees (just like there really is no way for me to back up my worries with anything concrete).
The second part is, I'm not casting doubts, but expressing worries. I'm not saying it will happen, I fear it might. I'm sorry if this offends - I really am, my goal is not to insult anyone or demean anyone's work. I have no hidden agenda, and I'm not trying to be one of these anti-Scala trolls that sometime crop up. I love Scala. Look at my github profile, most of my public work is in Scala, and some of my libraries represent a lot of work (which obviously does not mean they're actually any good). I really, really hope everything works out the way people mean it to - as I said, Dotty sounds really exciting. I've seen too many "let's rewrite this from scratch and then make it backward compatible, it'll be amazing" projects to be able to believe it blindly, though.
We share your concern. As I said in my comment above -- the Scala and Dotty teams actively work together (we have our roots in the same research group at EPFL) to make sure Scala 2.x evolves towards Dotty and Dotty evolves towards Scala 2.x. Scala 2.12 and 2.13 will have language flags that unlock features being incubated in Dotty that we can already implement, and the Dotty compiler already has a Scala 2 compatibility mode.
We take continuity very seriously. No one wants a Python 3-style transition. In addition to the desire to avoid this, we also have a type system and a community build (think Google Blaze for Scala) that builds > 1MLoC OSS Scala code.
Thanks for taking the time to share this. I was aware of the community build - I believe it was discussed in some depths on Scalawags a while ago? - and find it to be an amazing initiative. Can't think of a better way to minimise the issues that Dotty might cause, and I'm in awe of the amount of work it must represent.
What I fear in that moment down the line where one feature goes over the arbitrary threshold you set yourself for community breakage, but is just too great to pass up on. Since the threshold is arbitrary anyway, it's fine to adjust it a bit... and a bit more later...
Not saying it will happen, and it would be dishonest of me not to say that I don't think you could possibly do more than you're already doing to prevent this kind of issue.
Scala 2.12, the next version that's currently at milestone 4, is going to be a huge release, having a new backend, optimizations, Java 8 interop, improvements for the type system, refactorings, basically the real deal.
But Scala needs to be production quality and stable enough for real work TM. Like when they were pushing experiments in Scala, people were complaining that Scala breaks too often.
Apparently now people are afraid that the experiments have moved to Dotty. You can't please everybody.
My fear is that the feature sets diverge enough that we get two very similar but distinct languages and a split community.
I'm not afraid that the experiments have moved to Dotty. That's an ideal scenario, if successful ones are indeed ported to Scala. I'm just not convinced they will be.
Absolutely. I'm saying I fear reality and theory might diverge and we find ourselves with a split language / community. I highly doubt anybody set out to write Python 3 thinking "it'll mess with the community for years to come, muhahaha".
Without getting too philosophical, I don't see what's so ominous about the present not being the future or vice versa. All we have is the present, really.
Myself, retronym & lrytz are on the Scala team at Lightbend. I'm proud of what we've accomplished with 2.10, 2.11 (8 minor releases!) and 2.12 (RC1 coming soon -- see my comment above), and excited about what the future holds for Scala! We work together closely with Martin's Dotty team, exchanging ideas about compiler performance and convergence of language features in Scala 2 and Dotty (the incubator for the future of Scala).
If you feel my comments were dismissive of your work, or your team's work, then I owe you an apology. You're right to be proud of what you've done, it's quite a list of achievements and I can only hope I ever produce work of that quality.
Aside from very much needed java 8 support in 2.12, Scala, IMO, has little need for more bells and whistles. Making a sound and coherent foundation instead would be much appreciated.
Which is what Dotty is attempting to do, but hopefully with minimal codebase breakage.
There's a tradeoff between breakage and improvement, but I'd like not to wait 10 years before I can use dotty (like python 2 to python 3). We can always have another dotty in 5 years time for another round of rationalisation/simplification.
I thought, that's a big claim -- then saw who is working on it.