One of the questions asked by a Tech Tuesday reader was about using multiple different programming languages for different parts of a site. Back in the early days of the web that wasn’t really an issue because you would write the page generation in something like Perl or TCL and that was all there was. Well, not really because even then you had to know HTML but of course early HTML was so minimal that it didn’t really matter much.
Well along came more HTML, CSS and most importantly Javascript. So at that point you were almost certainly up to 2.5 languages (something on the server, Javascript and I am counting HTML+CSS as 0.5). Then more recently with progress using Javascript on the server you were potentially able to go back to 1.5. Then again almost everyone is also developing apps and if you want native performance you are potentially adding another two languages: Java for Android and Objective C for iOS.
So what should you do? For very small teams there can be some gains from using only one language and in an ideal world a single engineer would be able to do everything in Javascript (if and when HTML5 apps ever really make it). At a minimum it would reduce tooling and testing overhead which is an important consideration.
Having said that, I think the prime directive should be to use the right tool for the job even if that results in multiple languages. The benefits from a proper match will ultimately outweigh the added cognitive and tooling overheads. Also, you should be very suspect of any engineer who has only ever programmed in one language and does not feel comfortable or interested in picking up a new one.
PS Please ask more questions!
PPS Minimal links today but I am running to catch a flight!