Open Source Lives in Polyglot Programming
Oct 9, 2012 5:00 AM PT
The prominence and pervasiveness of open source software in cloud computing is something I've researched and written about quite a bit. I've also discussed how open source software is a key component and catalyst for the devops trend that blends application development and deployment via IT operations. Now I'm seeing the same effect from open source software yet again in a disruptive trend: polyglot programming.
Polyglot programming is the use of many different languages, frameworks, services, databases and other pieces for individual applications. The trend takes today's developers and IT shops beyond .Net and Java to node.js, PHP, Python, Ruby, Spring and further still to Erlang, Scala, Haskell and others.
Also in the mix are widely used API Web services such as JSON, REST and SOAP, which are increasingly significant to building applications, as well as developer and user communities.
There is also polyglot disruption present at the database layer with MySQL still being popular, but with ample use of the growing number of alternatives (NoSQL, PostgreSQL, NewSQL, etc.), including virtual and cloud-based services.
I've also made the point about the significance of those API pieces, which frequently emerge as critical as open source software when customers, developers, partners or others hook into software applications.
The bottom line is that openness remains critical in most facets of today's enterprise IT -- open source software, open standards, open clouds, open APIs, open data, etc.
Open Source: The Common Denominator
As important as APIs are, open source software is the most common denominator among the many, sometimes disparate, pieces of polyglot programming. Similar to its role in devops, open source software is a catalyst in polyglot, delivering its usual benefits of availability and flexibility to fit with other technologies.
Nearly all of the polyglot programming pieces -- languages, frameworks, databases, application servers -- are open source software. Nevertheless, there are also significant pieces from the likes of Amazon, IBM, Microsoft, Oracle, VMware and others that remain proprietary.
Polyglot and devops, as well as open source software, are also being driven by today's users, whether enterprise employees, mobile device owners or general consumers. Expectations of speed, quality and uptime demand use of multiple technologies for optimal performance.
For example, many applications are written in Java or C but require additional languages and frameworks for back-end scalability and performance. The same applications may also need different user-facing technology for ease of use or presentation.
Another driver of devops and polyglot, and thus open source, is the deployment of applications in various environments, including datacenter, cloud computing, Web, mobile and converged uses.
Additionally, organizations are wisely adapting their application development and deployment processes wholesale, rather than for specific applications, in order to deal with the latest changes technology. This further drives polyglot programming because these different application development and deployment models require different tools for optimal and effective releases.
Putting It Together
The biggest challenge of polyglot programming is that it involves the mixing of different languages and frameworks, and although they are commonly used together for today's applications, they are still separate software development projects. The most consistent element of all the different pieces is, once again, open source software.
There's no question that integrating these technology pieces, federating management of them, and adapting to the confluence of software development and IT operations remain big challenges. However they also present opportunities for vendors and users to get more out of their technology, people and processes.
There are those who say it is not realistic to think any product or vendor, including evolving PaaS platforms, will ever be able to truly support polyglot programming and the blending of different technologies and communities for single applications.
It's true that the undertaking of devops and polyglot support today entails more of a DIY mindset than a vendor or platform-provided approach, but there are many interesting ventures with many smart people focused on doing just that. Over time, perhaps in two or three years, some of them will succeed, particularly as customers and users get more proficient with cloud, mobile and other resources.
At the very least, polyglot programming highlights how open source software continues to have a pervasive and profound impact on enterprise IT innovation. An upcoming report on polyglot programming by 451 Research will more deeply explore these drivers and impacts, including the role of open source software.