Americans have a bad, though deserved, reputation for only speaking one language. Small surprise, then, that the same is often true for American programmers. Today's computer science graduate often leaves school with a strong knowledge of only one programming language -- typically a major systems language, such as Java or C++ -- and goes on to a career based almost exclusively on that language.
On the surface, this makes sense. C++ and Java are both highly versatile, complex tools. Just learning the syntax of either one is nothing compared to the amount of study it takes to become familiar with the whole ecosystem of associated libraries and frameworks. Not to mention that both languages are widely used; if you don't know either one, you cut your chances of getting a coding job dramatically.
[ The now-ubiquitous multicore chips pose new challenges to developers using traditional languages. ]
But a software development field that's based almost exclusively on two languages -- languages that are very similar, for that matter -- is also in danger of stagnating. The Sapir-Whorf hypothesis holds that the patterns of human thought are profoundly influenced by the patterns of the language in which the thought is expressed. Linguists disagree as to how strictly this is true of human languages, but for computer programming languages -- which are themselves but restricted subsets of human language -- it seems particularly apt. And yet, while the study of software development has marched forward with concepts such as functional and aspect-oriented programming, mainstream languages have remained tied to the same object-oriented paradigm introduced decades ago.
Outside the mainstream, however, the field is exploding. New programming languages are introduced every year, and many of them could make valuable contributions to real-world software projects -- if only they would get used. What will it take for enterprise software developers to start thinking outside the twin boxes of Java and C++?
A cornucopia of new languages
What's good for computer scientists isn't always good for working programmers. But surprisingly, perhaps, not all of the work in the area of programming languages has been strictly academic. Microsoft's .Net platform, with its CLI (Common Language Infrastructure), has been a particularly prolific source of new languages. Wikipedia currently lists no fewer than 55 languages that run on the platform, all of them fully interoperable.