wolf4earth

wolf4earth

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?

Most Liked

AstonJ

AstonJ

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.

Where Next?

Popular General Dev topics Top

Jase
Why does it have to take users screaming to get stuff like this fixed ESP when a service say " Tired of being tracked online? We can help...
New
AstonJ
This is fantastic! On Thursday, Twitter’s engineering division tweeted out a set of words that it wants “to move away from using in f...
New
New
AstonJ
…like say the pharmaceutical industry? Perhaps stemming from reports of Facebook carrying out psychological studies on its users without...
New
AstonJ
What can the industry do to be more green? We use carbon-neutral servers here, but it’s still not quite enough. Is there anything out t...
New
AstonJ
Inspired by the Bletchley Park thread, I was wondering what each of our countries may be famous for in computing. Perhaps a language was...
New
wolf4earth
Continuing the discussion from Elm-pages: A statically typed site generator: @AstonJ asked me to create a thread to discuss this great t...
New
AstonJ
Just noticed this on Apple’s homepage: This image highlights quite a good case for miniaturisation of tech - smaller hardware means...
New
First poster: bot
Social media has drastically restructured the way we communicate in an incredibly short period of time. We can discover, “Like,” click on...
New
ggarnier
I just finished reading “Effective Remote Work”, and I really liked! But one thing I disagree is when the author calls the Covid-19 pande...
New

Other popular topics Top

Devtalk
Reading something? Working on something? Planning something? Changing jobs even!? If you’re up for sharing, please let us know what you’...
1063 24245 395
New
PragmaticBookshelf
Machine learning can be intimidating, with its reliance on math and algorithms that most programmers don't encounter in their regular wor...
New
Exadra37
Please tell us what is your preferred monitor setup for programming(not gaming) and why you have chosen it. Does your monitor have eye p...
New
New
AstonJ
Do the test and post your score :nerd_face: :keyboard: If possible, please add info such as the keyboard you’re using, the layout (Qw...
New
PragmaticBookshelf
Learn different ways of writing concurrent code in Elixir and increase your application's performance, without sacrificing scalability or...
New
Maartz
Hi folks, I don’t know if I saw this here but, here’s a new programming language, called Roc Reminds me a bit of Elm and thus Haskell. ...
New
PragmaticBookshelf
Author Spotlight Mike Riley @mriley This month, we turn the spotlight on Mike Riley, author of Portable Python Projects. Mike’s book ...
New
PragmaticBookshelf
Author Spotlight: Peter Ullrich @PJUllrich Data is at the core of every business, but it is useless if nobody can access and analyze ...
New
PragmaticBookshelf
Explore the power of Ash Framework by modeling and building the domain for a real-world web application. Rebecca Le @sevenseacat and ...
New