matloff / TidyverseSkeptic

An opinionated view of the Tidyverse "dialect" of the R language.
514 stars 45 forks source link

Functional programming misconception and unsourced conjecture #6

Open Qata opened 5 years ago

Qata commented 5 years ago

https://github.com/matloff/TidyverseSkeptic/blob/master/README.md#tidyverse-makes-learning-harder-not-easier

In this section you've written

[T]op university Computer Science Departments have shifted away from teaching their introductory programming courses using functional programming paradigm to the more traditional Python, as they deem FP to be more abstract and challenging.

While it's true that the majority universities have dropped teaching functional languages (chiefly Haskell and various MLs) as an introduction to programming, the given reasons for doing so are varied from "the industry is using Java/C++" all the way to "the students just can't figure it out as easily". Please either cite your sources on "top" universities considering FP to be more abstract and challenging, or remove this claim.

matloff commented 5 years ago

I actually did have a reference, which I tweeted. No time to look for it now, maybe later.

nacnudus commented 5 years ago

This tweet of this 2004 paper?

matloff commented 5 years ago

Thanks! I don't how you even found my tweet, as I looked myself and couldn't find it. Maybe I don't know Twitter well enough.

I'll add the reference to my essay, and quote from the abstract. I'll also see if I can get the paper itself, to see the details, the pros and cons they have found.

One point I was going to put in the essay but decided not to, for the sake of brevity, is that if one considers recursion to be an integral part of FP, my long experience is that most CS students basically can't do recursion. They can mimic some examples, say tree traversal, but they given something new, say solving a maze, they can't do it.

matloff commented 5 years ago

Found the paper and updated my essay accordingly. Thanks for the comments.

nacnudus commented 5 years ago

@matloff did you mean to delete the reference in 89164ad3ca1ee46f5a2772c443ca17533f03450c?

matloff commented 5 years ago

Which reference?

nacnudus commented 5 years ago

An interesting discussion of the topic is in Charavarty and Keller. They too believe FP in its standard form in introductory programming classes is unsuitable even for CS majors. It would then seem that using FP to teach non-programmers learning R is even more unwise.

matloff commented 5 years ago

Not sure how that disappeared. Fixed now. Thanks so much!

Qata commented 5 years ago

@matloff Your reference of that paper does not align with that paper’s thesis. Directly from the paper: “The central thesis of this paper is that functional programming languages are ideally suited for introductory computing classes, but only if the focus is on general concepts rather than the specifics of functional programming”

This actually directly refutes your conjecture. They weren’t referencing “FP in its standard form”, the paper discusses how, when badly taught, Haskell in particular is badly suited due to pure functional programming making I/O into a much harder concept for newcomers.

None of this is applicable at all to R, which is an inherently impure language no matter how many functional extensions you add to it.

matloff commented 5 years ago

Thanks, will look at the paper again. Norm

On Wed, Aug 21, 2019, 4:38 AM Charlotte Tortorella notifications@github.com wrote:

@matloff https://github.com/matloff Your reference of that paper does not align with that paper’s thesis. Directly from the paper: “The central thesis of this paper is that functional programming languages are ideally suited for introductory computing classes, but only if the focus is on general concepts rather than the specifics of functional programming”

This actually directly refutes your conjecture. They weren’t referencing “FP in its standard form”, the paper discusses how Haskell in particular is badly suited due to pure functional programming making I/O into a much harder concept for newcomers.

None of this is applicable at all to R, which is an inherently impure language no matter how many functional extensions you add to it.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/matloff/TidyverseSkeptic/issues/6?email_source=notifications&email_token=ABZ34ZL5SWI4O3X77TYND53QFUSKDA5CNFSM4H7BBNYKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4ZLZAA#issuecomment-523418752, or mute the thread https://github.com/notifications/unsubscribe-auth/ABZ34ZLOQQCCPOE3KWZC7X3QFUSKDANCNFSM4H7BBNYA .

matloff commented 5 years ago

I've changed the phrasing now, thanks. If you still believe it is misleading, please let me know.