Why Isn't Functional Programming the Norm? – Richard Feldman

preview_player
Показать описание
Richard is a member of the Elm core team, the author of Elm in Action from Manning Publications, and the instructor for the Intro to Elm and Advanced Elm courses on Frontend Masters. He's been writing Elm since 2014, and is the maintainer of several open-source Elm packages including elm-test and elm-css packages.
Рекомендации по теме
Комментарии
Автор

As a system developer, I ask myself this question all the time. After all, most of the code I work with is either dysfunctional or non-functional.

praktexemplar
Автор

Why Isn't Functional Programming the Norm? Because when someone wants to talk about FP they spend all their time speaking about OOP.

stevenreddie
Автор

A simple answer: Because most programs (games, editors, browsers, etc.) are basically *state machines* (not simple "computations"). They therefore fit the old imperative modell better, and without all the complexities of handling state in functional languages. Pure functions sure have their places though, but as local structural elements in that mainly imperative code, not as a dogma. (Regarless of whether you use any OO or not.)

herrfriberger
Автор

The title should be “rough overview of the history of programming languages”

ryanfranz
Автор

Because there are lots of arguments.
That's a pun, by the way.

feraudyh
Автор

Python also had a killer app in the last years: ML and AI in general. It worked out for them to jump on this train early and become the defacto standard language for this usage.

urbaniv
Автор

I wish he spent even a fraction of time on explaining how FP is good or how it helps and is worth using

Themerp
Автор

You can use OO and FP at different granularity. Use OO modeling to find the right places in your application to put boundaries. Use FP techniques within those boundaries.

USONOFAV
Автор

You missed the main point why the top 10 is how it is - all languages there **hybrid**. They are not obsessed with style purity but rather pragmatically adding what users wanted.
OO was just a popular style at that time, so languages got some features supporting that style, some more, like Java and C++, some much less, like JS or Go.
With languages it is like with sales - you sell what users want, sometimes with some help of paid or coincidental marketing; you do it consistently over longer period of time, and voila - language is popular! No magic in there. I suspect that relative failure in of pure FP languages proliferation is exactly because of their purity. Arguably most successful FP is Scala - a multi paradigm language by their own definition. I would predict that FP languages impact will remain only indirect - by inspiring the mainstream hybrid languages. When they absorb enough FP features, and you can program in them FP style with ease, there would be hardly a rational reason to switch to any pure FP language for any project.

januhlir
Автор

00:00:27 Richard Feldman: Why are things the way they are? It's complicated.
00:00:53 Richard Feldman: Outline
00:00:59 Richard Feldman: Part 1. Language
00:01:01 Richard Feldman: What languages are norm today. Top 10. No functional programming language.
00:01:42 Richard Feldman: How did they get popular.
00:02:05 Richard Feldman: 1. Killer apps. VisiCal to Apple II/Rails to Ruby/Wordpress & Drupal to PHP ...
00:06:21 Richard Feldman: 2. Platform Exclusivity. ObjC/Swift to iPhone sales / JS to web&internet user / C# to Windows&VS
00:10:21 Richard Feldman: 3. Quickly Upgrade. CoffieScript&TypeScript to JS / Kotlin to Java
00:13:27 Richard Feldman: 4. Epic Marketing. $500M Java marketing compaign in 2003
00:16:15 Richard Feldman: 5. Slow and Steady. Python story
00:17:53 Richard Feldman: Other Popularity Factors. Syntax/JobMarket/Community
00:18:46 Richard Feldman: Why are the most popular languages OO except C.
00:19:15 Richard Feldman: Part 2. Paradigm
00:19:39 Richard Feldman: Uniuquely OO features. Encapsulation = Modularity
00:35:35 Richard Feldman: They are OO because modularity is a good idea and they originally got if from OO by chance.
00:35:47 Richard Feldman: Part 3. Style
00:35:50 Richard Feldman: FP Style : avoid mutation and side effects
00:36:31 Richard Feldman: Why isn't FP style the norm? No sufficiently large 'killer apps' / No exclusivity on large platforms / Can't be a quick upgrade if substantially diffeerent / No epic marketing budgets / Slow & steady growth takes decades
00:41:02 Richard Feldman: OO languages are the norm not because of uniquely OO features.
00:41:32 Richard Feldman: FP style just need time to become the norm.
00:41:50 Richard Feldman: Questions.
00:42:03 Question1: How do you see Lisp fiting in is it a FP language or not?
00:42:21 Answer: Classifying a language is functional or not is kind of arbitrary, definitely very fuzzy and ultimately not as important as talking about the style and their support for the style like being able to avoid mutation and side-effects and still have a good experience.
00:44:03 Question2: How does performance factor into this.
00:44:26 Answer: Perfromance is not the key factor to the popularity of a language.

hulahula
Автор

Why Isn't Functional Programming the Norm? because someone missed a ')' back in the 70's and only found it 30 years later

partlink
Автор

I'm surprised this focused so much on the OO nature of the most popular languages rather than the fact that they're imperative.

TrevorFlorence
Автор

Every once in a great while, I watch a video explaining what a monad is. Now having worked in the field 12 years, I can confidently say, I still have no effing clue what a monad is.

derekgeorgeandrews
Автор

This is like one of thise religious events where they talk about signs of the time and stuff

albarnie
Автор

We aren't moving from OOP to Hybrid to FP, we are just moving to Hybrid because OOP is a useful tool. You mentioned C with classes didn't take off until after they added even more features and made C++, but that doesn't mean if it didn't have classes it would still take off. It could have required both classes and additional features to take off like all of the other useful hybrids.

gljames
Автор

I haven't done any research on this but I think Python has a "killer app" type thing going for it too. It started to take off when Data Science / Machine Learning started to take off, and it has by far some of the best tools for the job (the killer apps, so to speak). Numpy, Scipy, Pandas, Pytorch, openCV, and Matplotlib.

imadetheuniversefun
Автор

This talk reminds me of the dangers of Maslow's hammer and why programmers should seriously consider having at least a basic understand of a few programming paradigms and different programming languages, specially conflicting ones.


So "Why Isn't Functional Programming the Norm?"
Because having multiple and/or multi-tools at your disposal and knowing how and when to use each (like we have now with programming) is the real best way to do things in life in general.

Essoje
Автор

This talk should be called "The History of OOP" because it has nothing to do with functional programming.

chrisharrel
Автор

I did miss him looking at FP to get an answer. It was too much of a 'FP is perfect already, the others are to blame'-speech.

RalphH
Автор

Alright so first impressions, this guy did a FANTASTIC job preparing for this speech, because he literally had himself mentally prepared for a lackluster response right from the get-go and knew exactly how he wanted to play it out. Just literally kept rolling. I mean that's genuinely inspiring and makes me want to listen even further.

SilverAura