It’s certainly true that Conway’s Game of Life is one of those wonderful toys that’s brings joy when you take it out of the drawer every once in a while.
There was a post this morning based around a Youtube video of a full implementation of Life written in APL, as a single function of course.
In school we had the opportunity to dabble in APL in a survey of languages class that was part of the typical core of computer science classes. There were one or two actual APL terminals in the terminal cluster. APL uses Greek letters along with the usual alphabet to create a very concise and brief language and an actual APL terminal had all of those characters on the keyboard. If you didn’t have an APL terminal, then you had to resort to using short key words instead. Another guy on the hall of my dorm, who was an actual computer science major (it was called information and computer science, ICS) would go over to the cluster and play around with APL.
APL and LISP were the first purely functional programming languages I had any experience with. I knew they weren’t like regular procedural programs and everything was composed of functions, but I don’t think the term functional programming even existed then. I also don’t think the dichotomy of functional programming vs. object-oriented programming. Smalltalk was still working through it’s early childhood at Xerox PARC.
Leap to the present and this wonderful video of the development of the Game of Life using APL. It’s a joy to watch. Don’t be put off by the strange Greek operators. Watch the matrices as they are formed. You may feel like you’re getting lost but, for Life enthusiasts, when he adds the offsets to get the neighbor counts I think you’ll see what’s happening. It’s incredibly brilliant.
Then Curtis Autery posted this wonderful primer on APL after experiencing the difficulty of finding good APL information on-line. He’s done a great service to the language.