Live data from Hacker News

Typelevel Scala

github.com

31–40 of 57 posts

Re: Typelevel Scala

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

> Official Scala documentation never even mentions the word "monad"

By coincidence, I was reading the official guide to Futures yesterday: http://docs.scala-lang.org/overviews/core/futures.html

And was (pleasantly) surprised to find that it contains the sentence "Try[T] is similar to Option[T] or Either[T, S], in that it is a monad potentially holding a value of some type" as well as a later reference to "monadic operations without side-effects".

Re: Typelevel Scala

#32

Earlier quoted context omitted.

> And really, the strangest things happens when you don't talk about it. You still have for comprehensions, but surprise, they don't behave like in Python, "yield" is again overloaded, having nothing to do with Python's yield or Ruby's yield, and people stumble for no good reason, because it is hard to connect what seems like syntactic sugar over iterators to an expansion using map and flatMap. Along with "computatio…

> done a far better job than Haskell at explaining Monads [..] the elitist sounding language For fucks sakes, nobody invents words like "monad" to sound elitist.

http://stackoverflow.com/questions/3870088/a-monad-is-just-a...

Re: Typelevel Scala

#33
post #10

Earlier quoted context omitted.

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.

Scala is a really great OO language, enabling very useful statically typed mixin compositions that you won't find in any other language. Uunfortunately, the vocal side of the community is very much anti OOP, so you don't hear about them much, but it is still there.

Re: Typelevel Scala

#34
post #24

Earlier quoted context omitted.

This isn't as bad as it looks. Think of it like an additional experimental scalac that is more ready to integrate into mainline scala than Dotty is. I'm fully on board with you...I think Scalaz as a library is a virus, and it's community is toxic, and it's desperate desire to turn Scala into Haskell ends up turning an awesome ML-inspired language into a vastly inferior religious (...ahem, pure ) language. But Cats an…

You happen to think the most popular scala library is a virus? We use it extensively at Verizon, and it exists just fine with 'impure' code, Akka code, or whatever else various teams decide to also pull in. Codebases that don't use Scalaz end up re-inventing it, usually in a more buggy way and at a waste of developer effort. Reinventing is fine on your own for a learning exercise and I certainly did it a few times, b…

I'll be so happy when scalaz has finally gone the way of Lift.

Re: Typelevel Scala

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

This isn't as bad as it looks. Think of it like an additional experimental scalac that is more ready to integrate into mainline scala than Dotty is. I'm fully on board with you...I think Scalaz as a library is a virus, and it's community is toxic, and it's desperate desire to turn Scala into Haskell ends up turning an awesome ML-inspired language into a vastly inferior religious (...ahem, pure ) language. But Cats an…

How are Cats and Scalaz different? I haven't played with Cats lately, but last I looked it was just a reimplementation of Scalaz.

Typelevel didn't even want to fork Scalaz to begin with. That was only their plan B, plan A was to take over the community with code of conduct/social justice shenanigans, and then expel people they didn't like. The fork is just what they came up with after dibblegate failed.

Re: Typelevel Scala

#36

Earlier quoted context omitted.

This isn't as bad as it looks. Think of it like an additional experimental scalac that is more ready to integrate into mainline scala than Dotty is. I'm fully on board with you...I think Scalaz as a library is a virus, and it's community is toxic, and it's desperate desire to turn Scala into Haskell ends up turning an awesome ML-inspired language into a vastly inferior religious (...ahem, pure ) language. But Cats an…

How are Cats and Scalaz different? I haven't played with Cats lately, but last I looked it was just a reimplementation of Scalaz. Typelevel didn't even want to fork Scalaz to begin with. That was only their plan B, plan A was to take over the community with code of conduct/social justice shenanigans, and then expel people they didn't like. The fork is just what they came up with after dibblegate failed.

This desperate rewriting of history is one if the reasons why large parts of the Scala community are happy to get rid of these nutjobs.

They need to move their lazy asses to Haskell and start fixing and implementing the tooling there instead of enjoying their free ride in Scala while constantly shitting on the language and its community.

Re: Typelevel Scala

#37

Earlier quoted context omitted.

> done a far better job than Haskell at explaining Monads [..] the elitist sounding language For fucks sakes, nobody invents words like "monad" to sound elitist.

http://stackoverflow.com/questions/3870088/a-monad-is-just-a...

The link you provided contains two precise definitions of the term "monad" in the responses (one which includes the source of the "a monad in X is just a monoid in the category of endofunctors of X" quote). Was it your intent to support @infinity0's premise that words like "monad" are not elitist?

If so, well done!

If not, then I humbly ask why is a term such as monad qualified as elitist, yet terms such as Abstract Syntax Tree[0], Big O notation[1], and Turing complete[2] are not?

All four of these have in common precise definitions.

All four of these have in common applicability when considering the domain each address.

All four of these have in common their existence in programming even when not directly considered by those writing software.

0 - https://en.wikipedia.org/wiki/Abstract_syntax_tree

1 - https://en.wikipedia.org/wiki/Big_O_notation

2 - https://en.wikipedia.org/wiki/Turing_completeness

Re: Typelevel Scala

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

> its essence just because we're afraid of big words and the opinions of experts.

I think most of the distaste for terms like Monad, is a failure to communicate it's meaning to a lot of people, it reminds me a lot of Enterprise Java terminology with terms like factories, abstract/factories, Bean, ect, that provide just as much intuition into their own meanings from their names. And when you look up their meanings you get hit with even more obtuse terminology. Like for example a in a less formal discussion about programming, a term like "pure functions", can simply described as "stateless function" [1]. You don't need to automatically reach for the big words, when a more commonly understood word sufficiently communicates something. Unfortunately I'm not so sure there's such a word for monad however.

In the case of Elm, it has this approach to naming things with less formal names where it can use something more comprehensible. The author of the Elm language mentions this in a talk of his [1] (just scroll to the section on being direct).

I really see this more as a communication issue, not everyone in software has a duel degree in abstract mathematics & computer science, let alone a degree.

[1]: http://www.elmbark.com/2016/03/16/mainstream-elm-user-focuse...

Re: Typelevel Scala

#39

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

Related discussion: Policy – A fork of the Scala compiler [0]

[0] https://news.ycombinator.com/item?id=8276565

Re: Typelevel Scala

#40
post #38
post #8

Earlier quoted context omitted.

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. > its essence just because we're afraid of big words and the opinions of experts. I think most of the distaste for terms like Monad, is a failure to communicate it's meaning to a lot of people, it reminds me a lot of Enterprise Java terminology with terms like factories, abstract/factories, Bean, ec…

The mathematical terminology that you dislike has already been well established and well defined after decades of use in many formal publications. It will probably be continued to be used for hundreds of years. In no way is "Enterprise Java Beans" analogous.
Post reply on HN