Functional Programming and Object Oriented Programming are paradigms sitting at opposite extremes of programming language spectrum, and thus, good to learn both for a well rounded education. OOP seems much more prevalent today and has advantages in modelling the world, whereas FP has strong benefits for parallel processing, but as exemplified by Lisp, is often relegated as exotic and hard.
Yet many years ago simple FP was taught to young kids. Sometimes I reflect on my programming proficiency, not so much today after so many years, but in my early teens in the 1980s how I seemed to grasp concepts like recursion so much easier than my peers. …And I think it was because soon after learning Basic as my first language, my second language was a Functional Language…
…no not Lisp (the godfather) but LOGO.
Only a few years ago I was surprised to learn that LOGO “was a an adaptation and dialect of Lisp”, and with this new insight, I retrospectively considered my early use of LOGO had a profound impact on how I learned to think about programming. I believe LOGO would make a great “first language”.
So, how to use/teach LOGO today (particular as a child’s first exposure to programming)? Terrapin Logo seemed to be the premiere one, so a year ago I purchased a copy, but I found it awkward, and its teaching material dry and not engaging. I’m trying to get hold of the Apple II Logo book that I learnt from to see if that confirms my ancient memory of how engaging it was. Having a hunt around today, I found this PDF book scan, where it is interesting to observe how soon after drawing a stick figure, it leaps into the topic of recursion, with two out of eight chapters teaching recursion. Also today, I just discovered turtleSpaces, a 3D LOGO which looks awesome from my first ten-minutes using it.