Live data from Hacker News

Typelevel Scala

github.com

51–57 of 57 posts

Re: Typelevel Scala

#51

Earlier quoted context omitted.

It's not a rewriting of history. The dibblegate conflict occurred at the end of 2014. https://groups.google.com/forum/#!topic/scalaz/9X_putSGoCY https://groups.google.com/forum/#!searchin/scalaz/code$20of$... Calling Tony Morris a rapist was probably the highlight of the affair: https://twitter.com/shajra/status/544712807220908032 Up until they realized they couldn't take over the community, Lars Hupel and Miles Sabi…

I have no idea what you are even trying to argue. Why would they create cats while they still had hope to save scalaz from its community? No need to spin some crazy conspiracy. > you apparently dislike the people involved LOL WTF? That guy has single-handedly destroyed more than one community already. It's not like it's some unfortunate thing that accidentally happens. It has happened before, and will keep happening…

Can you let me which open source community you prefer? Clearly It's the more welcoming one.

Re: Typelevel Scala

#52

Earlier quoted context omitted.

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…

> 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? The preciseness of the definition has nothing to do with the perceived elitism. Plenty of precisely mathematically defined concepts, as you've illustrated, can be (and are) explained to people without ever needing a single glyph or axiom in the exp…

My interpretation of your analogy is that if there were a resource which presented monad-related concepts in a manner a working Scala programmer is likely to relate with, as opposed to theory laden texts, then the usefulness of these concepts might be better received in general.

Fair enough. So here is a book which does precisely that:

"Functional Programming in Scala" (ISBN-13: 978-1617290657)

The authors incrementally present FP concepts, including monads, in a very approachable style. I can say first hand that this book does not require a heavy mathematical background (off hand, I don't think there are any formal proofs in it).

Re: Typelevel Scala

#53
post #40
post #38

Earlier quoted context omitted.

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

> The mathematical terminology that you dislike

I'm actually indifferent to the terminology, having used my fair share of Haskell/ML/Lisp, but I can see how you came to that assumption.

> in many formal publications

I'm aware of this, but the thing with this is not everyone in software has a computer science background, let alone an academic background. I'm a freelancer at the moment, but if I used most of this terminology in my workplace people would be giving me wtf looks.

> In no way is "Enterprise Java Beans" analogous

How so? All I said formal names in mathematic/computer science, give next to intuition into their actual meaning & when you look up their meaning, most of the results are riddled with more terminology. Same kind of goes for a lot of the Jagon in Java enterprise stuff, like beans/services/factories/etc. I wasn't saying their exactly the same, but more I had a similar experience when trying to familiarise myself with that stuff.

Re: Typelevel Scala

#54
post #38

Earlier quoted context omitted.

> 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…

That Elm talk is really interesting. Tx. When it comes to Monad et al I'm reminded of this talk by Gilad Bracha. He points out that the function names and type names that stem from category theory are not very good at communicating their intent in programming. (my words) Monad could be named Flatmappable f.i. 'unit' and 'bind' can have more intuïtive names as well. At the moment I get the impression that as Scala is…

> He points out that the function names and type names that stem from category theory are not very good at communicating their intent in programming

This was my point exactly, also thanks for the link I'll have to checkout that talk :-)

Re: Typelevel Scala

#55
post #53
post #40

Earlier quoted context omitted.

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.

> The mathematical terminology that you dislike I'm actually indifferent to the terminology, having used my fair share of Haskell/ML/Lisp, but I can see how you came to that assumption. > in many formal publications I'm aware of this, but the thing with this is not everyone in software has a computer science background, let alone an academic background. I'm a freelancer at the moment, but if I used most of this termi…

The danger of "intuitive" names and analogies is that they often don't capture the generality of the abstraction and can limit ones thinking. The mathematical terms are useful and communicate precisely and unambiguously (e.g. if someone says X is a Functor then I assume the Functor laws are satisfied). Ignoring established terminology creates insular communities and creates confusion (e.g. a C++ Functor versus a mathematical Functor, C void versus type theory void). I agree that better books and learning resources are needed, but changing names is anti-intellectualism, IMHO.

Re: Typelevel Scala

#56
post #55
post #53

Earlier quoted context omitted.

> The mathematical terminology that you dislike I'm actually indifferent to the terminology, having used my fair share of Haskell/ML/Lisp, but I can see how you came to that assumption. > in many formal publications I'm aware of this, but the thing with this is not everyone in software has a computer science background, let alone an academic background. I'm a freelancer at the moment, but if I used most of this termi…

The danger of "intuitive" names and analogies is that they often don't capture the generality of the abstraction and can limit ones thinking. The mathematical terms are useful and communicate precisely and unambiguously (e.g. if someone says X is a Functor then I assume the Functor laws are satisfied). Ignoring established terminology creates insular communities and creates confusion (e.g. a C++ Functor versus a math…

> I agree that better books and learning resources are needed, but changing names is anti-intellectualism, IMHO

To clarify I'm not suggesting changing existing names in mathematics or existing APIs, I'm just suggesting in documentation / blog posts / educational stuff we should avoid using the more intimidating terminology if a simpler term convoys the message better, especially if the terminology gets in the way of educational material doing it's intended purpose.

Maybe this wouldn't be a problem if mathematic education content was more accessible, I don't know but at the moment I really don't think it is. Like it would nice to have a nice accessible book like "Category Theory in Python/JS" or something to refer people to... But I agree, changing names is anti-intellectualism

> The danger of "intuitive" names and analogies is that they often don't capture the generality of the abstraction and can limit ones thinking

I get that, & I feel in mathematics that is important, but in writing an API having slightly dishonest names is okay. Like a name like `flatMappable` vs' `Monad` even though not all Monad's work like a flatMap, but I get what you're saying new users might think monads are just a collections API thing, but maybe if they saw it on an Optional/Error/Promise/Async/etc this wouldn't be a problem, I don't know. Maybe it's a matter of establishing a culture where the use of these names like flatMap are first demonstrated with none collection types, again I don't know. I'm really just throwing ideas out there, but I feel it's something to consider.

Oh well, hopefully things improve

Re: Typelevel Scala

#57
post #38

Earlier quoted context omitted.

> 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…

That Elm talk is really interesting. Tx. When it comes to Monad et al I'm reminded of this talk by Gilad Bracha. He points out that the function names and type names that stem from category theory are not very good at communicating their intent in programming. (my words) Monad could be named Flatmappable f.i. 'unit' and 'bind' can have more intuïtive names as well. At the moment I get the impression that as Scala is…

I actually remembering seeing it at some point, this guy is a pretty great presenter, glad I watched it, Thanks again for the link. Now I remember I need to go and check out small talk to see what it's he's going on about.
Post reply on HN