It's interesting to think about how people's attitudes towards programming languages has changed over the years. It's even more interesting to consider how they've stayed the same.
Back when everyone wrote their code in assembly language, all that anyone cared about was speed. This was closely linked to the fact that at that time, programmer's wadges were cheap compared to the cost of the computer systems they were coding on. This lead to the idea that the most important thing for a programmer to do was to write efficient code that squeezed out the maximum amount of computation in the fewest number of clock cycles. Programmers were experts at using nonsensical tricks to improve computational speed, like adding a number to itself three times instead of multiplying it by three.
Most programmers were very opposed to high-level programming languages when they first came out, claiming that they were to slow to ever be useful and simply a way of "babying" their user. It wasn't until it was shown that FORTRAN could produce code almost as fast as well optimised assembler, that it was widely adoped.
You must now be thinking, "Great. They all adopted FORTRAN and never looked back, right?" Unfortunatly, no. This macho attitude is still around today! On a fairly regular basis, you run into a coder who insists on writing a system in a relatively low-level language like C, when in reality the problem is not computationally intensive and a solution written in a high-level language like Python or Ruby could be coded in half the time. Not to mention that the high-level version will be easy to understand for maintainers latter on!
So the morals of this fable are:
- Never underestimate the pervasiveness of irrational macho thought
- Think about how fast the program you're writing really needs to be. It's easy to speed up high-level code by rewriting the slowest parts in a low-level language, but doing the reverse is no small chore!