Most frequently, programming languages are compared to one of two things: spoken languages or professional tools. Today we will analyze the former, and make an analogy between programming and spoken languages. This will allow us to see the advantages and challenges of polyglotism in programming, or multi-language software development.
Spoken languages identify groups of people that belong together. In our society these groups are usually, but not necessary, nations. People speaking the same language as a nation, often have specific characteristics that build their identity. India is known for tech support outsourcing. Romania is known for their IT professionals. USA is known for their enterprises. If you want to accomplish great things in any of the domains specific to a language, you must speak the language.
Programming languages are very similar. Each programming language has a forte; a single specific thing it does best. C/C++ is terrific for low level, close to the hardware programming. HTML & CSS are great for presenting visual content over a web page. PHP is superb at providing a bridge between web clients and resources on a server. This is why, we at Syneto always speak the right language for the problem.
“Polyglotism or polyglottism is the ability to master, or the state of having mastered, multiple languages.”
With using many languages, many problems also present themselves. The fact that people need to cross the language barrier is more challenging than one would expect. Let’s say you are a Frenchman. You want to capitalize on the USA market where people eat a lot of cheese. In order for you to sell there, you must promote your products in their language and for their specific culture. Yes. Each language has a powerful cultural aspect you have to master in order to succeed.
In programming you have the same challenge. You must understand the philosophy and culture behind each programming language. You must do this and adopt the culture in order to become productive in that programming language. Once you do so, you can use one languages’ philosophy to enhance the way you write code in another language. A nice bonus I say.
But what about China? Learning Chinese would be so difficult, that it just won’t work. You may want to learn another language both you and your Chinese counterpart can use. English is the most common solution to cross the language barrier.
The same problem exists in programming. How can a program written in Perl talk to another one written in Java and interpret the responses from another one written in Scala? The answer is simple. They need a common language, or protocol, known by all the languages. Such protocols are HTTP, REST, JSON etc.
In our company culture, we combine influences from many languages both as the way we behave and as the way we write source code. Find out more by reading our Agile Alliance website, entitled One Bug Per Month.