I feel like I must have progressed as a programmer somewhat. Even though I doubt I could write an article like this from scratch, I can now at least follow it, and there are no more "wtf did he do there?" leaps of logic.
Post this again in a decade, and we'll see how I fare then...
There is nothing new in this article. They basically just did the untyped lambda calculus in Ruby; Landin already had everything worked out in the 60s! To write a similar article, just find a cool idea from the past, and then port the idea to some current technology so that readers can better empathize with it.
Yup, there is almost nothing new under the sun. Everything I use in my day to day job was discovered in the 70s. Heck, half this stuff is even worse than what was discovered in the 70s. SmallTalk was a complete OS/programming environment with checkpoints, pausing, and live migration. What do we have now that comes close?
Granted that what we have now often seems like a pile of kludges. Probably because our modern systems evolved "organically" over a span of decades, and technical issues have been solved with compromises rather than careful planning
...However, I'm pretty sure if you booted up a SmallTalk machine from the 70s, you'd find there were A LOT of bugs and unfinished corners. The UI was really not polished or user friendly. The impression I got is that they barely had it working, that it was more of a tech demo than any kind of finished product. I don't think you'd want to trade any of your modern software for something from then. I mean, yes, they thought of clever things back in the 70s, but don't go imagining they had some nice, clean, perfect implementation of those ideas.
Sure, cutting edge stuff is always going to be rough around the edges but I see no such boldness around me any more. All I see is another version of AngularJS popping up every other week. How many MVC frameworks does a JavaScript developer need?
But that is totally off topic (and perhaps you already know this is my research, and just trying to make a point?). The article is not about discovering something new, but a useful reminder of what we already should know.
Yes - I totally agree. I was really just congratulating myself on being able to follow it. I find it interesting that this was easier for me to follow than the original maths papers on lambda calculus, but I suppose that's just a matter of familiarity with the syntax.
Please don't get me wrong, I think this is a great contribution; many of these ideas are hard to follow in their original presentations, especially given notations that are very hard for us to identify with (next up...monads in Ruby).
I took an advanced logic class in university where we went on to re-derive the natural numbers (and operations on) using sets alone; this is well known, but to the typical CS undergrad, it was kind of crazy and eye opening!
It's in JavaScript for those who prefer JS over Ruby (although for the purposes of the exercise the language choice doesn't matter much).