Typesafe’s Commitment to the Scala Ecosystem
typesafe.com
typesafe.com
I certainly hope it's the former: Typelevel speeds up the innovation/wart removing front while Typesafe continues on with their slow and steady roadmap, thus appeasing industry deep pockets.
[1] https://twitter.com/milessabin/status/503929023635161088
Checkout impromptu meeting of the "ScalaWags" recorded last night [1]. As usual it's a bit of a meandering, relaxed discussion, but they do manage to get on point at times re: Typelevel forking Scala and other issues pertinent to Scala's future.
[1] https://plus.google.com/events/c574immvc8319s8ks2a8brjqt34
So it seems to me more like a "joint" announcement than a response.
I don't doubt that Typelevel's fork will contain important work helping Scala forward. But I think it will divide the Scala community, and that cannot be a good thing.
On dividing the community, well, that's always the nature of open-source, but it's a virtue - after all, the ability to fork is a prerequisite for joining. And it can be argued that the Scala community is already divided between people that want a language closer to Haskell and pragmatists coming from other languages like Java, or Ruby, or Python, or whatever (and I'm in the later camp), so a fork could mean that the people wanting more type-safety in Scala, instead of bitching and moaning about it, could put their energy towards making actual improvements that could benefit everybody and that could end up being merged.
At the very least right now the goals are to keep binary and merge compatibility and there are signs of willingness to cooperate between Typesafe and Typelevel. That's a good thing if it holds. If not - well, market forces will pick the winner.
My comment is more of a response to the original Typelevel fork announcement, which specifically mentioned Scala.js as evidence that their fork wouldn't do much harm. It's a pretty bad argument they're making in the first place, but it's even worse given that Scala.js is not a fork.
> On dividing the community, well, that's always the nature of open-source, but it's a virtue - after all, the ability to fork is a prerequisite for joining.
Yes, forkability of a project is a virtue on its own. But the act of forking a project is not necessarily virtuous, which is why I have my doubts on this.
I hope they hold true to their promises. It would be a shame if Shapeless' focus would leave Typesafe's Scala behind (intentional or not), which seems a plausible consequence.
Merge compatibility is an even bigger bonus, as it should actually help push along the Typesafe compiler, in parallel with the feature roadmap Typesafe is focusing on, because we'll be able to see innovations actually working in production to prove them out.
The only big question mark to me is what this foundation will look like, and whether it can meaningfully contribute to the ecosysytem.
I even believe that Microsoft research tried to find a solution for a while, but were unable. I'll try and find some references if I can.
Edit:
This link has some good info in it: http://visualstudio.uservoice.com/forums/121579-visual-studi...
Looks like the CLR can't represent higher kinded types at runtime using the reified type system.
You can easily erase to the CLR like you can on the JVM, the only issue is interop with .net APIs that use generics, of which this mostly means LINQ.