Tapestry Training -- From The Source

Let me help you get your team up to speed in Tapestry ... fast. Visit howardlewisship.com for details on training, mentoring and support!

Saturday, November 07, 2009

Next Steps for Tapestry

I've been consciously letting Tapestry 5.1 sit and stabilize for a while ... a time that's stretched a few months longer than I initially intended.

This is due to a number of factors: my return to independent consulting, my desire to write a definitive Tapestry 5 book, and preparations for many trips and speaking engagements.

All of these factors have worked on each other: I've been improving and extending my Tapestry Workshop training materials which can be quite time consuming. I've also (over the last several months) been on the road several times, talking about Tapestry or doing Tapestry training.

I do want to write a book on Tapestry but if I start writing 5.2 code, I know I'll be sucked right in ... lots of code (that darn Spring Web Flow integration for sure this time) and bug fixes.

In addition, I've had an embarassment of riches: two main clients, one regular part time, and the other requesting (but not always getting) all my remaining time. I also have additional clients and training engagements waiting in the wings. I simply have a lot of draws on my time.

As usual, working on real-world projects lets me experience the "rough edges" of Tapestry and fills me with ideas on how to address those in the next release ... often by splitting up Tapestry services into smaller, more easily overridden chunks and carefully moving internal services out into the public APIs.

Finally, I've been very pleased by the fact that as I've stepped back temporarily from my normal stream of commits, the other Tapestry developers have stepped in and filled the gap. There's been quite a bit of activity especially from Igor that I've barely had a chance to keep up on.

So the question is: do I wait and see if time opens up in Q1 to actually start on a T5 book ... or do I jump into 5.2 coding and leave books to others? It's much, much easier to write code than to write a book ... a book is a large amount of concentrated effort. It's very hard to accomplish anything on a book using an hour here or an evening there ... whereas Tapestry's code base lends itself to that kind of effort quite nicely.


Massimo said...

So you post the question and the answer too.

Howard said...

Not really ... I'm feeling on the fence between diving into the 5.2 code base and starting in on the book. I really feel that it is one or the other.

brian said...

You should do what's best for you but I think a book would do more for the long-term success of Tapestry. Getting a larger community is key and I think a book will expand the community more than going from 5.1 to 5.2. Maybe you could plot out the 5.2 roadmap and get some of it done without your direct involvement.

capacman said...

I think it depends on the features that will be in 5.2. If 5.2 will include a lot of features than writing a book before it, will make the book out of date. How about releasing 5.2 and than writing a book?

Alfonso said...

tapestry 5.2! then.. the book :)

Jaime78 said...

I think the book is better ... for us, who are developing with your framework. Maybe not alone, maybe 2 authors.

It would be interesting to add more functionality to the framework but,I think we cannot take full advantage of the framework with out a good book.

The good think to write it with a co-author is that you could spend some time planning the feature of Tapestry but giving us some knowledge too.

It would be good an editorial like pragmatic programmers. What I like from this editorial is that they release beta versions of the book, so we do not need to wait until you finish the book to start reading it.

scotartt said...

Please write the damn book already. There's a paucity of documentation, book really needed. Masses of features pointless if if takes ages to find out how to use them.

Adedayo Ominiyi said...

I agree with capacman. If the new features are really cool then definitely I would want T5.2 b4 a book. Also in your book I would like to see practical applications of Tapestry IOC.

Craig St. Jean said...

Maybe unreasonable, but the best approach in my opinion is book on 5.1, the work on 5.2, then update the book as a second edition with what you changed. Its much easier to update to those new features than it is to start from scratch so the second edition shouldn't take too long I imagine.

Pawan Kumar said...

I also agree with some people that the community should have a great book with working examples for newcomers. This would expand the horizon of Tapestry and important for long term success.


