As a computer scientist, I often hear buzz about some new language that has just come out and does this and that differently and is all the rage. Upon closer inspection I find the usual poorly implemented, badly designed linguistic heap of bull feces that seems to be popular. As a good reader you should be asking yourself: "Why is this guy so jaded about the leading edge?"
That reason I'm jaded is simple: I have found much to my dismay that most if not all of these new and upcoming languages are essentially clones of each other with minor differences based on the idiosyncrasies of that particular languages creator. Most if not all of these languages were created because of some minor dissatisfaction with an existing clone language; these complaints range from how variables are typed, to the scoping of those variables, and all the way to the minor obscure details. Nevertheless, I find that most, if not all of the creators of these languages did not understand completely the results of their actions. While I cannot quote bogus statistics or otherwise made up numbers that say nothing, I would be willing to bet that most of theses dissatisfied language designers did not understand the reasoning behind the very thing that drove them to create their own language anyway.
This assertion comes out of many conversations with my peers concerning object oriented programing and in particular C++, Java, and C#. Many of my peers either live in a world of managed languages (Java, C#) or in the world of C. The Managed camp decries the complexity and inherent dangers of programming at a low level, while the C camp agonizes over garbage collection, objects for objects sake, and a lack of access to hardware. At this point one would expect me to raise my colors and choose a camp.... I refuse. As far as I am concerned they both are wrong, and right.
Both camps, at least in my humble opinion, share one thing in common, they have no appreciation for the other camp's elegance because the do not fundamentally understand or see the bigger picture. The systems programmers are stuck at such a low level that they cannot see that they are uselessly duplicating code all over the place, while the Object oriented junkies are flying so high they cannot see the congestion their superfluous object creation has created.
So where does that leave us...
Oh right, on this: There is no such thing as the one true language.
However, we have a nice tool chest of languages that exist already, creating another superfluously is foolish a language should only be replaced when it is fundamentally flawed. Would be creators of new languages should take this to heart before creating a new language, most often the construct that seems most annoying exists for a very good reason, if not it shows that the language designer did not understand the fundamentals of languge design before they created their languge
