4 ms·
SBT, implicits, CoC controversy and censorship, scalaz/cats debacle... There are more reasons not to get involved with scala ecosystem than to get involved. I
by qop 8y ago
SBT, implicits, CoC controversy and censorship, scalaz/cats debacle... There are more reasons not to get involved with scala ecosystem than to get involved.
I think people get snippet fever when they see a few lines of really pretty code and they forget how tangled up the scala scene actually is.
I can't believe, after seeing more Rails disasters that I know what to do with, that I'm looking at a software project and thinking "this shit is almost as bad as Rails."
Scala 3 could've been the opportunity to murder sbt to death, abandon implicits entirely, make the breaking changes they need and compose the foundation for 10+ more years of scala hackery. But from what's visible out of dotty currently, it's almost entirely invested in the old sins, with a stronger soundness story nonetheless (congrats DOT team). There's just no way to slow the train now, too much of it is dangling off the bridge and Spiderman won't be able to pull it back.
Good riddance. Thank goodness F# is starting to come together.
- drivebyops 8y agoF# will gain more traction once the C# HKT proposal champion gets approved and merged (which will be a CLR change)
- insulanian 8y agoWhere can I get more information about this effort?
- drivebyops 8y agoHere https://github.com/dotnet/csharplang/issues/339 https://github.com/dotnet/csharplang/issues/339
- YorkshireSeason 8y agoabandon implicits entirely, What's wrong with (carefully used) implicits? What would you replace them with? Haskell has type-classes, a very similar concept, and it's difficult to imagine contemporary Haskell programming without them.
- jjtheblunt 8y agothey're an afterthought which serve truly no purpose other than to be fancy via obfuscation?
- YorkshireSeason 8y agoImplicits are not an afterthought, but a core feature that enables efficient context-dependent parameterisation. Implicits let you avoid a lot of boiler-plate. They are especially useful for well-structured ad-hoc polymorphism, quite like Haskell's type-classes, the predecessor and close relative of implicits. If you don't like implicits, simply don't use them. You can add a style checker to your build automation that finds and rejects the keyword "implicit" in your code. As to use of implicits in libraries, you are perfectly free to pass explicit arguments instead. Odersky has a couple of recent youtube videos where he explains implicits in detail.
- pas 8y ago> CoC controversy and censorship Could you write a few sentences about this? What happened? What do you think should have happened instead? > scalaz/cats debacle Again, for the unfamiliar, what is this debacle? > the breaking changes they need What are those? > murder sbt to death yes pls! ( https://github.com/lihaoyi/mill https://github.com/lihaoyi/mill is actively maintained and developed and seems to be the sane replacement for sbt )