I was talking with my father about my experiences taking CS courses for college and the conversation turned to programming languages, their uses, and their problems. I mainly talked about how hard it was to get used to writing code in a classroom setting, especially when the professors didn’t allow students to work together, but I remember something my dad said about programming languages.
It boiled down to this: why is there such little innovation in programming development? Why do we keep using programming languages that operate off of the same basic frameworks when they are so obviously inefficient in so many different fields. I’ve heard these qualms from other people too: Neil Stephenson and Jaron Lanier have both discussed how, while our hardware advances at an incredible rate, software development seems to crawl. But while many would argue that this comes from corporate models, the necessity of iterative design, or simple inefficiency, my dad had a different explanation:
Many programmers are too proud to move forward.
He was saying that too many programmers ended up learning obscure or (overly) complex languages or software and, because this knowledge can be valuable in the fields where it’s usable, they become attached to these skills. This attachment, this pride, can stifle innovation. Why give up your bragging rites if the code still works?
This is obviously an oversimplification – not all of the problems in programming can be attributed to simple pride. But I think there’s some truth here. Anyone who has looked up anything about programming languages have probably encountered the forum wars that occur between programmers (“Perl is better than Python,” “C++ beats Java every time”). Even I have to admit that I feel pretty proud when I do basic things in Unity or Gamemaker, because I know that other people can’t do those things.
Does this culture exist in the academic world? Probably not to the same degree, but it’s still there. And it’s probably not the healthiest culture to encourage innovation. Being proud of your skills is one thing, but putting aside the opportunity to improve your tools for the sake of your ego is something entirely different.