The natural evolution of computer technology has brought about important changes with respect to the tools that architects are able to employ in the provision of software systems. These changes have brought about a resurgence of interest in polyglot programming, which refers to the use of more than one core language in the provision of a software system.
Polyglot programming is not a new concept: one prominent example from the past is Visual Basic clients talking to COM objects authored in C++. Fundamentally speaking, this architecture leveraged what those languages were good at in their heyday.
So what change has taken place that fuels the renewed interest in polyglot programming?
The change is that ever-increasing bandwidth and computing resources have conspired to enable text-based protocols to become a reality: gone are the days when arcane binary protocols were a pre-requisite to efficient distributed systems. Text-based interoperability largely began with XML/SOAP-based web services and continues today with RESTful architecture implementations and other 'smaller' protocols, including Atom and XMPP (for example).
This new breed of interoperability technologies affords far broader opportunities for heterogeneous development than ever before, simply because the payload is formatted text, which is universally generated and consumed. Heterogeneous development affords using the right tool for the job, and text-based interop has blown the doors off what was previously possible, the impact of which is largely underestimated.
Architects can now combine specific, powerful tools that move the yardstick from previously being able to employ the right language to now being able to employ the right paradigm. The effects of this change is manifested as a combinatorial increase in the architectural topology of modern software systems. This is not just a reflection of their diversity, but a testament to new possibilities.
While choice is not always a good thing, it is 'less worse' than the alternative in the context of modern software architecture. As an industry, we are faced with very serious problems and we need all the interoperability we can get, particularly as the incumbent platforms are not well equipped to resolve them.
Your job as architect has become even more challenging, because technology silos are crumbling in the face of new possibilities: embrace this, think outside the stack, and leverage the new diversity: heterogeneity wins.
This work is licensed under a Creative Commons Attribution 3
 - The incumbent multicore era will prove to be the most significant problem yet faced by the software development community.
 - The Free Lunch is Over - Herb Sutter, http://www.gotw.ca/publications/concurrency-ddj.htm
Back to 97 Things Every Software Architect Should Know home page