Last week there was a gag listicle making the rounds entitled If
programming languages were vehicles
and I lol’d along with the
rest of them, but then I kept thinking about it and a bunch of the
entries just seemed to miss the mark. And I’m in a silly sort of mood,
so here is MY version: slightly different language selection, just as
opinionated, 100% more Truth™.
All images from Wikimedia Commons.
C is an internal combustion engine: it’s changed only incrementally since it was first invented, and it’s still an essential component of nearly everything else on this list, but if you’re in need of a vehicle you’ve got a shit-ton of additional work ahead of you. And there are those who would say that essential aspects of its design are dangerous to the general public.
C++ is an auto parts warehouse. Dig around in there long enough and
you’ll find everything you need to construct whatever sort of vehicle
you want, especially if you don’t mind a side trip to the even bigger
Boost
warehouse next door. You’ll still have to put it all
together, though, and be careful which boxes you open: rumor has it this
warehouse was once used to store … other things.
Java is a fully operational vehicle! Unfortunately, it’s one of those big American clunkers from the 1970s; breaks down a lot, lousy gas mileage, and aggressively styled in a way that just looks tacky nowadays.
C♯ is much the same as Java, but from a different manufacturer.
Python has definite opinions about the proper way to travel, but is still versatile enough to be found all over the world, doing all sorts of odd jobs.
Perl goes out of its way not to express an opinion about how you should travel. Despite this radically different philosophy (and surface styling), it gets used for almost exactly the same kinds of odd jobs as Python.
PHP is even tackier than Java, and it seems to attract the sort of drivers who are a danger to themselves and everyone around them, but it gets you there fast and cheap, and isn’t that what really matters?
JavaScript looks like something that someone built in a cave out of a random sample of boxes from the C++ warehouse, but it’s proven to be just as versatile as Python or Perl, and if it breaks down you can usually repair it with a screwdriver and a big rock.
Dart and Go and Rust and Swift embody lots of good ideas, but might not ever make it into production, and of those that do, it’s much too early to tell what they’ll wind up being used for.
Lots of people think of them as forgotten relics of the past, but COBOL and FORTRAN and SQL and MUMPS and so on are still out there hauling freight.
MATLAB is only good at one thing, but a lot of people seem willing to put up with its bulk, expense, awful gas mileage, and even worse ergonomics because of that one thing.
R is also only good at one thing (related to, but not the same as, MATLAB’s one thing), and shares many of MATLAB’s ergonomic problems, but it’s cheaper, handles better, and (despite the ergonomic problems) is more pleasant to work with.
Lisp has been around forever, and for that whole time has been more advanced than most anything else you can find, but is difficult for the average driver to wrap their head around. It’s as if it were provided to us by aliens or something.