Will I regret Functional programming?

(written by lawrence krubner, however indented passages are often quotes). You can contact lawrence at: lawrence@krubner.com, or follow me on Twitter.

I’ve spent the last year writing negative things about Object Oriented Programming, and I’ve been among the many people arguing that Functional Programming is the future. And I’ve talked about the political forces that drove the adoption of Object Oriented Programming. But that does raise the issue, what political forces are driving the adoption of Functional Programming? One possible answer is “None” and that would explain why Functional Programming remains a small niche compared to Object Oriented Programming. Another is that Functional Programming is mere pragmatism in the face of servers that have multiple CPUs. Another answer might be that there are changes in corporate bureaucracy that make Object Oriented Programming less necessary.

Of the politics, I previously wrote:

And there is an explicitly political idea that drove OOP to its peak in the 1990s: the idea of outsourcing. The idea of outsourcing software development rested on some assumptions about how software development should work, in particular the idea of the “genius” architect, backed by an army of morons who act as secretaries, taking dictation. OOP was the software equivalent of a trend that became common in manufacturing during the 1980s: design should stay in the USA while actual production should be sent to a 3rd World country. Working with UML diagrams, writing code could be reduced to mere grunt work, whereas the design of software could be handled by visionaries, possessed with epic imaginations, who could specify an OO hierarchy which could then be sent to India for a vast team to actually type out. And the teams in India (or Vietnam, or Romania, etc) were never trusted, they were assumed to be idiots, and so, for a moment, there was a strong market demand for a language that treated programmers like idiots, and so the stage was set for the emergence of Java.

. Facundoolano sums up the distrust that Java has for programmers:

Quoting Eckel: Java treats programmers like they are stupid, Python doesn’t.

Java design and libraries consistently make a huge effort making it difficult for a programmer to do bad things. If a feature was a potential means for a dumb programmer to make bad code, they would take away the feature altogether. And what’s worse, at times they even used it in the language implementation but prohibited the programmer to do so. Paul Graham remarkably pointed this out as a potential flaw of Java before actually trying the language:

Like the creators of sitcoms or junk food or package tours, Java’s designers were consciously designing a product for people not as smart as them.

For now, I seem amazed that smart people ever took Object Oriented Programming seriously. Will I ever feel the same way about Functional Programming? Or will Functional die a different death?

Source