Don Brown wrote the following on 12/2/2005 12:44 AM:
When we started Struts Ti, it was conceived as a new
framework that aimed to simplify the developers life requiring no
configuration,
What??!!!! No configuration? You mean you aren't using the Spring/ EJB/
JASS/ RMI/ Hibernate/ JMS/ Struts/ Maven/ XDoclet/ Ajax/ AspectJ/
WebServices/ 1050 XML confif files/ KitchenSink solution? That framework
must suck.
But all kidding aside, that's my biggest complaint right now with Java
solutions that seem to be pushed - Too many 'extra' parts that you need
and lack of good documentation and/or examples in getting started.
Even when I taking my first stab into JSF a few months ago, I was quite
annoyed with having to go to several different web sites to get what I
needed, and even then, there was little documentation on how to
integrate everything. Now granted Craig and the others on the MyFaces
list were more than helpful, but I certainly can see how someone new to
choosing a JSF solution would be really overwhelmed. You don't just go
get "JSF" - you have to get a JSF implementation like MyFaces and then
also probably get Shale. But regardless, look how difficult the process
is... put yourself in the 'newbie' shoes. You hear the buzz word JSF so
you decide to google it. Go ahead put in "JSF" in google. What do you
get? Well one of the hits near the top is JSFCentral so you go and click
on that link http://www.jsfcentral.com/ That home page doesn't help
much for just getting started, you try some other sites (ignoring the
military ones). Next there is one on JSF-Spring.. newbie thinking "Oh
great, more confusion, I need to use Spring with this?." Well scroll
though the Google results yourself and start clicking on some links -
It's darn confusing to someone wanting to try and use the technology.
"Hmmm there's this Oracle stuff, there's this MyFaces stuff I keep
seeing... Hmm there is Shale stuff and I see Spring mentioned." I
understand JSF is a reference and not an implementation but I'd love to
get some focus group surveys going on with 'new developers' and give
them a day to explore the web with just the question "Figure out how to
get started coding a JSF application."
Even the examples out there for JSF applications aren't that great. Even
the MyFaces ones often break (hit the browser refresh button when going
through them). I understand, as has been mentioned numerous times
before, that JSF take a different mindset. To quote Craig:
<quote>
Fundamentally, in the Java-based web application architecture space, two
schools of thought are emerging as very popular ... an "action framework
based approach" (Struts 1.x, WebWork, Spring MVC, ...) and a "component
based approach" (JavaServer Faces, Tapestry, ASP.Net, ...).'
</quote>
I agree that both are viable and *I actually do LIKE* JSF - I'm not here
to bash it and I look forward to watching it progress. I would disagree
though with the statement that I believe many in the latter camp above
are claiming: that JSF is 'easier' to pick up for a newbie. I'm not
going to say that it will be 'more difficult' to learn, but I wouldn't
say it will be easier either. I guess if you know Zero about the servlet
api (basic request/response) stuff and you are using a JSF GUI designer
tool, then yea, for a basic app, I'm guessing JSF might be quicker. Do I
have empirical evidence to make this claim? No I do not. However, I've
worked with people over enough time on the Struts list to notice where
most of the questions come from. I still firmly believe that once we see
a lot of 'average-to-new' developers coding with JSF, that we'll see
just as many questions as you see new struts developers post. I
obviously can't state that as 'fact' but I'll be willing to bet that the
learning curve will end up about the same (assuming little Servlet
programming experience.. if someone has a decent amount of JSP/Servlet
programming experience, I'd actually tip to the side that Struts will be
easier to pick up).
I sort of digressed a bit with my above JSF comments. My point was that
I'm frustrated with the current trend that seems to push for the
inclusion of more and more 'stuff' into J2EE applications. Sure, some of
it is necessary, but some of it isn't. (Do I really need 50 Factory
objects in the event my web app becomes a Swing app in the future? Do I
really need 25 layers and 30 XML files to get to a DAO? Do I really have
to be injecting so much stuff at runtime?).
It's sort of funny.. for the heck of it, I pulled out my old JSP book
"Web Development with JavaServerPages by Fields/Kolb (Manning)" and
looked back at their simple example of a web application. The example
has one main servlet controller you submit to and you pass in the
request the name of a Command object which gets looked up in a Map and
execute called on it. Basically, in a sense, the concept isn't much
different from Struts. Someone that understands Java and understands the
Servlet API can see what's going on very easily. THIS is my big sticking
point with some of the new technologies. What is "going on" beneath the
covers becomes so far removed from the developer that I think we end up
making things more difficult instead of easing the burden on developers.
I could be totally wrong of course, but it's just my current perception.
How many times have you started coding using a new technology
implementation and you couldn't figure out why something wasn't working
right. Your options become a) google b) keep trying different things c)
ask on a mailing list or d) get out your debugger and start going
through a million files that are contained in the jars you downloaded
and hope you don't have a lot of injection stuff going on.
Don't get me wrong, I like using open source technologies to aid me. I
really don't feel like going back to coding JDBC by hand. I don't want
to be typing out.println(" ...") or even <%= %> in a JSP either. I do
tend to think, however, that Java apps many times tend to be bloated
with "too much" stuff. For the past three months I started working on a
client side (windows forms) .NET app written in C# and I have to admit,
other than the lack of some nice logging functionality, I was blown away
by the ease in which most everything was *there for me* provided by the
.NET framework. It was very nice.
This is why I was always against the idea of removing things from Struts
like Tiles (when talk of that was buzzing around). I don't think most
new developers enjoy having to hunt around the web in order to find
components they need to really make the progress they want. I also don't
think the framework should 'require' their use or prevent someone from
using a third party package, but the basics should all be there for
quickly getting started.
--
Rick
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]