Monday, December 17, 2007

Shale, Struts, Spring, Tapesty, Stripes, Wicket, Whatever, Rails

I believe I've stated my dislike regarding web applications before. And again. I'm not being Luddite here. I like interesting and exciting stuff, as I told.

But taking J2EE and Java as an example, well, web development really can be painful. There are a helluva lot of frameworks, and you really have to learn a stack of stuff before you even can start working. And you really have to figure out the best way to go. As for me, I wish I hadn't gone with Core J2EE Patterns: Best Practices first, but J2EE Best Practices instead -- or better yet, with J2EE Design Patterns. Those worked out the best in may case, at last. For the learning part. As for the Getting The Job Done part, well, I'm still not convinced I went for the best route. I had to create a very simple web app: very little functionality, no persistence, very lean state-machine. KISS being one of my two main principles I've gone with implementing all of it on top of JSP/JSTL: no frameworks attached. DRY being the other principle I came to the conclusion I had to implement the Composite View pattern. Dug up the aforementioned (and a lot of other) books, read everything back and forth, and never got it.

And that's when I realized why we see a ploriferation of opensource Java web application frameworks: Because nobody ever understood what the fuck people were talking about when describing the J2EE patterns, so newcomers had to roll their own framework. Then they had to identify some design considerations in the new framework, so they just simply invented some new patterns, and which started everything all over again. As long as there is no general mindset about which framework(s) to use, people are doomed to the framework-boom. This is why Rails being the de facto web-framework for Ruby is doing so good for the Ruby community.

No comments: