I’m currently studying the Spring framework and JDBC (re-studying this because I really, really want to understand Hibernate) to do some web development/web services as a summer intern. I’ve been curious for quite some time about what advantages Java/Spring (or just Java EE for that matter) has over Django, Rails, PHP, etc.
As far as I can see, the latter frameworks are far more effective for rapid development and some of them scale quite impressively. Based on one of the posts here:
There really is no obvious benefit to using Java. The answer is always “whichever one you feel most comfortable with.” But I am interested in seeing what aspects of using Java frameworks is superior to that of the other listed frameworks and vice versa.
Nothing. Rails, PHP, and all of the Python frameworks can provide you with productive environments that perform well and scale. The Spring Framework is very mature and the learning curve is a bit steeper – I believe there are 55+ jar files in one of their most basic samples. Any experienced programmer will tell you that you are going to spend some time with each of them at some point, if you build a non-trivial web app.
What Spring buys you, generally, is a fairly sophisticated framework for building enterprise apps, e.g. when you are working with distributed systems and need to handle complex communications between apps.
So, the trade-off in frameworks is between support for functionality and ease of use. There’s no a priori proof or justification of any framework’s superiority, and good developers are generally productive in any of them.