Jonathan Ellis wrote:
On Wed, 10 Aug 2005 17:58:00 -0600, "Erich Pletsch" [1]<erich at uvnet.net>
said:
If you prefer simple, but have a bunch of Java developers at your
disposal, consider JSF.
Man. Twice in one day, I'm marveling at how huge the gap betwen
"Jonathan simple" and "J2EE simple" appears to be. It's like I'm living
in some kind of parallel universe.
What's your idea of simple? So far you've bashed Java and the J2EE
architecture as overly complex, but I haven't seen you suggest a
viable, enterprise class alternative.
Is "Jonathan simple" Windows? I wonder what you would have said when
Linux first came out. Certainly it was very complex to learn and use
when compared with the "Jonathan simple" alternatives (windows, mac,
etc.) that were available at the time. However, just because
something isn't the simplest solution, does not mean that it's not the
best. Nor does it mean that over time that complex solution will not
evolve to something much more simple.
I take as case and point EJB. EJB 1 & 2 are very complex and obtuse.
EJB3 is much better. Why? Someone came up with a much simpler way of
dealing with ORM persistence mapping - Hibernate. Then Sun hired the
creators of Hibernate to create EJB3 based on the hibernate model.
However, because Sun was behind EJB they went to the trouble of making
EJB3 completely backwards compatible with EJB1 & EJB2 and they also
invested significant resources in making sure the EJB3 will scale just
as well as EJB1 & EJB2 scale.
That's another reason to choose JSF. It's not going away and
everything you write now will work in future versions - unlike Struts
which breaks your code every time they do a minor version change.
The point of this rant is that simple is not always best.
Here's one example just for fun.
[2]http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JSFDevelop5.html#wp1003532
So they took all the problems the ASP.NET-style leaky abstraction gives
you, and on top of that made you have to write idiot boilerplate like
FacesContext context = FacesContext.getCurrentInstance();
to get anything done.
I'm glad it works for you, but I don't think you're (and by "you" I mean
"java developers on the plug") helping your case by calling stuff like
this "simple" in the context of a Linux UG. Many of us still buy into
that whole "small is beautiful" thing.
Again, the whole point of JSF is to get you out of that code. You
don't have to write
FacesContext context = FacesContext.getCurrentInstance();
Unless you're coding JSF manually. And, although I believe everyone
who uses JSF should learn how to code it manually (and understand what
that line of code actually means and does) you never actually have to
write it if you're using a decent IDE. The IDE should create all of
the basic XML configs, backing beans, etc. leaving the programmer to
focus his efforts on the back end code.
Most of what you do in JSF is use a simple taglib to lay out the
interface in the html page.
JSF is a relatively new standard that is being highly touted by Sun
Microsystems. They hired the creators of Struts to create the JSF
standard and to help write the reference framework. Please note that
JSF is a standard, not a framework, and that several competing
implementations of JSF are available.
Fantastic. Meanwhile, Microsoft continues to eat Sun's lunch by
providing solutions that
a) really do bear some resemblance to being "simple" in the normal,
non-J2EE-developer sense of the word, and
b) aren't fragmented by various vendors trying to "value add" their way
into incompatibility.
If Sun were trying to make money on Java then their investors would
have forced them to stop developing it years ago. Java doesn't
effectively sell Sun hardware or software - Sun's actual money
makers. However, Sun invests millions annually into Java development
and continues to push more and more of their products into the open
source community because Sun believes in the open source model.
What you're really saying here is that Microsoft's model is a good
thing - that proprietary benefits the developer because it's simple.
However, the history of Linux and of the open source community in
general would say otherwise. Open and competing standards eventually
lead to better, less expensive, more stable products than the products
that come from proprietary vendors.
Six months ago JSF was relatively unknown and was not worth much because
it was very shallow (in terms of components and support).
Why is JSF gaining so much momentum right now?
It is?
Maybe you're right; I only barely pay attention to J2EE these days but
if it were gaining as much traction as you're saying I think I would
have noticed.
As you said, you're only barely paying attention.
[3]http://www.javaworld.com and [4]http://www.onjava.com have both had
quite a few articles about JSF over the past 6 months.
You'll also find resources on both IBM and Oracle's web sites that
tout the technology. However, you will not find much on Microsoft's
web site :)
Which IDE to use? Well, I've had my programming team try four and this
is what we decided:
1. First we tried Java Studio Creator version 1. It worked o.k., but
it didn't have all the components we wanted.
2. We looked at Oracle's JDeveloper which has a lot of great components
(but realized that you have to license the ADF objects if you aren't
running it on OAS so we dumped it)
3. We used an eclipse plug in. It did the XML stuff o.k., but it
didn't have WYSIWYG page editing.
4. A few weeks ago Sun announced Studio Creator 2 in beta. So we
switched and has been a lot better.
Studio Creator 2 beta is a huge memory hog, and it's a little sluggish
at times (hopefully they fix that before they release it).
Ahh, the price of simplicity...
I'll reserve judgment on JSC2 until the final release version is out.
Meanwhile, the beta version seems to work good enough for me. And it
runs on Linux and OSX, which makes my developers happy.
-Jonathan
.-----------------------------------.
| This has been a P.L.U.G. mailing. |
| Don't Fear the Penguin. |
| IRC: #utah at irc.freenode.net |
`-----------------------------------'
References
1. mailto:erich at uvnet.net
2. http://java.sun.com/j2ee/1.4/docs/tutorial/doc/JSFDevelop5.html#wp1003532
3. http://www.javaworld.com/
4. http://www.onjava.com/