Categories
java python spring

How does Spring for Python compare with Spring for Java

I am an avid fan of the Spring framework for Java (by Rod Johnson).
I am learning Python and was excited to find about Spring for Python.
I would be interested in hearing the community’s views on the comparison of
these two flavours of Spring. How well does it fit Python’s paradigms etc.

DISCLOSURE: I am the project lead for Spring Python, so you can consider my opinion biased.

I find that several of the options provided by Spring Python are useful including: aspect oriented programming, dependency injection, remoting, security, and easy database access.

Aspect oriented programming is, as they say, easier to implement off the cuff with python than java. But Spring Python makes it easy enough to add to existing python modules without editing their source code. The other solutions require meta-programming or modifying the original source code. I’ve already had one person visit our forums asking how to add an interceptor to a PyGame application, so he could unobtrusively “tap” some code.

Many people quickly assume “dependency injection” or “IoC” instantly means “XML configuration files”. Not the case. While we support an XML configuration, just leap directly into using python decorators.

I already know about one company that is using Spring Python as a key piece of their system. They are interested in making improvements, adding new features, and generally using it as a piece of their solution. They have also experimented with running it inside jython, in case that piques your interest.

At the end of the day, my suggestion is to examine all the features, and see if any of them suit your needs. Whether this is adding needless complexity or succinct value can only be determined by you. You don’t have to use everything; only what you need. To get some more info on what is available, I invite you to view Introduction to Spring Python, that I presented at SpringOne Americas 2008 conference.