5 ms·
"Dotty is a platform to try out new language concepts and compiler technologies for Scala." [0] Why should Scala be dead for now? I agree its a Flying Spaghett
by MrBuddyCasino 11y ago
"Dotty is a platform to try out new language concepts and compiler technologies for Scala." [0]
Why should Scala be dead for now? I agree its a Flying Spaghetti Monster, but so is C++.
[0] https://github.com/lampepfl/dotty https://github.com/lampepfl/dotty
- lmm 11y agoAs a huge Scala fan, I fear that Dotty will suck the oxygen away. In particular, freezing the syntax for as long as the proposed timeframe for Dotty to be delivered would kill any language. I would urge typesa^H^Hlightbend to bring forward the introduction of vital syntactic features from dotty (e.g. existentials as HKTs, if they really think that's the best way to express type lambdas). Even if that involves making large changes to scalac that will have to be thrown away, the Scala community cannot survive with the syntax the way it is for much longer.
- coldtea 11y ago>In particular, freezing the syntax for as long as the proposed timeframe for Dotty to be delivered would kill any language. Because Scala doesn't have enough syntax already?
- lmm 11y agoHonestly no. A lot of the complex Scala you see is because Scala doesn't have syntax for something and so you have to put it together out of other things. Type lambdas and Miles Sabin's unboxed union types trick are prime examples of cases where adding some syntax would make a lot of real-world Scala a lot more readable. Likewise ADT case classes where you don't really want the class to be its own type - a little syntax would save a lot of repetitive "smart constructors". Also there are cases where it's not more syntax that's needed, but different syntax. E.g. the way irrefutable unpacks in for/yields desugar to a (with)filter call is just dumb.
- allengeorge 11y agoOf all the things holding Scala back, frozen syntax is the least of its worries. My two biggest day-to-day peeves are: 1) The poor quality of the entire tool chain 2) Immature libraries and ecosystem Tool chain: from the slow-as-molasses compiler, to the fact that every so often IDEA gives up and refuses to parse parts of our project, to the horror that is SBT, working with Scala just feels* painful. Heck! - my Macbook Pro sounds like it's taking off whenever I start a Scala compile, and if I'm building from scratch? https://xkcd.com/303/ https://xkcd.com/303/ Libraries and ecosystem: many opensource Scala libraries feel more like experiments in language wrangling or narrow (exposing only a tiny subset of the underlying features) wrappers for existing Java libraries than well-tested code. Documentation? Almost always spotty. Library community? Spotty. Source? Good luck reading it. Depending on the author's bent it can range from vaguely understandable to downright inscrutable. (On this last point: I've often poked around various Java/Python/Go/C libraries and been able to figure out fairly quickly what's going on. Much less so with Scala.) Besides those two points - Scala is complex. To a newcomer the language is unfriendly and has a lot of rough edges. You have to build a lot of context to interpret existing Scala code - and much of this context is incidental to the problem at hand. This makes it very tough to incrementally learn about Scala features/syntax and slowly explore an existing Scala code base (especially an opensource one, where authors are more likely flexing their advanced Scala knowledge). And all that syntactic sugar? Terse. Elegant. Unintelligible to a newcomer. Sorry. /rant over.
- lmm 11y agoThere are better options on the tooling. Eclipse rather than IDEA, Maven rather than SBT. Not perfect by any means, and the compiler is slow, but good enough to work with day-to-day. The library ecosystem is growing every day, and the community is starting to recognize the importance of good documentation. See e.g. the Cats project, with a big emphasis on that. Code readability in general, rough edges, and things that are difficult for newcomers to read incrementally are precisely why I'm so worried about the syntax being frozen.
- the_af 11y agoIs Eclipse (Scala IDE) better than IntelliJ now? About a year ago people convinced me to switch to IntelliJ because Scala IDE was totally unusable, full of spurious compilation errors and useless refactor that introduced random symbols instead of doing its job. So has the situation been reversed now?
- acjohnson55 11y agoCannot survive? That seems really hyperbolic to me. I think the language is in a really good state for the vast majority of users right now. For me, the language still hits a sweet spot miles ahead of the dynamic languages in its soundness, the old school typed OOP languages in its "functionalness", and the typed functional languages in its approachability and modernity (compared to, say, Haskell). Scala's killer innovation was to find a way to apply sound typing to Ruby-like syntax, and in that, it succeeded quite nicely. That's not to say the stagnation isn't frustrating or that there aren't great improvements to be made. I think Scala would be greatly improved if Shapeless were expressible with much less hackery. It's a testament to Scala that Shapeless is even possible, but it's still pretty unsatisfactory when it comes to regular people being able to understand such code, let alone debug it when it goes wrong. But look at Scala through the lens of other languages. It took monumental effort to get to Java 8, Python 3, and ES6. It's unfair to paint the current Scala plateau as some kind of albatross. Especially given that just a few years back, people were complaining about language churn.
- lmm 11y agoThe language is in a great state in terms of what's possible, and in terms of the underlying abstractions (partly why Dotty doesn't seem like an urgent requirement to me). It's in a much less state in terms of what those things look like in code. Shapeless is great in terms of what you can do with it, but much less great in terms of what the compiler errors look like when you make a mistake. Contrast with Ceylon where similar functionality was built in from the start. Python 3 was very much at the front of my mind as I wrote that - I think their "plateau" has killed the language (I hope I'm wrong). People were complaining about language churn, but I wasn't one of them. With Dotty an unknown number of years away and no committed schedule, I simply don't think Scala can afford to freeze for that long.
- acjohnson55 11y agoI think we have very different conceptions of "survive" and "killed". Python certainly seems alive and well to me, if not exactly the hottest thing out there.
- atemerev 11y agoThe liveness metric in tech world is simple: is the number of users / new projects currently increasing (then it's alive) or decreasing (then it's dead)?