There are a lot of different programming languages in use today. When it comes to the cloud, thanks in part to the strong position of OpenStack, the open source Python language has emerged as being one of the most important. OpenStack is written in Python and is in used by many leading IT vendors including IBM, HP, Dell and Cisco.
But how and why did Python become the language of choice for OpenStack?
To answer that question, Datamation sat down in a video interview with Joshua McKenty, co-founder and CTO of Piston Cloud and one of the key figures at NASA in the original Nebula cloud compute project.
McKenty wrote a study for NASA examining what language it should adopt for web applications in general.
"At the time, NASA had three thousand different web apps, written in 18 different languages and frameworks, just from a security standpoint it was a nightmare to maintain," McKenty said. "So I prepared a trade study and did a quantitative and qualitative analysis of six languages and nine frameworks and came up with using Django and Python as the things that were most appropriate for NASA."
Django is a popular open source Python web framework. McKenty noted that the study wasn't about identifying Python as the best language in general. The analysis took into account the regional availability of resources, compatibility with NASA partners, security as well as personnel expertise.
In building its cloud compute platform, NASA also made the decision to use the most stable version of Python, which at the time was Python 2.6. The Python 2.6 release was announced back in October of 2008.
During the same timeframe, Rackspace had come to the same decision about using Python as the language for its cloud infrastructure technologies. Rackspace's legacy cloud was built on Ruby. OpenStack came together in July of 2010, when NASA and Rackspace joined their respective cloud projects.
Python 2 to 3
While Python 2.x was the most stable version of Python in 2008, in 2013 the Python community has moved on with the Python 3.x branch as its core focus. Moving from Python 2.x to Python 3.x for OpenStack is a non-trivial task.
In addition to being on the OpenStack Foundation Board, McKenty is also a member of the Python Software Foundation, as are a number of his fellow OpenStack board members.
"We have insight into where the Python community is trying to go in the transition to Python 3.x and yet we're keenly aware of the challenges of moving the OpenStack codebase in that direction," McKenty said.
OpenStack has over 1.25 million lines of code, according to McKenty. Transforming existing code to Python 3.x will be a tricky exercise. Moving to Python 3.x is something that will take time, which isn't always possible when project are racing forward with new feature releases.
In McKenty's opinion, new projects should be written in Python 3. When it comes to existing project he is a bit cautious.
"The work to port existing projects to Python 3 should be undertaken," McKenty said. "But I think it should be timed to happen at the point at which each of the projects is mature enough that the majority of the community can focus on the effort and it's not in conflict with on-going development."
Watch the video interview with Joshua McKenty below:
Sean Michael Kerner is a senior editor at Datamation and InternetNews.com. Follow him on Twitter @TechJournalist.