6 ms·
> Haskell, at its core, is simple: it is just a polymorphic lambda calculus with lazy evaluation plus algebraic data types and type classes. No, it’s not, if y
by nudpiedo 7y ago
> Haskell, at its core, is simple: it is just a polymorphic lambda calculus with lazy evaluation plus algebraic data types and type classes.
No, it’s not, if you can say this sentence without laugh at it, it is because you developed a deep understanding about all the core concepts, meanings, semantics and most probably now you know how to exploit them for their appropriate usage to solve even more complex problems.
- tthisk 7y agoYes this quote got me cringing, these things are definitely not 'simple'. The post's title is also presumptuous. While Haskell is a brilliantly elegant language, by capturing abstractions at a high level (i.e. category theory). This is also it's fallacy, these abstraction are inherently hard to understand because, well, they are so abstract. When writing most software in the real world we need to be pragmatic to be able to recruit people to actually write that software. So will Haskell take over all software engineering, I don't think so. Fortunately we can, and are already learning a lot from ideas introduced by Haskell.
- UK-Al05 7y agoThey are simple, but not easy learn. Lambda calculus is simple. Incredibly simple. But trying use lamda calculus to do anything with is hard.
- Certhas 7y agoIt's simple as opposed to complex, not simple as opposed to difficult.
- nudpiedo 7y agoThree different areas of computer science, highly related to mathematics AND interrelated. Don’t you think these are not just difficult but also complex since all their rules are combined and compose?
- Certhas 7y agoI would put it like this: Haskell derives from (relatively) simple axioms/concepts that have a rich and complex interplay.
- nudpiedo 7y agoAnd such rich complex interplay isn’t exactly what makes things complex? Interplay plays as synonym for complex in that sentence. Any complex system could be broke down in simple axioms and some concepts and still be complex. By the way I got severely downvoted for an opinion on what is complex and you were the only one open for speak. Thank you for making a better HN somehow.
- Certhas 7y ago"Any complex system could be broke down in simple axioms and some concepts." This is the crux, I don't think that's generally speaking true. I don't think Java and C++ could be broken down into a few simple axioms and concepts in the way Haskell can. Think design by committee, where you often end up with hundreds of concepts and behaviours. Happy to talk.
- nudpiedo 7y agoJava can do it for sure (at least it was originally thought to be this way). With C++ I think you really found the exception that makes the rule since it was built by adding features on top of features without end or direction. I can agree that there are systems which behave with more elegance than others, with fewer exceptions and principles and more regular moving parts, with reciprocal rules or consistent approaches, for example Java on its origins what sort of simple. Now it is more a mess than ever before.