Maybe somebody should translate the German Tapestry book to English (http://www.amazon.de/Tapestry-Die-Entwicklung-Webanwendungen-Leichtigkeit/dp/3827328446). Then Howard could concentrate on 5.2 :)

This book covers the basics and details about Tapestry 5 (5.1 and even a preview to 5.2).

Karl said...

Please do the book. I would be nice to have a new reference for T5.

iceallein said...

I really loved the idea behind Tapestry, but pity that it has updated too frequently just like kind of experimental open-source product in the past few years, which led to big loss of potential users out there, besides there're too less online resources available to learn, the latest book i bought which is written by author "Alexander klesnikov" (Tapestry 5) but pretty shallow, more suitable for beginner.I'm really looking forward to your book and wanna go deeply into it.

I think the latter version of Tapestry 5 should be focus on the simplicity of creation and re-usability of customized component(such as, once created then can be used anywhere without configuration file), after all in version 5.1 creating customized component is somehow time-consuming.

Now the brother "wicket" rocks because of very active community and bunch of aggressive developers, don't let it kick Tapestry's ass! it's time to keep up!

Howard said...

@iceallein -- I don't follow you? There's no configuration to Tapestry components, no base classes, you have live class reloading, it's easy as cake. I'm not aware of any technology anywhere that makes creating reusable components easier.

I can't say this enough: Tapestry 5.0 to 5.1 is an easy upgrade, and 5.1 to 5.2 will be even smoother. Change the version number of your dependencies, get new features.

Doug said...

I used to be a big fan of Big Book documentation. I've got hundreds of dollars worth of O'Reilly books. They are almost all out-of-date and I almost never open any of them.

What I DO open a LOT and are up-to-date are the two dozenish O'Reilly pocket references I've got. Some are a lot better than others, but universally they are 1. inexpensive therefore easy to keep up-to-date, 2. easy to take on-the-go, and 3. quick to flip through. I don't need a 100 pages to tell me what 2-3 pages would tell me about the string functions in PHP for instance.

The one thing I would really look to a Tapestry book for would be something on how to get started, how to get a project setup, get the latest Jetty going in Eclipse, and some best practices. Say like 75-100 pages aimed at getting up and going with all the right pieces, and moving in the right direction.

So for me: Getting Started in Tapestry booklet, 5.2 code, 5.2 Tapestry Pocket Reference.

格拉斯 said...

Hi Doug, I bet you never flip a page on Alexander klesnikov's book, it does address what you've asked for, but I agree with iceallein, it is a bit shallow and is suitable for beginner only.

Dale said...

OK, I am recent newbie in the Tapestry world* and fighting** my way through; and my 2 euro cents are:

@Doug: There is a very cool ref card for T5 at DZone! It helps a lot.

@Howard: IMHO go for 5.2, definitely :) Instead of writing the book it would be probably better to coordinate effort between you, developers and community to:
* maintain Wiki HowTo; then again someone with authority should be reviewing articles so that there is no nonsense
* get that page some better ranking as that comes rarely in goog search results
* get together some really cool, live FAQ, something along the lines of Stack Overflow
* Make a space and links on project page for 3rd party components, e.g. Chenille Kit.
* make some location where other 3rd party components could be uploaded, used and possibly rated by others. For example I would be just fine to contribute some components I have created and I think are generic enough to be reused elsewhere. But am too lazy/busy/have other reasons to not create a standalone project for that on SF, GoogleCode or somewhere. Maybe one "umbrella" project for all these components libs would do...

Sorry for long post,

* and actually web app world a bit too as I resumed doing this after like 6 years :)
** not really that much fighting but sometimes it is hard to goggle for info...

keykubat said...

A t5 book.
& more examples & tutorials (updated,not out-dated) .

& t5.2.

tapestry5 is lack of more examples & tutorials...

Not supported framework by users but well designed & coded & good framework ?
Professionals(gru's) use this framework but lack of user base (newcamers)?

MiniX said...

In my opinion, a good book is what I need. Eventually some up to date tutorials and howtos

dwi ardi irawan said...

IMO, tapestry 5.2 first, documentation of tapestry 5 can be based on mailing list. that the best source available. after upgrading to tapestry 5.2 then do the book. ^^,

Lauri said...

If you see the horrible code that is written out there, then you don't want to write only one book but entire bookshelf instead.
I'd like to see more examples on creating components. Something for beginners and something on each aspect that can be changed when creating a component. Sure there are some resources, but following them isn't hat easy (for beginners).
And new users area always beginners for Tapestry, doesn't matter how much other frameworks they have used before.

Ðavîd said...

Without a doubt I think the BOOK would be the best choice. It doesn't have to be a tome of 500 pages or anything. But at least get something out there.

Why not map out 5.2 and let the opensource community deliver the release?? That is the only way this project will go to the next level of adoption and completeness anyway in my opinion.

celiosilva said...

hello, I vote for the book.. but please an "advanced one", because we already have a lot of tutorials and books for beginners out there.

mveloso said...

T5.1 is stable and powerfull, but miss a better documentation. Not necessarily a book, for while.

Paulo said...

I vote for the book, with lot of code and explanation.

Michael said...

I vote for the book as well. I am looking to move a Struts 1.x project to either Wicket or Tapestry. My preference is for Tapestry which I feel is technically superior and a better match for the design of my application... but if I had to make the decision today, I would have to use Wicket because of the superiority of the documentation an examples available (even if they are slightly dated).

I am not making such a move in the near term - thankfully. In my test application I had two use cases that quickly left me digging in JavaDocs and guessing what method parameters do:
(1) I needed to bind form properties to attributes of a dynamic map-like bean object by introspecting the attributes of the bean and which of these attributes were configured to be visible
(2) I needed a means to decide what type of component was used to display each attribute based on a configuration setting

In my experiment, I figured out an elegant solution for (1), but I never solved (2) satisfactorily.

We (I) need a book that details some of these harrier edges of Tapestry. If I was a private consultant I could just use Tapestry and figure out how things work - but in my enterprise team setting, I need better documentation to bring team members up to speed with how to use the framework effectively.

tolga said...

Well I have seen a lot of companies, which would use Tapestry. But because of the lack of Web Flow, most of them ended up using other frameworks (JSF..). So I think Tapestry 5.2 is much more important.