This course will be retired on July 14, 2025.
Heads up! To view this whole video, sign in with your Courses account or enroll in your free 7-day trial. Sign In Enroll
Well done!
You have completed Introduction to Functional Programming!
You have completed Introduction to Functional Programming!
Preview
Functional programming is catching on like wild fire.
This video doesn't have any notes.
Related Discussions
Have questions about this video? Start a discussion with the community and Treehouse staff.
Sign upRelated Discussions
Have questions about this video? Start a discussion with the community and Treehouse staff.
Sign up
In order to answer,
why is functional programming so
0:00
hot right now,
let's take a quick jog through history.
0:03
Let's start our journey
way back in the 1930s and
0:07
take a look at some work that was going
on that would lay the ground work
0:10
to help define programming
as we know it today.
0:13
An investigation into the foundation
of mathematics was going on.
0:17
This study led to the creation of
a formal system named lambda calculus.
0:21
Here's where the functions I was talking
about come into play pretty heavily.
0:25
You've probably seen them.
0:29
They're written like this, that swervy f.
0:30
This study made for some formal rules
that were manually tested for decades.
0:33
And eventually it was decided to
attempt to prove them using a computer.
0:38
Now we're talking about the 50s.
0:43
If you'll remember, this is a time
when computers were ginormous, and
0:44
the amount of memory and
processing power available was minuscule.
0:48
The technology just wasn't there.
0:53
Several languages spawned
from these early days.
0:54
And these languages were not only used for
mathematical proofing, but also for
0:57
early attempts at artificial intelligence.
1:01
These proven mathematical rules made it
possible to express very complex ideas.
1:05
However, the rules were not always
easy to implement in an efficient way.
1:10
Especially with the limited
resources available.
1:15
Let's take a peek at one of these
rules that we'll cover in great
1:18
detail throughout the course.
1:21
One of the main tenants of functional
programming is that a function is pure.
1:23
That means that a function when
called with the same arguments must
1:27
always return the same result,
no matter what.
1:31
Enforcing the pure function rule
arguably made things difficult to
1:34
make efficient with
the computers at that time.
1:38
So, to deal with the efficiency challenge,
a programming paradigm
1:41
based on how to efficiently communicate
with the computer at a low level with spawn.
1:46
This style of programming
is called Imperative.
1:51
It focuses specifically on the how
to perform the operations.
1:54
Efficiency is controlled by storing State,
1:58
it deals with conditional branching and
looping.
2:01
The order of execution matters.
2:04
Over time, sub processes for
2:06
grouping statements together began to
appear to make things more readable.
2:08
These are the starts of what we
will eventually know as methods.
2:13
And they are not pure,
since state is stored and manipulated.
2:16
In the 80s and onward we saw a huge
growth in imperative programming,
2:21
object oriented programming was born and
very much embraced.
2:26
OOP allows us to make our code more
understandable through encapsulation.
2:30
It minimizes the moving
parts of the application.
2:35
As programming languages evolved,
so did our hardware.
2:38
And you can now buy a USB key chain that
2:42
has more space then the most expensive
machinery in the early days.
2:45
And not only do we have more memory,
we have more computers.
2:50
The cloud has given us seemingly boundless
access to the computer power that we need.
2:54
Our problems are more complex and
our data is bigger and
2:59
more readily available and
critical to our applications.
3:03
As we've shifted focus on dealing
with these larger problems,
3:06
we've discovered that if we share the work
across our many computers on the cloud,
3:10
or even across multiple processors cores,
that we can take on just about any task.
3:15
The problem, though, now,
almost ironically, is state.
3:21
Whomp whomp.
3:25
Once a program requires state to make
it work correctly, the synchronization
3:27
amongst running programs is quite
difficult to do efficiently,
3:32
if not impossible.
3:36
So things are starting
to come full circle.
3:37
[SOUND] Functional programming is rearing
its head because it can be easily run in
3:40
our new environment as
the functions are pure, and
3:45
you can split your program across
many environments almost seamlessly.
3:48
All imperative languages that I can think
of have started to have more functional
3:53
capabilities and
Java [SOUND] has joined the game.
3:58
The simple explanation, and the one that
you'll hear is that functional programming
4:00
deals with functions, and
object oriented programming deals objects.
4:05
Java is now a hybrid.
4:09
So now that Java has
the ability to perform many
4:12
functional programming concepts,
it is really catching on.
4:15
It's slick, and
I think you're gonna love it.
4:18
It's important to learn because
technology is heading that way.
4:20
And more and more functional code is
starting to show up on the scene.
4:23
Functional programming is starting beat
the defacto way to solve large problems.
4:28
Its acceptance is growing at
a rapid pace in all languages.
4:33
Which brings me to the great news,
the concepts that you learn here will
4:36
definitely translate to other languages
that provide functional equivalence.
4:40
That reminds me, I am going to
add pure here to the parking lot.
4:46
We'll explore that concept
more here in a bit.
4:51
Are you ready to get started?
4:53
I know I am.
4:55
You need to sign up for Treehouse in order to download course files.
Sign upYou need to sign up for Treehouse in order to set up Workspace
Sign up