Why do we compare Programming Languages?
I don't know. May be just for academic reasons, because there is no relevance in practical life. I recently read some discussion about the performance of Ruby at Joel on Software. Wondering what the heck if Ruby is slower than C++? There are 10s of programming languages which are slower than C/C++, yet they are being used widely in many different applications. You don't have to be the fastest and win 100m at the Olympics to live your life. You have a different set of ambitions and purpose. Don't you?
I never thought all programming languages are created equal. Though, a given problem can be solved by many programming languages, I believe, not all are cut out to solve the same problem. New programming languagues have been created primarily because existing programming languages do not solve a particular problem well. For most, the reason is not pure computational performance. This is equally true for most technologies as well.
Even when two programming languages/technologies solve the same problem reasonably and equally well, decision to prefer one over the other is never purely technical and never based on a single indicator like computational performance. Few examples over a period of time, from my area of work and experience:
- C++ vs Perl and Shell Scripting
- Binary Encoding vs ASCII encoding : XML, HTML, SIP over binary encoded Protocols
- VOIP vs Traditional Telephony
- Telecom Application Servers - J2EE Web Servers with IMS vs Custom Designed Telecom Servers
- C++ vs Erlang for Telecom switching software
- C++ CGI Programming vs J2EE based Application Servers, PHP, Ruby on Rails
- .NET vs J2EE
- Flash based Video Player and distribution vs WMP, Real and Quick Time
Each one of them have a definite purpose and advantage. While some problems can be solved by both, we prefer one over the other for reasons other than computational peformance. When a new language or technology is created, the new language or technology often comes equipped with advantages from its parent and will do reasonably well on the scale of performance. So, when Computational performace is not at all a factor for choosing them, why do we care about computational performance?
Another interesting comparison involve the spoken language itself. I hear often heated arguments among people from Andhra Pradesh (India) about preferrence of English over Telugu. 'Telugu', which is the most spoken language in Andhra Pradesh, India and is my native and first language. It was also acclaimed as the sweetest of all Dravidian languages. Sir C.P.Brown called it, the Italian of the East. It is very rich in vocabulary and structure and emerged as a literary medium subsuming the predominance of Prakrit and Sanskrit. Yet, many of us from Andhra Pradesh, speak and communicate in english at workplace and on the web. While one can express equally well and clear in both languauges, most choose English as most part of the world we care understand English. So, the reason to choose one over the other is definitely nothing about the structure or vocabulary or expressive power of the language. So why do we care even comparing the structural power of the languages?