Live data from Hacker News

Typelevel Scala

github.com

11–20 of 57 posts

Re: Typelevel Scala

#11
post #8
post #3

I am not happy about it. Typelevel projects are just porting the style familiar to Haskell programmers to Scala, and a full fork to accomodate this style seems to be an overkill. I know, many people are happy to go full throttle on Cats/Scalaz/whatever, but there's already Haskell for that. Official Scala documentation never even mentions the word "monad" (not even once!), and I think this is a good thing.

The Typelevel Scala is nothing more than a branch on which experiments can happen before pull requests are made in the main branch. The people involved have already contributed fixes, like the following by Miles Sabin, which is huge and will make Scala much better: https://github.com/scala/scala/pull/5102 - so basically we've got here a bunch of people that are extremely productive, working for free for the bettermen…

> This is basically anti-intellectualism, the same kind of attitude that made Trump popular and that encouraged Brexit. The same kind of attitude that made the Option type in Java violate the Functor laws

Didn't really expect that, but bravo, I suppose!

Re: Typelevel Scala

#12
post #3

I am not happy about it. Typelevel projects are just porting the style familiar to Haskell programmers to Scala, and a full fork to accomodate this style seems to be an overkill. I know, many people are happy to go full throttle on Cats/Scalaz/whatever, but there's already Haskell for that. Official Scala documentation never even mentions the word "monad" (not even once!), and I think this is a good thing.

Yes, please stop trying to make Scala Haskell. And please start switching to Haskell :)

Scala has jokingly been called Hascalator [1], but not everyone who is "ready" to make the leap to Haskell can actually do it (existing work tied to JVM, dependencies on JVM libraries, etc.) or wants to do it (better ability to reason about resource usage, familiarity with tooling, etc.).

[1] https://twitter.com/yakticus/status/577663763991564288

Re: Typelevel Scala

#13
post #9

Are future versions of cats going to require the typelevel scala?

No. I don't believe so. Think of Typelevel Scala as a tool to help people test out improvements to Scala as a whole, not as something that is going to deviate significantly from Lightbend Scala.

Re: Typelevel Scala

#14
post #3

I am not happy about it. Typelevel projects are just porting the style familiar to Haskell programmers to Scala, and a full fork to accomodate this style seems to be an overkill. I know, many people are happy to go full throttle on Cats/Scalaz/whatever, but there's already Haskell for that. Official Scala documentation never even mentions the word "monad" (not even once!), and I think this is a good thing.

While it doesn't mention monad, for comprehensions are first-class support for them. Whether or not you can get over the use of the word. What else are you going to call F[_], bind, and point???

I guess you could just call F[_] a monoid in the category of endofunctors of F[_]...

Re: Typelevel Scala

#15
post #8
post #3

I am not happy about it. Typelevel projects are just porting the style familiar to Haskell programmers to Scala, and a full fork to accomodate this style seems to be an overkill. I know, many people are happy to go full throttle on Cats/Scalaz/whatever, but there's already Haskell for that. Official Scala documentation never even mentions the word "monad" (not even once!), and I think this is a good thing.

The Typelevel Scala is nothing more than a branch on which experiments can happen before pull requests are made in the main branch. The people involved have already contributed fixes, like the following by Miles Sabin, which is huge and will make Scala much better: https://github.com/scala/scala/pull/5102 - so basically we've got here a bunch of people that are extremely productive, working for free for the bettermen…

I am not afraid of big words, I did some research on implicit parallelization with arrows. :) But Scala is a hybrid pragmatic functional language, not aspiring to some advanced type research (except in FP-OOP interop). Even typeclasses, while working, are somewhat a hack in Scala. Why not use more appropriate languages for research and leave Scala to be good where it excels?

Re: Typelevel Scala

#17
post #3

I am not happy about it. Typelevel projects are just porting the style familiar to Haskell programmers to Scala, and a full fork to accomodate this style seems to be an overkill. I know, many people are happy to go full throttle on Cats/Scalaz/whatever, but there's already Haskell for that. Official Scala documentation never even mentions the word "monad" (not even once!), and I think this is a good thing.

Yes, please stop trying to make Scala Haskell. And please start switching to Haskell :)

I do write in Haskell where it is appropriate (for fun, or if I want to prototype some complex domain model). Otherwise, I am quite happy with Scala. :)

Re: Typelevel Scala

#18

Well, it's not the first time people try to steer Scala to a different direction. Paul Phillips for instance, after many complaints on the direction the language was going, forked Scala (but now his fork is largely abandoned). https://github.com/paulp/policy

Was he trying to fork the language or the compiler? I thought he wanted a better (by his metrics) compiler for the same language. Did I misunderstand his intent way-back-when this was a thing?

Re: Typelevel Scala

#19
post #10
post #3

I am not happy about it. Typelevel projects are just porting the style familiar to Haskell programmers to Scala, and a full fork to accomodate this style seems to be an overkill. I know, many people are happy to go full throttle on Cats/Scalaz/whatever, but there's already Haskell for that. Official Scala documentation never even mentions the word "monad" (not even once!), and I think this is a good thing.

Well one of the confusions I think early on (or at least professed confusion on Lambda the Ultimate IIRC) is that Scala is mixed paradigm and that adds additional load for learning. Some feel it should go full FP (what I mean by that is really discourage OOP, side effects, etc...). There is some valid arguments as Rust and Haskell might end up being an easier language to master as you can completely avoid the OOP con…

OOP hate is common these days, but I always has been an OOP enthusiast. I used to write in Smalltalk, I implemented a few metaobject protocols of my own, and I think OOP had deserves its success (unfortunately, C++/Java is not really OOP... However, some principles still apply).

So, when a language appeared to combine the best ideas from FP and OOP, I happily embraced it. And I want it to stay this way.

Re: Typelevel Scala

#20
post #3

I am not happy about it. Typelevel projects are just porting the style familiar to Haskell programmers to Scala, and a full fork to accomodate this style seems to be an overkill. I know, many people are happy to go full throttle on Cats/Scalaz/whatever, but there's already Haskell for that. Official Scala documentation never even mentions the word "monad" (not even once!), and I think this is a good thing.

I might be missing something, but can't you just choose not to use it? For those using Scala who are interested in access to more advanced functional programming techniques, or using libraries that are written with a more "mathy" bent, this seems like a good thing. For those who'd prefer to never have to read the word "monad", just use something else.

But I am happy with Scala as it is. Why should I use something else? I, of course, know what a monad is, but I do not exactly care. For me, expressiveness is much more important than purity.

I even use vars where it is appropriate! :)

Post reply on HN