Python Enterprise-Wide at the University
The IT Services department at the University of St Andrews, Scotland, develops and maintains software systems used in a variety of capacities throughout the university.
I had several years of experience working with Perl when I took my first serious look at Python back in 1999. Our team's projects were becoming bigger and more complex, and it was obvious that we needed to bring to them more structure and clarity. I had been looking at Java for some time, but its potential benefits seemed to come at the cost of a steep learning curve, and an overall increase in development time. In contrast, Python appeared to offer the prospect of having both clarity and productivity at the same time. And if we ever needed to make use of Java's class libraries there was always Jython, an implementation of Python for the JVM. The increasing number of Python books being published testified to the language's growing popularity, and the number of available libraries was beginning to rival Perl's. This convinced me to give Python a try.
Python Finds a Home
Soon thereafter, I introduced Python to my fellow developers in the IT Services department at the University of St Andrews, Scotland. It is now the mainstay of our software development efforts.
Python has been used successfully by IT Services for a number of projects. These have included systems administration scripts, where it is used alongside Perl and shell scripts, and also sizeable enterprise systems deployed across the university.
By using it on a number of projects, we have come to understand that Python's dynamic nature, support for high-level data structures, and easy object-orientation all lower the barrier to writing well-structured reusable code in less time. The language's clear and simple syntax helps to reveal the sense (or otherwise!) of our code. This makes it easier to understand and reason about code during development and - more critically - during later maintenance. The fact that Python is so easy to learn has been quite useful as well.