Live data from Hacker News

The Last Hope for Scala's Infinity War [video]

youtube.com

21–30 of 76 posts

Re: The Last Hope for Scala's Infinity War [video]

#22
post #11

Earlier quoted context omitted.

I dunno, I think the DeGoes has a point. Like he says near the end, there's this fiction that an OOP+FP hybrid will be loved by both OOP and FP programmers, when many times it actually means both will dislike it and the language will be mediocre at both goals. My opinion -- and I mostly write Scala in my day job! -- is that Scala is in a truly difficult position. Its OOP (and Java) DNA hurts its FP aspects. If it goe…

> there's this fiction that an OOP+FP hybrid will be loved by both OOP and FP programmers That seems more of a strawman than a fiction: I've never seen anyone, especially in the Scala community, suggest this. I've seen lots of people suggest that OOP+FP fusion is what allows Scala to provide an easy gradual on-ramp to FP for people and projects transitioning from Java, which is Scala’s key value proposition.

Well, "love" is obviously an extreme, but I think I know what DeGoes means. I know I've cursed at Scala's Java/OOP heritage more than once. I've also puzzled over the related issue of how complex some of Scala's function signatures are (or used to be; I know there's work on this) compared to equivalent Haskell functions.

It seems to me DeGoes is arguing that Scala's "key value proposition" is a losing battle, because other languages are starting to do it much better. It's likely that the "practical programmer" will go with Kotlin or even the next iterations of Java, and the rest... well, you can guess the reaction of the audience to his question ("how many of you would work with Haskell if you could?"), and I must take his assertion at face value that in Scala conferences, the more popular talks are about FP, not about OOP or even FP+OOP. Maybe he's wrong about this, of course.

Again, I'm saying all this as a Scala practitioner. I'm not leaving it for Kotlin either. Then again, I certainly would work with Haskell if I could!

edit: one more thing:

> "I've seen lots of people suggest that OOP+FP fusion is what allows Scala to provide an easy gradual on-ramp to FP for people and projects transitioning from Java"

In my experience, this ramping up to FP happens in one of two ways with Scala:

- Completely ad hoc, misunderstanding every principle and making a Frankenstein's monster out of it. No lessons learned, just a mess that "works".

- Understanding it and doing it with care, and mentioning Haskell a lot (as these people start to read articles and watch tech talks on FP).

This is entirely my personal experience and probably won't generalize to every workplace.

Re: The Last Hope for Scala's Infinity War [video]

#23
post #7
post #6

Earlier quoted context omitted.

Discouraging OO would be the worst thing Scala could do. Its one really unique capability is the fusion of OO and functional: it's a language that can go toe-to-toe with Haskell, yet also one that lets you switch from Java in a weekend. Take away the OO support and you'd have just another functional also-ran. Sadly while the language itself has excellent OO support and Java interop, the community support just isn't t…

"(by which I mainly mean: too many people like DeGoes will shout you down rather than trying to help you)." Proposition for discussion (i.e., I don't necessarily believe this, but I don't necessarily not either): The biggest challenge facing languages and their communities that focus on correctness is that the very personality types that are willing to focus on them are also statistically much more likely to be, ah,…

[deleted]

Re: The Last Hope for Scala's Infinity War [video]

#24
post #7

Earlier quoted context omitted.

"(by which I mainly mean: too many people like DeGoes will shout you down rather than trying to help you)." Proposition for discussion (i.e., I don't necessarily believe this, but I don't necessarily not either): The biggest challenge facing languages and their communities that focus on correctness is that the very personality types that are willing to focus on them are also statistically much more likely to be, ah,…

This is exactly what drove me out of the lisp community. There are just too many people that insist on seeing engineering decisions between different sets of trade offs as stark choices between good and evil. Go read some of Eric Naggum’s rants for a really extreme example of this syndrome.

Eric Naggum was one loud extremist. He wasn't the community, but he was so loud and rude (which unfortunately entertains people) that he was was what people thought the community was.

Re: The Last Hope for Scala's Infinity War [video]

#25
post #22

Earlier quoted context omitted.

> there's this fiction that an OOP+FP hybrid will be loved by both OOP and FP programmers That seems more of a strawman than a fiction: I've never seen anyone, especially in the Scala community, suggest this. I've seen lots of people suggest that OOP+FP fusion is what allows Scala to provide an easy gradual on-ramp to FP for people and projects transitioning from Java, which is Scala’s key value proposition.

Well, "love" is obviously an extreme, but I think I know what DeGoes means. I know I've cursed at Scala's Java/OOP heritage more than once. I've also puzzled over the related issue of how complex some of Scala's function signatures are (or used to be; I know there's work on this) compared to equivalent Haskell functions. It seems to me DeGoes is arguing that Scala's "key value proposition" is a losing battle, because…

Why can't you work in Haskell?

Re: The Last Hope for Scala's Infinity War [video]

#26

Earlier quoted context omitted.

So the idea would be to allow currying, but not allow partial application of the currying?

Partial application of functions is fine. Partial functions would be disallowed. Here's a function that is only partial, because it can throw an exception instead of returning a value when b is zero: def divide(a: Int, b: Int): Int = a / b Here's a total function to accomplish the same basic goal: def divide(a: Int, b: Int): Try[Int] = Try(a / b) This function always returns a value of the type it's declared to retur…

Thanks for that clarification. I had googled for "partial function vs currying", which led me to results for "partial function application", which was really about partial application of functions, not partial functions. :-/

I swear, probably 80% of my problems in professional life are from overloaded terms.

Re: The Last Hope for Scala's Infinity War [video]

#27
post #22

Earlier quoted context omitted.

Well, "love" is obviously an extreme, but I think I know what DeGoes means. I know I've cursed at Scala's Java/OOP heritage more than once. I've also puzzled over the related issue of how complex some of Scala's function signatures are (or used to be; I know there's work on this) compared to equivalent Haskell functions. It seems to me DeGoes is arguing that Scala's "key value proposition" is a losing battle, because…

Why can't you work in Haskell?

There aren't many Haskell jobs where I live, I don't want to move, and it's unfeasible to suggest it at my (otherwise decent) job.

Re: The Last Hope for Scala's Infinity War [video]

#29

Earlier quoted context omitted.

Partial application of functions is fine. Partial functions would be disallowed. Here's a function that is only partial, because it can throw an exception instead of returning a value when b is zero: def divide(a: Int, b: Int): Int = a / b Here's a total function to accomplish the same basic goal: def divide(a: Int, b: Int): Try[Int] = Try(a / b) This function always returns a value of the type it's declared to retur…

Thanks for that clarification. I had googled for "partial function vs currying", which led me to results for "partial function application", which was really about partial application of functions, not partial functions. :-/ I swear, probably 80% of my problems in professional life are from overloaded terms.

By "overloaded", do you mean "having multiple definitions"? Or do you mean "carrying too much weight"?

;-)

Re: The Last Hope for Scala's Infinity War [video]

#30
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.

Post reply on HN