[ProgSoc] Thinking, Functionally and Imperatively

Tomislav Bozic 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[1]?


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 
this email.

[1] or, as I call it, learning to fly before learning to walk.

More information about the Progsoc mailing list