Hacker News new | ask | show | jobs
by AtlasBarfed 2472 days ago
This opinion is flameworthy and stereotypes heavily: what seems to happen in FP is that the overall community is substantially math-IQ smarter than the imperative languages. Alas, that ALSO means the overall community loses social-IQ in the process.

This leads to:

1) higher barrier to entry for the general programmers, in language semantics, documentation, examples...

2) a tendency to overabstract, underdocument, and write clever code

3) write code that is obvious to the person who wrote it (at least for a few months), but being CODE is tougher for people to unpack.

4) people don't collaborate in packages, so they tend to be single-hero projects that are abandoned, and since FP code is a bit harder to parse for typical programmers, don't get adopted/unorphaned. Thus the library code beyond the standard library gradually degrades.

5) I won't say that FP is the only domain of religious zealotry in language minutae (syntax, etc), but it does seem to have a higher proportion or much louder zealots.

I've been in the industry for 30 years, and while it could just be mental ossification of age, nothing seems to have changed since the usenet days with Scheme/LISP, despite the fact the toolchains are now free and downloadable, and despite some of the smartest people in the world preferring them.

The fact that Rust is gaining some momentum with its fairly alien memory management is yet another example to me that the IQ barrier of purer FP (no infix, lots of recursion, etc) is just too high to surmount.

5 comments

3) write code that is obvious to the person who wrote it (at least for a few months), but being CODE is tougher for people to unpack.

Exactly this.

> 3) write code that is obvious to the person who wrote it (at least for a few months), but being CODE is tougher for people to unpack.

One could have a decent debate about much of what you say. This is the only one where I utterly object. The Haskell code I write is far easier to come back to months later than the Python code I write.

Maybe we just need to have more math training for people who want to become Computer Programmers.
That's kind of another aspect of the social-IQ divide.

Programming is very democratic and blue collar as white collar jobs go: you can get stuff done without a lot of formal education (OR the formal certification of (ahem) REAL engineering professions).

So either you ivory tower and sniff at the lower classes and use FP and higher tools, or you "get stuff done" actually making tools (like the dude who make the OSX package management getting stiffarmed by google).

The old CS vs no CS divide actually fissures quite dramatically in alignment with FP vs no FP.

I suck at more advanced math. I am simply not able to grasp it. However I am very good at logic and systems thinking, which makes me a good programmer for certain kind of tasks, provided I can use imperative programming. Force me to use functional programming (like my current Angular/RXJs assignment) and I'm a lousy programmer.
This deserves a blog post of it's own. You are on to something here that needs to be acknowledged!
Opinions only backed by ~"I know due to my experience" but nothing else are not even "flameworthy".
And this opinion is backed by your experience?
No, by basic rules of intellectual intercourse.