Great News. 2011/3/18 jqzone <jqz...@gmail.com>
> That great! > > On Thu, Mar 17, 2011 at 8:17 AM, Howard <hls...@gmail.com> wrote: > > > I've always had a love/hate relationship with JavaScript; some of the > > earliest motivations for Tapestry was to "encapsulate that ugly > > JavaScript stuff so I don't have to worry about it again." However, as > > I've come to appreciate JavaScript, over time, as a powerful functional > > language, and not as an incompletely implemented object oriented > > language, my revulsion for the language has disappeared ... even > > reversed. > > Back around 2006, I started adding the client-side JavaScript features > > to Tapestry 5; this started with client-side form field validation, and > > grew to include a number of more sophisticated components. The good > > news is these features and components are fully encapsulated: they can > > be used freely throughout at Tapestry application without even knowing > > JavaScript. Tapestry includes the libraries (and related CSS documents) > > as needed, and encapsulates the necessary initialization JavaScript. > > The APIs for this were revamped a bit in Tapestry 5.2, but the core > > concept is unchanged. > > The bad news is that the client-side is directly linked to Prototype > > and Scriptaculous (which are bundled right inside the Tapestry JAR > > file). These were great choices back in 2006, when jQuery was new and > > undocumented (or so my quite fallible memory serves). It seemed safe to > > follow Rails. Now, of course, jQuery rules the world. I've been talking > > for a couple of years about introducing an abstraction layer to break > > down the Prototype/Scriptaculous dependency; meanwhile I've recently > > seen that Rails and Grails are themselves moving to jQuery. > > However, that abstraction layer is still important; I have clients that > > like MooTools; I have clients that are using YUI and ExtJS. > > Certainly, it would have been too ambitious to try to start with such > > an abstraction layer from day 1. At the time, I had no real idea what > > the relationship between JavaScript on the client, and the application > > running on the server, would look like. Also, my JavaScript skills in > > 2006 are a fraction of what they are now. With several years of coding > > complex JavaScript and Ajax components for Tapestry, for TapX, and for > > clients, I think I have a much better understanding of what the APIs > > and abstraction layers should look like. > > So suddenly, I have a number of goals: > > - Allow Tapestry to work on top any JavaScript framework > > - Support Prototype/Scriptaculous and jQuery as substrate > > frameworks "out of the box" > > - Make the built-in Tapestry library first class: documented and > > release-on-release compatible > > - Keep backwards compatibility to Tapestry 5.2 > > What I'm proposing is a gradual transition, over Tapestry 5.3 and 5.4, > > where new, documented, stable JavaScript APIs are introduced. and > > Tapestry and 3rd party libraries can code to the new APIs rather than > > to Prototype/Scriptaculous. The goal is that, eventually, it will be > > possible to switch the default substrate from Prototype/Scriptaculous > > over to jQuery. > > > > -- > > Posted By Howard to Tapestry Central at 3/16/2011 05:16:00 PM >