Why isn't Functional Programming the Norm? - Richard Feldman

Continuing the discussion from Elm-pages: A statically typed site generator:

@AstonJ asked me to create a thread to discuss this great talk from Richard Feldman (watch the whole thing, it’s totally worth it):

So what’s your take on his arguments? Do you think he has a point? And do you think is conclusion - that functional programming is indeed becoming more prevalent - is correct?

1 Like

Corresponding tweet for this thread:

1 Like

This was a great talk and it was really interesting hearing about the history of some of the languages he talked about and why he thinks some might have been successful and others not.

My own thoughts about the success of languages boils down to how satisfied people are when using them - and that criteria can change depending on the language and circumstances it is (or has to be) used for.

Javascript. How did satisfaction lead to its popularity? To begin with people didn’t really like JS at all! It’s only when it became the only way to do certain things in the browser that it took off - people were satisfied because it allowed them to do things that couldn’t be done in any other language (as no other language could be used in the browser like JS could). Would Javascript be as popular today if you could have used Ruby or Python or other languages instead? I would think unlikely.

Ruby. Ruby is a great example of a successful language used out of choice. The criteria for satisfaction here is different, and I think this is where it gets interesting and this is where language creators need to pay more attention - by asking themselves why some people are more satisfied when using one language over another. Probably too big of a topic to go into here but most of us have ideas why language such as Ruby are some of the most loved languages around.

Python. Python shares much of the satisfaction level with Ruby (originally people chose to use it), but over time it has also some of Javascript’s advantages - that it’s much easier to do some things with Python - because so many others are already doing it with that language, meaning the tooling is better than in other languages (machine learning etc) which means it’s more satisfying to use in those areas.

Satisfaction

Sometimes people will need a highly concurrent solution - some languages excel here more than others and how well they do it impacts that satisfaction level. Other times people need a super fast language and again how fast they are impacts that satisfaction level. But there always has to be some sort of balance in the level of satisfaction - being the fasted language out there would not be much good if it was near impossible or just too difficult to use. So there has to be a balance.

Functional Programming

So bringing this back to functional programming - why isn’t it the norm and what can proponents of functional languages do to help make them more popular?

  1. I think it’s as simple as this: if somebody doesn’t need to use a functional language - then you need to target satisfaction criteria centred around choice (syntax, ease of use, killer tools/libraries, fun - or a combination of all those or anything else that would make someone want to use the language).

  2. If the language is being used as more of a necessity - then keep improving in those areas to keep you being a prominent choice in that space but start focusing on some of the other satisfaction criteria too - and definitely don’t become complacent - other languages won’t be standing still and while you may have little competition in your particular area right now, chances are that advantage is only temporary.


These are just my initial thoughts and could definitely do with some refinement, but curious as to what others think too.

1 Like