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

New
andresriveros
Every other year since 2009, Planet Argon collects information to know the state of RoR community and trends. Previous results: If you...
New
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
AstonJ
…like say the pharmaceutical industry? Perhaps stemming from reports of Facebook carrying out psychological studies on its users without...
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
Free and open source software is the default choice for the technologies that run our world, and it’s built and maintained by people like...
New
AstonJ
Or looking forward to? :nerd_face:
503 15149 280
New
DevotionGeo
I know that -t flag is used along with -i flag for getting an interactive shell. But I cannot digest what the man page for docker run com...
New
dimitarvp
Small essay with thoughts on macOS vs. Linux: I know @Exadra37 is just waiting around the corner to scream at me “I TOLD YOU SO!!!” but I...
New
PragmaticBookshelf
Use WebRTC to build web applications that stream media and data in real time directly from one user to another, all in the browser. ...
New
AstonJ
If you’re getting errors like this: psql: error: connection to server on socket “/tmp/.s.PGSQL.5432” failed: No such file or directory ...
New
PragmaticBookshelf
Escape callback hell and ship fast, clean code that reads as smoothly as it runs. Squash bugs and stamp out memory leaks with an intuitiv...
New
mindriot
Ok, well here are some thoughts and opinions on some of the ergonomic keyboards I have, I guess like mini review of each that I use enoug...
New
xiji2646-netizen
Woke up to this today: Claude Code’s complete source code exposed via npm source map. Not a snippet. All 512,000 lines. 1,900 TypeScript ...
New