[ProgSoc] Thinking, Functionally and Imperatively
tomchristmas at progsoc.org
Sat Mar 18 16:29:52 AEDT 2017
Last Tuesday, having developed a nascent desire to broaden my horizons,
I attended an introductory talk on Scala. It was an interesting enough
talk. The speaker demonstrated how one could become productive with the
language almost right away, even if one was not familiar with the
functional paradigm, that is to say, one can program in an imperative
style in Scala before moving up to its functional features when one is
ready to do so. Most of the stuff relating to 'monads' and 'implicits'
went largely over my head. Nonetheless, it has provided a springboard
for further exploration of Scala.
The thing that interested me the most from the meetup, however, was the
Q&A session, where an audience member regaled his experience about
learning programming languages, which to me was somewhat surprising and
For you see, he learned Haskell first(!) during his high school years.
Then, when he went to uni, he learned Java, which he found to be a bit
of a struggle, since he had to adjust to a totally different way of
thinking (sound familiar?). He said something along the lines of: with
imperative languages such as Java, the programmer is required to keep
track of state (of variables and whathaveyou) in their head, whereas
functional languages, which are supposed to be stateless, do not have
such a requirement...and that threw him off.
From this, one could conclude that functional languages aren't
necessarily harder than imperative languages to learn, they just require
you to think differently.
So I'm wondering if this rings true to you.
Also, has anyone else here learned how to program in a functional
language before touching a more 'traditional' imperative language?
P.S. I should probably go to more of these meetups, if for no other
reason than to come up with things to talk about...
[Subject:] Kudos to anyone who recognises the allusion in the subject of
 or, as I call it, learning to fly before learning to walk.
More information about the Progsoc