/me wipes tears from eyes

That's beautiful, man.


-BD

----- Original Message ----
From: Will Hartung <[EMAIL PROTECTED]>
To: Stripes Users List <[email protected]>
Sent: Friday, March 28, 2008 12:26:58 AM
Subject: Re: [Stripes-users] Stripes vs. Struts 2

My company is currently ready to migrate away from Struts 1.x.  The finalists 
are Stripes and Struts 2.  I'm doing my best to push Stripes, but others in the 
decision making process appear partial to Struts 2 -- I think mostly because it 
has a bigger community.


If you are looking for an action framework, then there simply is no competition 
to Stripes.


For the common use cases, nothing is simpler. It just works, and it stays out 
of your way. You can learn pretty much everything you need to know about using 
Stripes in 1 to 2 hours. You won't believe that's true, but it is. Because it's 
so intuitive and consisten, when you try something that you think should work, 
it does work.


It has advanced features, it's extensible, it has all of this power. And in 
80-90% of the use cases, you simply don't need it. I've been using it for, 
what, at least 2 years now, and everyone will tell you I know the least about 
it. Because in the 8 or so major applications I've done, I've not needed any of 
that extra power. I just use common sense, common patterns, and leverage the 
standards we work with. They'll also tell you that I've made it jump through a 
LOT of hoops.


We have a large library of custom tags that we've built to leverage JSP and 
Stripes for our system, roughly 50 of them now I think. All of those started as 
pages and idioms that we just refactored over and over again. 


We use Stripes in classic action style and we also use it with Ajax. It's a 
great fit in both scenarios, and for us the code is pretty much identical. 
Combined with our data tier, forms have an almost straight path through from 
submit button to database, and we barely have to write a line of code.


But in all of the code that we've done, all the tags, the core functionality, 
etc. it's Stripes that does our heavy lifting for us. Stripes makes our code 
just that much easier.


If you understand HTTP and the request / response cycle, and how parameters are 
passed, you've conquered half the battle. Learn Stripes SHORT and SIMPLE work 
flow and life cycle, and you're almost done. Master the painless, intuitive 
binding, event and validation model, and your done. DONE! That's it. Now you're 
an expert.


I've heard gripes about the community size before, and I have only one thing to 
say to that. I don't think I've ever seen a question go unanswered on the 
mailing list. I see unanswered questions on other mailing lists all the time. 
The traffic is so high, and the experts to user ratio so low, that not every 
question gets answered. Just mailing list fatigue.


But, see, Stripes is so simple, lots of folks can answer questions. Traffic is 
low enough that the experts aren't overwhelmed and can answer the questions.


And that's another criticism I've heard before. Stripes "moves too slow". We've 
been at 1.4.3 for some time, and 1.4.2 before that even longer. 1.5 is just 
around the corner. But, again, simplicity, and extensibility mitigate the need 
for lots of change. It just works, and keeps working. That keeps it really 
stable, and makes it a great foundation to build upon. I don't know if you've 
noticed, but HTTP hasn't changed a lot in the past several years. 


And that's Stripes lingua franca. That's what an action framework does, is 
helps you the developer leverage HTTP. Nowadays, we have web services, ajax, 
etc. But it's all HTTP at its core, and Stripes has got that down pat.


Look at other projects and they're adding the ball, the chain, and the kitchen 
sink. All of these long list of features that most folks DON'T use.


The core of the platform is the focus here. As I said, we built our own 
framework on top of Stripes, we pick and choose the components that work best 
and suit our projects. Rather than getting some monolithic beast, full of bugs, 
full of mixed design idioms, full of promises barely kept, you get a shining 
diamond forged in the fires of day to day use. When you're looking for 
infrastructure, which is what Stripes is, you don't want a framework that is 
some mashup of stuff off the web, or worse, reinvented stuff off the web. You 
want consistency, simplicity and robustness.


It's solid, it works, it's clean. It's small and simple enough to understand 
intimately, yet powerful enough to anything one would expect from an action 
framework.


Look at what other folks are adding to their frameworks and look at what we're 
getting in 1.5.


The Big Deal is the new Clean URL functionality, to make actions more REST 
friendly. Everything else is simplifying the system to make it more powerful. 
More consistent. More easier to use. We're not getting a boat load of new 
revolutionary features in 1.5. No boxed set of components with glizy, worthless 
demos. No full stack from Web 2.0 screens down to the persistence level, 
forcing their idioms on your projects. No, we get what we've always had, but 
better. More refined. More efficient. And simpler. 


Always simpler.


Stripes is an Action framework. It's proud of it, it's not drifting away to 
anything else. No delusions of grandeur, no plans on shaking the world with the 
next great idiom.


A diamond in the rough.


Regards,


Will Hartung









      
____________________________________________________________________________________
Be a better friend, newshound, and 
know-it-all with Yahoo! Mobile.  Try it now.  
http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Stripes-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-users

Reply via email to