Why is IoC / DI not common in Python?
        Posted  
        
            by tux21b
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by tux21b
        
        
        
        Published on 2010-03-17T11:10:33Z
        Indexed on 
            2010/03/17
            11:21 UTC
        
        
        Read the original article
        Hit count: 695
        
In Java IoC / DI is a very common practice which is extensively used in web applications, nearly all available frameworks and Java EE. On the other hand, there are also lots of big Python web applications, but beside of Zope (which I've heard should be really horrible to code) IoC doesn't seem to be very common in the Python world. (Please name some examples if you think that I'm wrong).
There are of course several clones of popular Java IoC frameworks available for Python, springpython for example. But none of them seems to get used practically. At least, I've never stumpled upon a Django or sqlalchemy+<insert your favorite wsgi toolkit here> based web application which uses something like that.
In my opinion IoC has reasonable advantages and would make it easy to replace the django-default-user-model for example, but extensive usage of interface classes and IoC in Python looks a bit odd and not »pythonic«. But maybe someone has a better explanation, why IoC isn't widely used in Python.
© Stack Overflow or respective owner