The Evolution of Programming Languages


Ah, sweet purity! I can write my 100 lines of code with complete control. Only deep machine architecture knowledge is required. Please don’t drop the stack of punch cards.

Assembly code

So close to the machine. I can write my 1000 lines of code with complete control. Only deep machine architecture knowledge is required. Dang, maybe I can write some macros for this repeated code.


I eat strings for breakfast.  Write once, read none. The compiler is you. Named parameters lets me write a function that takes 497 arguments. Idioms, idioms, idioms!


Because line numbers makes it easier to understand.


It’s like a super macro assembler. I know exactly what it’s doing and makes my 100k lines of code so clear. malloc() or alloc() and should I cast that pointer? Memory leak, schmemory leak! How many years until we get ANSI C and the C99?


It’s the best and worst of C and OO! Strong typing until our friend C needs a reinterpret_cast<>. Every routine you need including those you don’t are already in the STL. So easy, just don’t forget that virtual destructor. Templates are the Perl of C++ (write once, read none). I can make my 1M lines of code so neat and clear.

Visual Basic

Drag-n-drop GUIs and 16-bit delight. It does everything you need but has nothing you want–like useable object orientation.


Braces are for weaklings! It has types….sorta. Life is great in a single thread. I can self-comment the code whenver I don’t want to. Python virtual environments: they work virtually in someone’s dream. I can write 10k lines of code that does the work of 1M and still has the same bugs.


Never heard of it.  Every other single language uses “!” to indicate a NOT operator, so we’ll use “~” because we want you to write more syntax errors.  Does anyone really know how the garbage collector works?


I came, I went. The Queen is dead, long live the Queen.


Types, darnit! Everything inherits from Object including God. Write once, debug everywhere. Java applets will save the web! [crickets chirping] But, my 1M lines of code is so neat.


We don’t want to share our toys in Java’s playground. We’re leaving!


Oh crap, people actually want to do things on the web? Hey, Brendan Eich, can you code us up a language over the weekend? Sure, we’ll call it “JavaScript” because it has nothing to do with Java. We don’t need no stinkin’ types since it’s just for small dynamic web pages. Oh crap, you do want full apps? We’ll fix it with Dojo, qooxdoo, jQuery, Handlebars, Underscore, Typescript, Angular, React, Vue, server-side rendering and a unified browser framework that does the same thing that JVM and applets did 10 years ago but now with more Retsin? I still want hard types so let’s use a TypeScript pre-compiler which combined with ESLint restores those cryptic C++ template-like compiler errors you were so (not) missing. I can make 1M lines of code unclear and just as buggy.

Go, Rust, D, Elm, Kotlin, Crystal, Elixer, …

OK, maybe this time…