• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Why learn and read Tapestry?

 
Ranch Hand
Posts: 232
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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?
 
clojure forum advocate
Posts: 3479
Mac Objective C Clojure
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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).
 
Rancher
Posts: 13459
Android Eclipse IDE Ubuntu
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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.
 
author
Posts: 99
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
 
Ranch Hand
Posts: 15304
6
Mac OS X IntelliJ IDE Chrome
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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.
 
Alexander Kolesnikov
author
Posts: 99
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
Posts: 13459
Android Eclipse IDE Ubuntu
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
 
Sheriff
Posts: 67746
173
Mac Mac OS X IntelliJ IDE jQuery TypeScript Java iOS
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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.
 
Alexander Kolesnikov
author
Posts: 99
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
Posts: 232
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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.
 
Greenhorn
Posts: 5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
Ranch Hand
Posts: 15304
6
Mac OS X IntelliJ IDE Chrome
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

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
Sheriff
Posts: 67746
173
Mac Mac OS X IntelliJ IDE jQuery TypeScript Java iOS
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
Posts: 99
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator


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
Posts: 232
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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.
reply
    Bookmark Topic Watch Topic
  • New Topic