Neko

A continued, brief, incomplete, and mostly wrong history of programming languages

With apologies to the original. (Please read it before this one.)

2009. Pike and Thompson, who invented C, return to invent C again, this time a relatively verbose, garbage-collected, type/method based, statically typed, not too but kinda object oriented programming language, without single implementation inheritance or multiple interface inheritance, with C-like syntax that isn’t C-like enough, a dumb mascot,1 no ternary because question marks look annoying to Pike, capitalization of identifiers as a semantic feature, if err != nil { return err } every fourth line, and a decade of fierce blog posts about why generics are unnecessary, then generics in 2022. It is designed for concrete code, so that people can use it to write Kubernetes, the most abstracted codebase ever written. Google loudly heralds Go’s lack of novelty.

2009. Ryan Dahl, having seen that JavaScript is an excellent language in which typeof null is "object", NaN does not equal NaN, and no integers, decides it should also have access to the file system. The original API is entirely callbacks, nested until the code falls off the right side of the monitor. async/await arrives in 2017. In 2018 Dahl gives a one-hour conference talk listing his regrets, then invents an anagram Deno. He invents two more runtimes after that, each apologizing for the previous one.


  1. Sorry, I actually like it! I just had to say this. ↩︎