The technology world is filled with cases where smart and superior alternatives exist, but their existence makes no difference because you can’t use them. 1980s UNIX was incredibly stable compared to MS-DOS, but it was irrelevant if you intended to use MS-DOS software. Clojure and Factor are wonderful languages, but if you want to write iOS games then you’re better off pretending you’ve never heard of them. Not only are they not good options for iOS, at least not at the moment, but going so against the grain brings extra work and headaches with it.

Words like “better,” “superior,” and “right,” are misleading. Yes, Modula-2 has a beautiful module system, but that’s negated by being a fringe language that isn’t likely to be available from the start when exciting new hardware is released. Erlang isn’t as theoretically beautiful as those cutting-edge research languages, but it’s been through the forge of shipping large-scale systems. What may look like warts upon first glance may be the result of pragmatic choices.

There’s much more fun to be had building things than constantly being distracted by better technology.