20 years from now, will functional programming be the default paradigm that most people reach for?

20 years from now, will functional programming be the default paradigm that most people reach for?

I don't mean 100% functional. But will most people think in terms of recursion, maps, and folds instead of for and while loops.

Other urls found in this thread:

msdn.microsoft.com/en-us/library/1t3y8s4s.aspx
msdn.microsoft.com/en-us/library/dn986595.aspx
msdn.microsoft.com/en-us/library/ms173224.aspx
twitter.com/AnonBabble

people have been saying this since programming was created 200 years ago

C has functions. Pascal has functions. Even some varients of BASIC have functions. Nothing new to see here. Move along. Do not pass go.

Every decent language has closures already, or even monads. Pattern matching and list comprehensions are next.

Nah, once moores law starts to slow down the only way to go faster will be to go closer to the metal. C and assembly reign supreme.

C has to be replaced by something as low level but not as ugly and faster compiling.

Look at C#, rust, etc.

functional will be the default within 5 years even

Functions aren't first class in C or BASIC, idk about Pascal, but a functional language has first class functions as a requirement

C# is about as "functional" as Java and without mono it would be irrelevant to the programming community at large. Now rust, I'm stoked about rust.

The imperative languages will just keep borrowing things from Lisp and Haskell over time because they prove useful. First class functions, closures, immutability, typeclasses, tail-call optimization, macros, higher-kinded types... the list goes on. I don't think people will ever stop thinking about programs as a series of directives since that's how we think naturally and that's how the von Neumann architecture works. But to answer your question as worded, yes.

I think we have the Rails and Node community to thank for the recent uptick in functional programming, strange as that sounds. Here's to hoping that Rust and Scala get more traction.

How are functions not first class in C? I can write a map that accepts a function pointer. qsort does this for the cmp function

recursion is just a more cryptic and fancy looking way of doing the same things that loops do

when you have pattern matching recursion tends to be much less cryptic than loops

And the easiest way to destroy your stack.

Agreed. i love C, but it could be better. go was a nice attempt, but fuck garbage collection

>C# is about as "functional" as Java
C# has linq and will have pattern match, nullable shit, etc.

>The imperative languages will just keep borrowing things from Lisp and Haskell over time because they prove useful. First class functions, closures, immutability, typeclasses, tail-call optimization, macros, higher-kinded types... the list goes on.
All of those except for macros (assuming you mean Lisp macros) and higher-kinded types were in imperative Algol-derived languages from the 1960s.

Functional is dead. No point in using any of it. FYI bases programming is the future.

I think Felleisen said it best: functional programming is just a codification of good design principles in software. Carmack's advice on programming functionally in imperative languages is nice too. Thinking of procedures in terms of sets of input, manipulations of that input, and output, leads to stable software that can be clearly reasoned with.

splitting hairs here, but function pointers are not functions.

>go was a nice attempt
have you read or written a non-trivial go program? shit sucks ass. I'm hoping rust takes off

I don't see how linq makes it functional. Pattern matching is common amongst functional languages but it's not something required for describe programs as a series of functions. Java already has `Optional` not sure what if this is what you mean by nullable.

yeah I meant Lisp macros, but also in a somewhat different vein, Scala macros. Lisp really was the progenitor for functional programming, but I'd like to hear more about what you said. what Algol derivatives are you talking about?

Whichever lNguage will be for programming artificial intelligence will be the dominant one... so no

>nullable
msdn.microsoft.com/en-us/library/1t3y8s4s.aspx
msdn.microsoft.com/en-us/library/dn986595.aspx
msdn.microsoft.com/en-us/library/ms173224.aspx

i havent written a single piece of go. ive only read the papers

scala native

I hope because functional programming is a whole lot easier to grasp than the rest

So basically just like everyone here who shills functional programming

>fuck garbage collection
literally why ? it's like saying "fuck spaghettis" although it's the best food in the world

>splitting hairs here, but function pointers are not functions.

Have you ever used a debugger in your life ?
>inb4 no because I only use Haskell therefore my code is always perfect

Can you also easily compose functions? Can you do partial application? Can you create closures?
If you answered any of these questions with "no", your language does not support functions as a first class construct.
Not to say that it's inherently bad.

Sometimes recursion is cryptic, other times it is much more easily understandable than the alternative.

Tail recursion is a thing, you know. All kinds of other optimisations are also possible.