Liberty vs. safety in programming (originally posted around 2012)
My colleague, Michal Jakob, wrote:
An old piece but still topical — finally time to move beyond Java? Execution in the Kingdom of Nouns
My late night reaction:
From the other side of Haskellia, Ocamlica, Schemeria, people sooner or later face problems related to something like The Lisp Curse:
Lisp is so powerful that problems which are technical issues in other programming languages are social issues in Lisp.
In other words, the fact that people has to struggle in Java with those chains and obstacles resulting from the design of the language bind them together socially (maybe it is just another facet of Worse is Better). They are building design patterns for all that factories, managers, and executors which everyone can understand after not too long and hard studies. There are certificates that you know well the obstacles. Young programmers can use them as a kind of guide-lines how to work “well” and it helps them to feel they are “good programmers” rather quickly. And last but not least, it gives that pleasant (fake) feeling you are doing a lot of work even if you are only stumbling over the language itself. In Haskell/Lisp-like languages, it takes a hell of a time to be an average programmer and the good ones need god-like abilities. Of course then, the language repays with god-like powers (which usually only a few other god-like programmers can understand and value; Mark Tarver and his Shen is a nice example).
Maybe this is something well-known to sociologists or politologists, a some kind of deeper principle for groups of people. It seems to me that something quite similar is the cause why all working societies (I know of) are much more authoritarian than libertarian.
And of course, I am not saying Java should not be more open to functional concepts. Actually, ~8 years after the Kingdom of Nouns, we’ve got lambdas in Java 8.