my dog learned polymorphism*
The moose likes Other Application Frameworks and the fly likes Why learn and read Tapestry? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Frameworks » Other Application Frameworks
Bookmark "Why learn and read Tapestry?" Watch "Why learn and read Tapestry?" New topic
Author

Why learn and read Tapestry?

Sripathi Krishnamurthy
Ranch Hand

Joined: Mar 07, 2005
Posts: 232
Spring has web framework, so has Struts..So I am not sure how will I benefit from Tapestry framework..How is the learning curve for Tapestry and does the book "Tapestry 5: Building Web Applications" provide easy learning for a absolute beginner like me (in Tapestry)?
Is this such a framework which is a chill pill compared to all others?
Hussein Baghdadi
clojure forum advocate
Bartender

Joined: Nov 08, 2003
Posts: 3476

Spring has web framework, so has Struts.

Struts is a web framework.
How is the learning curve for Tapestry

I tried to learn Tapestry 4 in the past but its learning curve and the rareness of the on-line materials were stoppers for me.
I heard Tapestry 5 is much more easier to learn and to develop with (crossed fingers).
David O'Meara
Rancher

Joined: Mar 06, 2001
Posts: 13459

Based on my experience with this book, the learning curve is gradual and not that great. The book is aimed at teaching from the ground up, but personally it is not too long, not too fast and not too strenuous.

Tapestry is "yet another web framework", but despite being exposed to several others, I like Tapestry since it isn't too confusing, but it also keeps much of the development in the 'Java domain' rather than creating its own 'XML language' that needs to be learned. This book has encouraged me to jump and try some applications of my own, although I doubt that will transfer to real projects just yet.
Alexander Kolesnikov
author
Ranch Hand

Joined: Feb 26, 2005
Posts: 99
There are many Java web frameworks available, that is true. The majority of them are action-based, similar to Struts, very few, including Tapestry, are component-based. From my point of view, Tapestry is the easiest to use and the most powerful of the component-based frameworks.

The difference between action-based and component-based frameworks is somewhat similar to the difference between procedural and object-oriented languages. They are all good, and there are plenty of procedural languages being used around, but when we look into the future, we think about OOP.

The future is with the component-based frameworks simply because they increase the productivity of development very significantly.

I tried to learn Tapestry 4 in the past but its learning curve and the rareness of the on-line materials were stoppers for me.


Tapestry 4 is an excellent framework and a pleasure to work with, it uses the same page-oriented paradigm as Tapestry 5, but it does have some features that make it difficult for understanding in the very beginning, most notably abstract methods and properties.

Tapestry 5 is indeed much easier to understand - nothing abstract anymore. In fact, I've heard several times that my book is just too easy


Alexander Kolesnikov<br />Java Web Developer<br />SCJP 1.4, SCWCD 1.4, SCBCD 1.3<br /><a href="http://sundraw.ws" target="_blank" rel="nofollow">Tapestry 5: Building Web Applications</a><br /><a href="http://sundraw.ws/batik.jsp" target="_blank" rel="nofollow">Java Drawing With Apache Batik</a>
Gregg Bolinger
GenRocket Founder
Ranch Hand

Joined: Jul 11, 2001
Posts: 15299
    
    6

Originally posted by Alexander Kolesnikov:
The future is with the component-based frameworks simply because they increase the productivity of development very significantly.


Please please pretty please prefix this statement with "In my opinion..." because this is not a fact.


GenRocket - Experts at Building Test Data
Alexander Kolesnikov
author
Ranch Hand

Joined: Feb 26, 2005
Posts: 99
Well, Gregg, everything I write is only my opinion and not the law, of course

I am speaking about complex highly dynamic web applications with sophisticated user interface, and I think there will be many more of them with time. If the application is blog-like, it doesn't really matter that much what you use to build it.
David O'Meara
Rancher

Joined: Mar 06, 2001
Posts: 13459

Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 60785
    
  65

I am speaking about complex highly dynamic web applications with sophisticated user interface
Yeah, I write those. And without a complex framework, component-based or not.

While it can be argued that frameworks can help in some cases, saying that they are required for anything more complex than web sites showing pictures of kittens is a bit of a stretch.


