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!

Sunday, October 15, 2006

The Ajax Experience -- Next Week

The Ajax Experience Just a reminder that The Ajax Experience is just over a week away.

Jesse Kuhnert and I will be presenting: Tapestry and Dojo: The Peanut Butter and Jelly of the Ajax World:

Dojo is an open source JavaScript library that provides an improved programming model for JavaScript and a suite of client-side tools and widges. Tapestry is an innovative open source client-side Java framework for building componentized web applications. At first glance, these two look like the Odd Couple, but pull back the covers a bit and you'll see a similar event model and design philosophy that makes these frameworks a cinch to put together. Tapestry 4.1 with Dojo brings about client-side Ajax joy without server-side Java pain.

I just got back from ApacheCon 2006, which was a fun time. I got a chance to talk Tapestry with members of the Shale team and with a few Tapestry users; I even demoed some of the new Tapestry 5 features (resulting in a few dropped jaws). Catch me at The Ajax Experience for more of the same! I also got a bunch of speakers hooked on the Hive boardgame.

It's interesting that one of Tapestry's core concepts, that the controller and view are tightly bound together, is a stumbling block for the Struts/Shale folks. They've been forced to deal with this outlandish, awkward, counter-productive separation between their business logic and their presentation/output for so long you can just see the gears gnashing together when thinking of something else, something that doesn't require tons of tedious coding and configuration. I'm in the process of adding some "Tapestry for Struts Programmers" documentation to the Tapestry 5 site, to try and outline the issues with action frameworks, and the solutions Tapestry offers.


Thiago HP said...

Hi, Howard!
One of the most influential feature of Tapestry 4 and previous is the previewability (did I get the word right?) of the page templates. It's just awesome how Tapestry templates are just HTML with some added attributes. Tapestry 5 template examples, until now, don't use HTML templates, making them not directly previewable in browsers and other HTML tools. I've seen one previous comment of you about this issue. What's its state now?
Thanks in advance. :)
Greetings from Brazil. ;)

Howard said...

"Invisible instrumentation" is my term for that aspect of Tapestry 4. It's actually a very easy trick, especially once I have a few other features working. It'll make a return shortly, but I have other, more dramatic things on my hit list first.

Tapestry 5 at this point has to be developed a bit here and a bit there; ratcheting up one section to make room to ratched up others. The process is beginning to accelerate rapidly.

Thiago HP said...

Just curious: what are the 'dramatic things' in you list? :)

Howard said...

A few ideas on my list:

Mixins to extend component functionality.

Some form of "conversation" or "flow".

Better, simpler, easier complex form support.

Preview mode to allow HTML designers to see complete pages, even with the heavy use of components.

In addition, there's many, many features in Tapestry 4 and 4.1 that need to be re-implemented, such as localization, validation, etc.

Thiago HP said...

Regarding validation, what about some simpler way to show validation error messages than Tapestry 4? One of the very few things that Struts got right was how simple is to show validation and other messages, regardless of their origin (ActionForm.validate() or Action.execute()).

Keep up the good work! I just can't wait for Tapestry 5!

Anonymous said...

It seems like Tapestry might be moving in the direction of absorbing the functionality of the Tacos library into the core framework. Is this an accurate analysis?

Anonymous said...

wrt The last question about tacos. I wouldn't say "absorbing" exactly. The end result will be the same set of functional abilities, but just as Howard is improving(ok, totally kicking ass) with T5 - so is the transition of features going from tacos -> tapestry.

But yes, the features are incorporated into the core of the framework and almost any normal operation you would do with normal Tapestry components. Hopefully the end result will be as seamless and intuitive as we can make it.

You don't see a lot of new components yet because the main focus has been on making writing ajax components easier, not brute force trying to create every component that could ever be needed..

Anonymous said...

Isn't tacos already integrated into Tapestry 4.1 albeit not 'completely'? Cos I get the impression here that the integration won't happen till t5.

By the way, I love the screencasts so much! Thanks Howard and keep up the good work.

I'm all for bleeding-edge features. Who cares about "backward compatibility"?!

Bioye from Nigeria.