As a software engineer, I learned that one measure of my success is whether or not the code I’ve written is in production and maintainable by others years after I moved on to other things. Self-documentation features of the programming language play a crucial role.
Consider object-orientation as an example:
class keyword was only introduced in 2015. Until then the mechanism to accomplish this was via prototype functions.
Class keyword is a syntactic sugar over prototypes, but it sure is far more readable in the longer term than a prototype function.
var amount = 10.52;
amount = amount + 1.57;
amount = "$" + amount;
When computers made their way into the enterprise in the 1960s and 1970s, the coders had to write programs in assembler – a low-level mnemonic language that is translated directly into machine code. Believe it or not, many of these programs are still around in banks, government, and other big enterprises.
As you can imagine, assembler programs are difficult to maintain at scale. This is where languages like C, PL/I, Pascal, COBOL, and later C++, Objective-C, and Java come in. Programs written in these higher level languages are first translated into assembler as part of compilation. During the compilation stage, the compiler can identify silly programming mistakes and prevent difficult to solve problems later on.