[Asking smart questions] [Bear's FrontMan] [About Bear] [Books by Bear]
Alexander Kolesnikov
author
Ranch Hand

Joined: Feb 26, 2005
Posts: 99
Well, of course frameworks are not *required*. You can write absolutely any piece of software using assembler. It is all about productivity. If you are building complex webapps and denying frameworks, then I guess you are either putting together a private framework de-facto of your own, or you just have unlimited time and very few projects.
Sripathi Krishnamurthy
Ranch Hand

Joined: Mar 07, 2005
Posts: 232
Based on the comments below, I understand that Tapestry is component based and much easier to use compared to action based framework like Struts.
Struts is known to be very good and has lot of support from Industry. I have personally worked on Spring web framework and found it to be extremely good. Just because a component framework based application is available, should everyone switch to it?
Or does the sheriff's and authors over here define/dictate some kind of thumb rule which would help architects/developers to pin point the exact framework to be used in different circumstances?
For ex, if the web application is rules based use ABC, if the web application is highly complex use XYZ, if the application is simple to medium complex use PQR etc...
I DO understand that every application differs case to case..But one cannot easily adopt sea water being in fresh water..similarly being aware that struts and Spring web framework can solve all the problems, one should have a very strong case to move to a completely different application framework.
Gayathri Kum
Greenhorn

Joined: Mar 05, 2008
Posts: 3
Originally posted by Alexander Kolesnikov:

I am speaking about complex highly dynamic web applications with sophisticated user interface,


Hi Alexander,

From what I have read about tapestry from the web site, tapestry pages & there by the contained components are shared and pooled - so it basically implies that the page component tree is pretty much static. So if you need to display component 'A' in one particular case and something else in another case , how is it done in tapestry?. Basically what am trying to say is that its not between component 'A' and component 'B' - i know that you can probably do some conditional thing here - ( frankly I'm not sure how it is done - i haven't written any tapestry code but I w'd assume that it cane be done in tapestry). But what if am not even sure about type of 'B' until an event occurs - because this in my mind qualifies as a 'highly dynamic' use case.

thanks,
Gayathri





'highly dynamic' user interfaces.
Gregg Bolinger
GenRocket Founder
Ranch Hand

Joined: Jul 11, 2001
Posts: 15299
    
    6

Originally posted by Sripathi Krishnamurthy:
Based on the comments below, I understand that Tapestry is component based and much easier to use compared to action based framework like Struts.
Struts is known to be very good and has lot of support from Industry. I have personally worked on Spring web framework and found it to be extremely good. Just because a component framework based application is available, should everyone switch to it?
Or does the sheriff's and authors over here define/dictate some kind of thumb rule which would help architects/developers to pin point the exact framework to be used in different circumstances?
For ex, if the web application is rules based use ABC, if the web application is highly complex use XYZ, if the application is simple to medium complex use PQR etc...
I DO understand that every application differs case to case..But one cannot easily adopt sea water being in fresh water..similarly being aware that struts and Spring web framework can solve all the problems, one should have a very strong case to move to a completely different application framework.


The simple answer is this. There is no golden hammer. No framework is going to fix every problem and no framework is going to be perfect. If anyone tells you any different they are either ignorant or they are lying to you.

Based on the comments below, I understand that Tapestry is component based and much easier to use compared to action based framework like Struts.

This is all relative. It might be easier for someone that knows Tapestry but has never used Struts. The reverse is not true. You can't state something so general.

I have personally worked on Spring web framework and found it to be extremely good. Just because a component framework based application is available, should everyone switch to it?

That's great that you found Spring MVC extremely good. If it is working for you, do you think you need to switch?

Or does the sheriff's and authors over here define/dictate some kind of thumb rule which would help architects/developers to pin point the exact framework to be used in different circumstances?

No one can answer that because there is no right answer. What the author needs to be doing this week is telling us specific reasons why Tapestry is better than A, B and/C frameworks. So far I've heard "component oriented" tossed around like a hot potato but there is no merit to that argument.
[ March 05, 2008: Message edited by: Gregg Bolinger ]
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 60785
    
  65

I'm going to call shenanigans on the "frameworks will make you more productive" line as well.

While frameworks could make some people more productive, but it's not an absolute certainty. In my experience, you either spend time writing your own code -- tuned to exactly what you need to be doing -- or wrestling with generalized framework code trying to get it do what you want. In the end, it's usually a wash. In fact, I've found that the larger and more complex the project, the more you tend to run into corner cases where the big frameworks get in the way rather than helping. And then you spend your time writing crufty code to get around the limitations.

Of course these are my experiences and won't apply to everyone. This is why I always urge people to get a good handle on Servlet and JSP technology before diving off into a framework. That way, they have the skills they need to decide which, if any, framework suits their own needs.

This is not a slam against you, or even Tapestry (which I haven't touched in may years), but just calling bluff on absolute statements like "frameworks are needed for big projects" and "frameworks will make you more productive".

As with any other discipline, you need to pick the right toolset for the job, and to have the basic skills necessary to make that determination.
[ March 05, 2008: Message edited by: Bear Bibeault ]
Alexander Kolesnikov
author
Ranch Hand

Joined: Feb 26, 2005
Posts: 99

This is why I always urge people to get a good handle on Servlet and JSP technology before diving off into a framework. That way, they have the skills they need to decide which, if any, framework suits their own needs.


Yeah, that's true. You can pick up a frameork very quickly, but you won't go far if you don't understand how it works inside. And (almost?) all Java web frameworks are based on Servlet API.

I do agree with most of what you are writing, Bear! And where I do not agree... Well it really depends on what exactly you are doing.
[ March 05, 2008: Message edited by: Alexander Kolesnikov ]
Sripathi Krishnamurthy
Ranch Hand

Joined: Mar 07, 2005
Posts: 232
Thank you to everyone for your comments..
What I have gained out of this is not to experiment with anything new if the framework which I am aware of does the job for me. Because I would know how to develop faster and better applications with the available framework knowledge. BUT if one has TIME, INTEREST and other helpful factors which allow to learn and develop using a new framework, then Tapestry is a good choice.
I would infact try to learn Tapestry in my free time just to see how good it is compared to Spring MVC.
 
 
subject: Why learn and read Tapestry?
 
Similar Threads
Why so many frameworks?
Where does Tapestry shine over JSF?
Some responses from the author
Testing Tapestry
Tapestry In Action by Howard M. Lewis Ship