blob: 34f5c759ade3cdf9de2eee146e6ff41f896a49d4 [file] [log] [blame]
<?xml version="1.0"?>
<!-- $Id$ -->
<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.2//EN" "./dtd/document-v12.dtd">
<document>
<header>
<title>Jakarta Tapestry - Quotes</title>
</header>
<body>
<p>This page contains quotes from the Tapestry community, appearing on the
Tapestry mailing lists
and in online forums such as
<link href="http://theserverside.com/home/thread.jsp?thread_id=12750" target="_top">TheServerSide.com</link>.
</p>
<p>
<small>These entries have been editted for grammar and readability.</small>
</p>
<section>
<title>Dorothy Gantenbein</title>
<p>
We used Tapestry to implement the monitoring and administration console
for
a wireless network management product. Initially, we implemented a
demonstration using standard JSP but we realized that JSPs presented
difficulties for implementation. Some of our requirements were a very
aggressive development schedule, integration with EJB 2.0 beans, ability
to
write modular reusable components, very reliable, easy code maintenance,
internationalization, and of course easier debugging than the generated
JSP
code. Tapestry met all of our requirements and helped us proceed onto a
successful release.
</p>
<p>
After reading the tutorial and reviewing the examples, we started with
writing simple components. We started with a StatusImage
component. The
GIF for the status image should be localized and selected based on
standard
network status states. Another example of a simple component was a
validating IP address
text field. The IP address field uses the Tapestry
validation framework. After that, we moved onto more complex components
like the StatusTable shown in the figure.
This table has a varying number of rows depending on the configuration of the product using the Tapestry
Foreach component (very cool). This StatusTable makes use of another
essential Tapestry component, the Conditional. Looking at the Actions
columns, the set of actions is conditional based on the row. All this
logic
happens in the Java class and is not embedded into our HTML making
maintenance much easier.
</p>
<p>
Finally, we integrated servlets and JSPs into our Tapestry web
application.
We needed servlet integration for charting and JSPs for reporting. With
all
this flexibility, we could use each technology where they worked best.
Overall, all of Tapestry's flexibility along with its clean
object-oriented
architecture made our web interface shine.
</p>
<link href="images/success/edit-form.gif">Screen shot 1</link>
<link href="images/success/status-table.gif">Screen shot 2</link>
</section>
<section>
<title>Jason Cox</title>
<p>
When I see things like "I can use Struts+Tiles+JSP 2.0 Taglibs" I kind of chuckle.
While you have to learn three different, albeit related, technologies
I just have to use Tapestry. With this kind of mindset, is it any wonder
companies are looking to ASP for their front-ends?
</p>
<p>
When I took my current position, I decided to use ASP to develop the front-end
piece for similar reasons ...
I was fortunate to find Tapestry before I started development in ASP.
Not only did it allow for me to meet my goals, but I actually have fun developing now.
I used to spend at least a day formatting and introducing the
proper presentation logic into an application. What took a day
now takes maybe a couple of hours. Performance is excellence, the MVC design couldn't be
better, and no messy JSP compilations to worry about.
</p>
<p>To me, simplicity with functionality is the greatest achievement of the Tapestry framework.
</p>
</section>
<section>
<title>Paul Witt</title>
<p>
Of all the web presentation frameworks out there, Tapestry is the most elegant. </p>
<p>
For me ELEGANT is the goal of a programmer/developer (I've been around awhile).
When, in your MVC framework, VIEW is pure HTML, and your CONTROL - controls (wow - nice control; exception/debugger/session handlers they are --
well, elegant) and the link to your model is - often as simple (elegant) as get/set,
then the philosophy of web applications has moved to a new and cleaner level.
</p>
<p>
But elegance is a moving target, and Tapestry, with this latest release 3.0,
puts me not only on board (I already am) but I've fastened my seatbeat, and I'm ready for takeoff.
</p>
</section>
<section>
<title>Miles Egan</title>
<p>
The learning curve for Tapestry is still somewhat steep ... but I'm
really enjoying it now that I'm beginning to get it and, most importantly,
I don't feel like I'm writing much, if any, superfluous code. It really seems
like all the code directly contributes to functionality and that there's very little boilerplate.
One of the hallmarks of a good framework, in my opinion.
</p>
</section>
<section>
<title>Andrus Adamchik </title>
<p>
You know, Tapestry in fact is different from your average JSP taglib.
Anyone who had a chance to use component-based web frameworks
(like WebObjects, I don't know any other in this category) would know what I
am talking about. This is a *different* and highly powerful and convenient way of doing things.
</p>
<p>
Surprisingly enough with so many web application layers out there, Tapestry seems to be the only
one (OpenSource, that is) that allows you to create a set of reusable components
and build the design around this. The level of reuse is unmatched with anything JSP.
In many ways it is even stronger than commercial implementation of the same design idea (WebObjects).
In particular it makes it extremely easy for graphics designers to modify HTML, since dynamic content
does not use *any* custom tags. Also the amount of code (and time) it
takes to hook up an average model layer to the HTML presentation is so small
that at first you may think you've missed something along the way :-).
</p>
</section>
<section>
<title>Chris Wilson</title>
I've said it before and I'll say it again...
You owe it to yourself to take a serious look at Tapestry.
It's the most exciting model in Java web development
I've seen in a long time. It really allows you to build applications--not web sites--that "execute on the web." Very cool stuff.
</section>
<section>
<title>David Solis</title>
<p>
Tapestry is the best solution to the presentation tier and it provides a clean separation of content and developer code.
First, I extended it for WAP support, then I developed several WAP components and
finally I developed a complete email application for WAP in record time.
</p>
</section>
<section>
<title>Jim Birchfield</title>
<p>
When using Struts or Velocity, in order to see what the finished
page will look like, our graphic designers
must assemble the application, deploy it ... they
basically lose all the luxuries of WYSIWYG development ...
I spent 30 minutes or so with one of our graphic designers here,
and he was giddy at what I showed him as I redesigned one of our smaller
apps using Tapestry.
</p>
<p>
Bottom line for us is this: We have graphic designers and we have developers,
and I don't want them to necessarily have to know each others' job to get things done.
Tapestry is the best framework I have seen that offers this sort of separation. </p>
</section>
<section>
<title>Jiri Lundak</title>
<p>
As a 'lay developer' using Tapestry I can only recommend it.
We have built a content management system
based on Tapestry, plus multiple sites that are now powered by it.
Thanks to its component architecture, we
are able to publish any kind of our metadata-driven business objects with just
a handful of generic, highly dynamic pages, using customizable components.
All business logic is encapsulated in business objects
and services, so there is not really much logic in the presentation layer besides the navigation parts.
</p>
<p>
The learning curve is not flat, but is really worth
the effort. If you need to bring a dynamic web-app to the browser
Tapestry offers many predefined and stable components to build on.
We have gone with Tapestry and we will continue to use it
in the next couple of projects needing a web-interface, too.
</p>
</section>
<section>
<title>Malcom Edgar</title>
<p>
I just wanted to send you a quick note of appreciation for your Tapestry
framework. It is a truly original and innovative approach.
</p>
<p>
While the learning curve is steep compared to thinner webapp frameworks, I
have found it is well worth the effort. The amount of code I am having to
write is greatly reduced and I am achieving a much greater level of reuse.
</p>
</section>
<section>
<title>Mind Bridge</title>
<p>
I just want to second the positive comments about Tapestry.
We have evaluated a lot of frameworks in the past couple of years,
and in our opinion Tapestry is the only open source Java framework
at the moment that provides everything necessary for Web-centric component
oriented development.
</p>
<p>
The most important feature of Tapestry is
indisputably the ability to package common
Web functionality into components that can then
be effortlessly reused again and again. Building a
Tapestry application is pretty much like playing with
Lego bricks -- all you have to do is just fit the different
pieces together and not worry about how each brick would
work internally or how the different pieces would interract
with one another (an OO approach at its best). As a result,
after gaining some experience and accumulating a set of components,
one can build incredibly complex Web applications quickly and easily,
and yet be assured that those applications are of a very high quality.
</p>
<p>
Tapestry has another major advantage as well --
it provides very clean separation between presentation and logic
(cleaner than that of the most commonly used frameworks). The
design of its templates is also very mindful of the actual web
development process, accomodates very nicely the work of the
web designers from the start, and allows them to play along
even in later stages of the application development. This,
again, is something rarely found in the other frameworks.
</p>
<p>
I will mention just one more superb feature -- the Tapestry design
and APIs provide a huge number of extension points that allow you to
customize the behaviour of the framework almost to no
end. In order to achieve a specific goal for one customer we twisted the
behaviour of the system so much, that Howard would faint if he sees
it. In any case, being able to easily modify and extend specific elements
of the framework is a major advantage.
</p>
<p>
This may sound a bit like an advertisement, but it is not --
we are just very satisfied users. We've
got a significant increase in productivity, we've got increased quality,
we've got happy web designers, and we've
put an end to the repetitive operations -- it would be hard to think
of a better scenario.
</p>
<p>
If you are experienced in OO and/or components and care about
Web development, I would suggest that you have a look at Tapestry.
I would be very surprised if you do not find it
a far more viable solution for your needs than JSP or Struts,
for example.
</p>
</section>
<section>
<title>Luis Neves</title>
<p>
Actually what drove me to Tapestry wasn't the saved development time, it was
the sheer beauty of it :-)
</p>
<p>
I come from an ASP/VB background and I was getting sick and tired of that mess, designers
constantly asking me "Is it OK to move this part of code to the bottom
of the page?" , "Could you take a look and see if I didn't mess anything
when I added the picture?", "Ohh, I'm sorry. that was an include file,
I thought it was just a comment" ... well you get the picture, and tools like
Dreamweaver only help to some extent. The
perfect separation of roles was what drew me to Tapestry ... the rest of the things
(and there are a lot of them) were the iceing on the cake.
</p>
</section>
<section>
<title>Adam Greene</title>
<p>
The company that I work for did a research project with the
National Research Council of Canada, and we spent several months reviewing
web services, J2EE, and Database systems for a technical risk project that we were doing. Out of that we learned 3 things:
</p>
<ol>
<li>Web services were immature. </li>
<li>J2EE was overrated. </li>
<li>That JSP and anything else that stuck anything
other than HTML into an HTML file was not only counter-productive but
dangerous to the life of the project.</li>
</ol>
<p>
I will give you an example. We have a "legacy" project that is done in
JSP (all of our development efforts have moved to Tapestry). We had to perfect the
logic of the project while the text and look of the project was still in flux. Everytime our
graphics guys fixed the pages, code would get damaged, or vice versa. Everytime
our graphics guys created new pages, our programmers would have to go mark
up the pages with code and could not work on the logic of the given page until after
our graphics guy had finished it. On top of that the whole system has to be translated
into French. Which means that we not only have doubled our work, we have actually ended up
tripling it, pushing back deadlines, etc. If it had not been for the fact that we "inherited" the code,
it would have been done in Tapestry to start with, because:
</p>
<ol>
<li>Our graphics designers could do their thing without disturbing the work of our programmers. </li>
<li>The programmer wouldn't have to wait for the designers to finish a page to start work on it.
Many times our programmers work with pages that are simple white with text and form fields and after it works,
our designers integrate the pages together. </li>
<li>Localizing for French simply involves
copying the existing layout, replacing English text with French, and saving it with a new file extension ... no need to recreate the code of a JSP. </li>
<li>If our client doesn't like the look, it is a
simple matter of changing it, no code is disturbed, no code is broken,
it will work when it is done being modified without our programmers even
looking at it. (And our designers don't even know Java....)</li>
</ol>
<p>
If you are using a language or framework that puts proprietary (non-HTML) code into your
templates or HTML files, I seriously suggest that you take a look at the approach that Tapestry
takes as you will probably find that it is quite revolutionary in its approach to web development (as stated above).
</p>
<p>
So take it from someone who just researched existing and upcoming technology for three months, Tapestry
frags the snot out of frameworks like JSF, Struts, and the like.
</p>
<p>
I will give Apache one thing though, they have built a lot of production quality
software that beats even Microsoft. We added Torque to Tapestry to
fill a void in the database support (Tapestry by itself has no database support) because Tapestry's model
fit so perfectly that I can actually create a web page to display all the records in a table using only
14 lines of Java code, of which less than half (only 6 lines of code) are actually
hand written (the rest are auto-generated by Eclipse). So I guess that is another point
for Tapestry: Integration of other packages / APIs that support a Java Beans
style is a no-brainer. No taglibs need to be written, no new scripting needs to be created, it simply works.
</p>
</section>
</body>
</document>