4 ms·
Give up while you can. Immutable data classes and functional pipelines are great, everything else isn't worth it. Lots of people say FP is amazing but very few
by rb808 6y ago
Give up while you can. Immutable data classes and functional pipelines are great, everything else isn't worth it. Lots of people say FP is amazing but very few people use it in the real world because like you say, its unintelligible.
- centimeter 6y agoThis comment is a textbook example of the Blub Paradox.
- dllthomas 6y agoI had a very visceral experience of Blub in my formative years. I don't recall how old I was, certainly under 11. I was explaining to my father the many things I could do in LOGO, and he asked about arrays. LOGO supports arrays, of course, but it was beyond anything I'd dealt with. I remember that feeling of entirely not understanding why you'd want to bother with arrays instead of just making more variables.
- centimeter 6y agoI had a similar experience also at age 11 - I was learning C++ to solve my math homework problems. I heard about Python, tried it out, and went on IRC to ask how I could write "goto" statements in Python. I couldn't believe it when people told me they weren't necessary, and linked "Go To Considered Harmful"!
- dllthomas 6y agoOh man, some of my LOGO programs had so many gotos.
- mLuby 6y agoThanks for introducing me to the Blurb Paradox! Though on first glance, doesn't it suggest that all programming features are good, and only their absence is bad? St. Exupéry's idea of perfection would disagree.
- jolux 6y agoNo, because it is possible to add power without adding features. This is typically called generality. In fact, adding features really can’t do much to change how fundamentally expressive a language is.
- rb808 6y agoYou're welcome. I like to think its more than that though. I recognize Spark as FP built app but its a rarity among thousands of large mainstream applications. Do you have many non-trivial examples of applications written in a functional style?
- AnimalMuppet 6y agoFor the record, the Blub Paradox is wrong. It hinges on being able to rank computer languages on a one-dimensional axis labeled "power". It turns out that you can't actually do that. For example, the Lisp people are sure they're looking down when they look at Haskell - no macros. But the Haskell people are also sure they're looking down when they look at Lisp - no decent type system. But if they're both looking down at the other, that's kind of a problem for the Blub Paradox. Here's the other problem with it: I don't care about "power" in languages in any platonic sense; I care about power to write the specific program I'm trying to write. That includes the language's expressiveness, sure, but it also includes available libraries and the rest of the ecosystem, tutorials if there's parts I have to learn, the ability to find others who are proficient if the program is big enough to need a team, and so on. The power to write my specific program depends on the problem, not just on the language.
- centimeter 6y agoI think both Lispers and Haskellers would be willing to agree that they're both more powerful on most axes than, say, Java.
- searchableguy 6y agoI am not sure. Approximately 5-10% of of tools I interact with are written in Haskell. So I think you are wrong. Lot of webdev stuff is moving to functional paradigms. Lazy evaluation, streams/iterator pattern combined with map/reduce/filter (FRP). You can pick out any modern ui framework and you would be drowning in fp soon enough. Many attempts at building a functional language for web - purescript, elm, reasonml etc.
- triyambakam 6y agoI use FP everyday, but I'm not an academic and I couldn't tell you what a monad is. But I do know about closures, lambdas, filter, map, reduce, arity and other basic concepts. I prefer to write functions instead of classes (JS/TS). So I'm not a wizard, but FP is helpful even at an elementary level