10 ms·
> but I never get the sense that they fit into an overarching strategy for how my life will be made easier by using Haskell. I would add that the elitist signa
by rumanator 7y ago
> but I never get the sense that they fit into an overarching strategy for how my life will be made easier by using Haskell.
I would add that the elitist signaling that is rampant in functional programming in general and the Haskell community in particular is also not helpful.
- jstimpfle 7y agoAbsolutely. "I'm just not smart enough to use mainstream languages" - "In fact we both know you are very smart. But, as we've just learned, also not competent enough to hide your elitist signaling in subtlety".
- afarrell 7y agoWait, how is saying “I’m just not smart enough to X” elitist signaling? If I tell someone “I’m not smart enough to use php”, I’m admitting a weakness. I genuinely don’t have the mental capacity to keep details straight when using it. If I tried to use php for at a job, I’d move at such low velocity that I’d get PIP’d. Or like saying “I can’t write code without automated tests.” there are genuinely people who, if they try to write code without tests get stuck for hours and don’t know how to move forward. I’d think someone this is the same sentiment. I’m willing to believe that the Haskell community is elitist in other ways. But how is “I’m not smart enough to X.” An expression of that?
- jstimpfle 7y ago"My brain is 100% pure logic so I can't deal with the unholy messes of the unwashed masses. In fact I'm so smart that I didn't even notice that many many things are much harder to write in this language that requires you to think about unrelated math things, because I solve them for breakfast"
- afarrell 7y agoHow does "I'm not smart enough" turn into "I'm so smart"?
- jstimpfle 7y agoI didn't think it was that subtle, but different people have different sensors I guess.
- afarrell 7y agoIt doesn't seem subtle. It seems like a dramatic transmutation from one meaning ("I have a need") into another totally different meaning ("other people are less worthy of respect").
- jstimpfle 7y agoI don't know, if you say "I'm just not smart enough" as a mathematician that is more interested in Functors and Monads and Yonedas than solving actual engineering problems, then there is definitely deception and signaling going on. IMO.
- afarrell 7y agoSo, I agree that it is totally possible and maybe common for someone to ignore the business impact of their work. More engineers should read https://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/ https://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-pr... and understand that ultimately their role in their organisation is to Cut Costs/Risks or Grow Revenue/Impact. But being having a commercial or UX mindset doesn't make your brain more effective at using any given tool. Imagine a programmer who, when she studies Haskell, discovers that the way it resembles category theory provides really effective mental affordances to her memory. She feels that Haskell's formalism makes it easier for her to have a clear mental model. When she writes and reads Haskell, she can predict what that code does to data and her predictions are largely correct. She feels confident in her understanding. This means that if she has a business goal she needs to fulfil, she's confident she can estimate that task, communicate about with stakeholders its complexity. and execute it. Imagine that this programmer, when she starts to study PHP, does not find similar affordances. She finds it difficult to build a conceptual structure of it in her head. She finds that she forgets things or overlooks things when she tries to write PHP. If she tries to predict how a piece of code she writes in it behaves, she frequently is wrong. She feels very nervous about it. Consequently, when asked to plan adding a feature to a PHP task, she doesn't feel she's got a good enough grasp of her tools to answer. She worries about the risk to the business of her blowing past estimates and leaving making errors in production. She tells someone "I don't think I'm smart enough to write PHP". 1) Is this statement a lie? 2) Is this statement elitist? 3) Is she a person who could exist? What if her positive feelings about Haskell lead her to evangelise it in a way that ignores the fact that another person's brain might work in a different way to hers. She claims to this other person that Haskell is easy. 4) Does that statement make her elitist? ----- My answers: No, No, Yes, Kinda yea.
- chii 7y ago"My coding practises are so good, I can't even write it the bad way anymore."
- z3phyr 7y agoYeah, the elitist attitude around the language is a shame. Haskell is actually pretty easy to learn and teach, and is very useful in certain domains. Functional programming is just one of the paradigms, and useful in it's own domain. Its not a end all solution to everything.
- raverbashing 7y agoI guess that's the main problem. And look, defining a problem functionally works great on 10% of the cases, but it complicates some 40% of other cases (very imprecise numbers). The world is not functional, as it turns out. And a lot of those cases where you can write functionally don't gain much from a performance or correctness perspective compared to the procedural version
- yakshaving_jgt 7y ago> The world is not functional What does this even mean? If the world is not functional, then what is it? Is the world procedural? And what world are we talking about? Our planet, physically? Are you then discounting the worlds of mathematics and logic? You don’t gain performance? What performance? Program execution speed? Development pace and time to market? Compared to the procedural version? Is your view that procedural programming is inherently better — for any definition of the word — regardless of context? Would SQL queries be easier to write if we told the query planner what to do? Is the entire field of logic programming — and by extension expert systems and AI — just a big waste of time? So many vague aphorisms which do nothing to further the debate. And Haskellers are the ones getting called “elitist”!
- raverbashing 7y agoIt's not vague, processors are still procedural. Network, disk, terminals, they all have side effects. Memory and disk are limited. SQL queries are exactly one of those cases where functional expression of a problem outperforms the procedural expression, and that's why they're used where it matters.
- yakshaving_jgt 7y agoAre you suggesting functional programming is somehow so resource intensive that it is impractical to use? Or that functional programming makes effectful work impractical? Because neither of those are true. You’ve conceded that SQL queries are one case where a functional approach is more ergonomic (after first asserting that the world is not functional, whatever that means). Why aren’t there other cases? Are you sure there aren’t other cases? One could argue that a functional approach maps more practically and ergonomically for the majority of general programming work than other mainstream approach.
- atemerev 7y agoThis is what has killed Scala. It was a fine pragmatic hybrid language which perfectly combined FP and OOP. Now it is attacked by hordes of type astronauts which will look down to you if you are not using Tagless Final, Cats, or whatever new fad is now in vogue.
- sideeffffect 7y agoIf you (or anybody else) haven't given up on Scala just yet, have a look at ZIO https://github.com/zio/zio/ https://github.com/zio/zio/ It's a fresh, and pragmatic too, take on how to do pure functional programming, but without advanced concepts (like higher-kinded types). could be (and maybe even has been) ported over to other languages besides Scala
- atemerev 7y agoYes, Zio is really interesting. Unfortunately, its author has been recently outed from the community for political reasons (and there is too much drama in Scala community in general). I only hope that the dust will settle someday.
- pjmlp 7y agoJust wait to see where it will take Kotlin with its Scala refugees. https://arrow-kt.io/ https://arrow-kt.io/
- flavio81 7y ago
- ShinTakuya 7y agoAs a counterpoint when wanting to promote any of the "new wave" (even though Haskell isn't new) languages like Haskell, Go, or Rust for certain use cases it's become too common lately for people to dismiss it as evangelism (or indeed, elitism), and that is also unfortunate in my opinion.
- dooglius 7y agoI never got a sense of evangelism or elitism from Go advocates
- tluyben2 7y agoReally? Read /r/programmingcirclejerk which is mostly about Rust/Go these days. I feel both strong evangelism and elitism from the threads ridiculed on PCJ for that reason. Many originate on HN.
- ummonk 7y agoYeah, they don't need to evangelize it, they just have the critical mass to use it everywhere and the rest of us have to deal with their garbage.
- xfer 7y agoReally? Might i ask which places are you visiting, where you see this behaviour? I have rarely seen elitist behaviour in r/haskell or freenode #haskell. Mostly i see people complaining about eliticism on HN.
- 08-15 7y agoGP complains that nobody can explain to him why he should switch to Haskell, but when somebody tries, that's "elitist signaling"?! You know what, use whatever makes you happy, while we continue to avoid success at all cost.
- AnimalMuppet 7y agoIt depends on how it's done. If the explanation is "Because strongly-typed FP is the One Right Way, and you're stupid to use anything else", that's elitist signalling. If it's "because these certain kinds of errors simply go away, without other kinds of errors becoming more common", then it's not.