News for hackers. Stuff that matters.
Re:Kotlin 1.2.20 released by eropple on Wednesday January 17, 2018 @02:19PM (#16170855)
> In a language built for the same platform where Scala has already been available for a decade it's very disappointing though.

Given that after literally years of Scala experience I could easily write code I couldn't read three months later, this is not a big negative.

Kotlin takes a lot of the good from Scala, leaves most of the bad, and gets the hell out of my way (while giving me literally-perfect Java interop--the only problem I ever had was how to annotate only the getter part of a property, and it was unintuitive but I figured it out). I'm a big fan.

Re:Kotlin 1.2.20 released by lmm on Wednesday January 17, 2018 @07:05PM (#16173329)
To me it feels like they took the sugar from Scala but not the meat. All the simple examples of monads like Future work but with their own ad-hoc solutions (e.g. async/await) so there's no way to implement the reusable library functions that give them their real power. Direct pattern matching is there but the generic tree traversals that give you the real power of ADTs are impossible. All the one-page examples of "Scala power" are there but if you look closely they all fall apart once you try to expand them into the things you do in a full-size codebase.
Re:Kotlin 1.2.20 released by eropple on Thursday January 18, 2018 @03:54AM (#16175663)
Sure--but every time I do those things in a full-size codebase, I regret it later. ;) Scala is cool. I like a lot of the people involved (especially since Tony Morris was shown the door). But trying to get something out the door that doesn't turn into a mess of code I have to sit down and chew through, slo-oo-owly, is a heck of a fight. And it's worse when other people's preferred bits-and-bobs of Scala start sneaking in (kind of like C++, in a way!).

The complexity I end up carrying in my head is way, way too high.

Re:Kotlin 1.2.20 released by lmm on Thursday January 18, 2018 @07:37AM (#16176615)
> Sure--but every time I do those things in a full-size codebase, I regret it later.

Hmm, that's backwards from my experience. Like, I actually regret it when I use the Future-specific operations on Futures, because I don't use those often enough to remember what they are, whereas I use the generic Monad operations all the time on pretty much everything.

> trying to get something out the door that doesn't turn into a mess of code I have to sit down and chew through, slo-oo-owly, is a heck of a fight

I find often something that would be 10 lines of Java or Kotlin can be 1 line of Scala - but still 8 lines' worth of reading time. It can be difficult to remember that this is an improvement when you're thinking "why is it taking me all morning to read 10 lines?", but when you take a step back you realise that those 10 lines are actually doing the work of many more.