most programming languages are fine, actually

sep 28 2022


it is a commonly held belief that some programming languages are better than others. that some programming languages are Good, and some are Bad. this really isn't very true.

most of the arguments can be boiled down to listing the advantages and disadvantages of a particular programming language for a specific application, and assuming that particular application is the only thing anyone ever does with a computer. sometimes someone is making a video game, sometimes they're making an advanced machine-learning system, sometimes they're just making a simple script. to think that one system can do everything well is foolish, of course every language will have its strengths and weaknesses. and while some programming languages are pretty good at a lot of things, some programming languages can be truly great at a few things.

even programming languages that are frequently seen as universally bad can usually be explained as products of their eras. COBOL is obtuse to modern eyes, but it was as high-level as you could get in the 1960s when computers ran on punch cards. similarly, BASIC is painfully minimalist and slow, but it could be fit into less than a kilobyte of ROM and leave as much RAM as possible to the user, useful when RAM was measured in kilobytes as well.

while hardware is much less of a concern for modern programming languages, there is still much to be considered in how programming languages should be designed. ease of development and maintenance, portability, and what kinds of things you want to make with said language all impact how you're going to design things. a programming language made for a child to easily manipulate graphics is going to be inherently different from a programming language designed to manipulate large databases at scale, even if both would be running on the same physical hardware.

the main issue really isn't people picking a favorite programming language, but acting as if they should specialize in one and only one programming language. as if once you know one programming language, it is impossible to learn another. but in reality, programming is an immensely transferable skill, and good habits are generally independent of programming language. the programming language you use for a project should mainly be chosen based off what you're doing and where you're doing it, not because it's your personal favorite.