I write enterprise Java applications and web services at work (Spring, Hibernate, Maven, RESTEasy) and PHP (CakePHP) and Python (Django) for my side projects.
While I do see the value that Inversion of Control, Aspect Oriented Programming etc. that Spring brings in, I am not sure how massive web applications that are not on the Java stack manage without a framework like Spring.
So, do the developers just have to "put up with" tightly coupled components and other grievances that Spring eliminates or am I missing something?
For those unfamiliar with Spring, the features we use the most are:
Inversion of Control container: configuration of application components and lifecycle management of Java objects,
Aspect-oriented programming: enables implementation of cross-cutting routines,
Transaction management: unifies several transaction management APIs and coordinates transactions for Java objects.