After years in the shadows, the open source Python programming language is becoming increasingly mainstream. There are more users and more tools. Backers of Python now argue that Python is ready for the enterprise.

But in a programming world already filled with languages such as Java, .NET, PHP and Ruby competing for share, is Python getting a bite? Its backers think so.

"Python is already being used at the enterprise level in many areas, and has been for years," said David Goodger, the director of the Python Software Foundation. "It's amazing to see the uses that Python is being put to, in Web services, commercial applications, and in-house projects," he told InternetNews.com.

Originally created back in 1991 by Guido van Rossum (who is now employed by Google), the Python development language is now overseen by the non-profit Python Foundation.

Goodger estimates that 80 to 90 percent of software development is done in-house, such as ultra-specialized mission-critical applications that are only used by one organization. "Python lowers the bar to the point where it's possible for the users to tweak their own software," he said. "The source code is easy to understand, the basic tools are all free, and there's no arcane build process to go through. Users can fix bugs and instantly react to changes. Python is ideal for in-house development."

Kevin Dangoor, co-author of "Rapid Web Applications with TurboGears: Using Python to Create Ajax-Powered Sites," thinks Python is already a mature technology -- and ready for its close-up in the enterprise. TurboGears is a Python framework that has become increasingly popular in recent years. Dangoor noted that Python is used by many large sites, including YouTube, and even as part of software used to manage rendering jobs, such as for director George Lucas's films.

Michael Foord, Senior Software Engineer at Resolver Systems and author of "IronPython in Action," thinks Python has reached a critical mass of adoption within the past few years, and, in his view, is seen as a legitimate language to use in an enterprise.

"The good news for Python programmers is that demand seems to be exceeding supply, but that will correct itself with time," Foord told InternetNews.com.

While Python can stand on its own merits, Foord noted that particularly important for Python adoption is the fact that both Jython (Python on the Java VM) and IronPython
(Python on .NET) are now both in a good state.

"This means that where the standard technologies are built on Java and .NET, Python is still a viable choice of programming language," Foord said.

While there is certainly competition among development languages, Python Foundation Director Goodger noted that the Python community tends to take a low-key approach though.

"Python doesn't have a huge marketing machine behind it," Goodger said. "We use grass-roots methods, word of mouth. Python is not a fad, and there are no gimmicks."

There are some significant challenges facing Python, not the least of which are the large numbers of developers currently using Java and PHP.

Dangoor who is also a Product Manager at Web application developer SitePen, commented that for Java programmers, the barrier is likely that Python is dynamically typed whereas Java is statically typed.

"I am firmly in the camp that believes that static typing does not buy you much safety and that you need good automated tests to help ensure that your code is correct and stays correct," Dangoor stated. "However, it is also true that static typing gives IDEs more information that they can use in helping out the user. Ultimately, though, Python's language features make your code so much simpler that you very quickly get over some of the IDE extras that you get from static typing."

PHP developers face an entirely different challenge. Dangoor noted that early on in TurboGears' days, he heard from PHP programmers that were looking for more structure.

"The greatest barrier for adoption by PHP people is likely the completely different deployment model and organizational structure for programs,"
Dangoor explained. "Python uses namespaces heavily, and PHP is just now getting namespaces. To deploy PHP programs, you just drop the files on the server and hit reload in your browser. Everything is loaded entirely on each request in PHP, which is both a blessing and a curse."

For Python Foundation Director Goodger the principal barriers to adoption for Python come down to three things: inertia, misconception, and awareness.

"Many businesses see the software development world in terms of Visual Basic, Java, and C/C++/C#. Some simply aren't aware of Python, yet, "
Goodger argued. "Any competent programmer can easily learn Python and be productive within a few hours or days at most."