Why are there different programming languages?
“Why are there different programing languages?”
An acquaintance once asked me this shortly after taking an online programming course. I said something about how any given language can be better or worse at solving a particular problem. French is great for poetry, and Haskell is great at representing algorithms and mathematical functions.
Nonsense!
Well, no, not completely. It's true. It's just not the whole story. Consider Python and Ruby. Why do we need both? Yes, yes, sure, there are important differences, but in the grand scheme of things, are they really that different? Hardly. They're both dynamic scripting languages which work well for web development. We could save a lot of time and energy by deprecating one and only using the other.
For that matter, why do we need Billy Joel and Elton John? They're not that different. They both play piano, they both write pop songs, and they both tour internationally. Talk about a waste of recourses! We could really save a lot of time and effort by having them join forces.
Does anyone think that would work? Of course not. Elton John doesn't want to sing “Scenes from an Italian Restaurant” and Billy Joel doesn't want to sing “Tiny Dancer.” Billy Joel doesn't care about fashion and Elton John doesn't care about Long Island. They don't want to work together!
In the same way, Guido van Rossum thought it would be fun to create Python, and Yukihiro Matsumoto thought it would be fun to create Ruby. Millions of programmers like using blocks and millions of others love **kwargs. Who are we to disagree with them? Do we really think they would be equally productive doing something they don't enjoy?
Music is not a utilitarian matter, and neither is computer programming. Software development is an art as much as it is a science. When we forget that, we miss some of our most important opportunities.
A bottle of red, a bottle of white
It all depends on your appetite