Notes Information Apocalypse


I hate to agree with grouchy old Dijkstra, but unfortunately now it's impossible to deny: BASIC is what killed my ability to be a truly great programmer. Dijkstra was right, GOTO completely rots your brain.

When I was 8 years old, I started writing text based adventure games on the C64. I never really wanted to be a programmer or anything like that, just that seeing how the computer worked, and how you could type in programs in BASIC worked, it seemed like a natural thing to experiment with. Eventually getting an IBM compatible PC meant better games, but it also meant a much faster more productive editing environment for BASIC programs, so I jumped in straight away. I remember vividly the frustration and annoyance of having no clear syntax for constructing story elements in a way that didn't involve typing so many pointless leapfrogging jumps. It was painful. I learned about subroutines, but they just seemed to hard and complex, and I was too young and unaware to figure out how to move up to the next level. I needed guidance, but didn't know any computer programmers or adults who could help me. So I just gave up, and didn't touch a line of code on a computer for 7 or 8 years.

I say this now, with a ridiculous level of hindsight, that if I had been given the opportunity to learn Smalltalk at that point, things could have been radically different. Smalltalk was the zeitgeist of cutting edge programming in the 1980's, the early realizations that so much of the object oriented practice in the 1990's and 2000's evolved from. But what is often forgotten is that Smalltalk was also an environment that Alan Kay had spent a huge amount of time developing with the idea of teaching children how to program.

As a child, I could not intuitively make the jump to understanding structured programming. Eventually, I had to learn C style coding the long, hard, confusing way. I can only imagine what would have been possible if someone sat me down and told me to think about programming in terms of passing messages between actors before my mind had been corrupted by all that syntax.

When I come across extreme criticism of functional languages, the only thing I can think of is the old adage that progress in programming languages is merely reinventing Smalltalk, one decade at a time. Erlang is not fundamentally broken because of any of the things he mentions. It merely doesn't map to the mental model that he wants for the future of parallelized software. The author has great insights, but I can't help think that positive progress probably won't occur through attacking 20th century concepts like the Universal Turing Machine, it will occur when more people start actively demonstrating the deeper potentials within networks of communicating objects. It also occurs when we think about building software and languages with the next generation of children in mind.