I'm happy to announce the beta of TiddlyWiki 2.5. It's a big milestone
release for TiddlyWiki because it marks the first introduction of
jQuery into the TiddlyWiki code base, which we think will first make
life much easier and more productive for plugin authors, and
ultimately lead to a much sleeker, faster TiddlyWiki core for
everyone.

So, what is jQuery? For details see http://jquery.com/, but in brief
it is a JavaScript library that provides a nice, clean API for web
application developers that smooths out the differences and
incompatibilities between different browsers. It's widely used by many
organisations and individuals for it's ability to take the pain out of
web development.

Because jQuery wasn't around when TiddlyWiki was first created,
TiddlyWiki has included it's own big swathes of code to do roughly the
same thing, smoothing out the differences between different browsers.
Much of this code is completely generic from TiddlyWiki, but because
it was written from scratch as part of TiddlyWiki, it's also rather
brittle. A key issue for TiddlyWiki is that tracking the browser
incompatibilities is pretty tough, and testing this sort of code is a
big undertaking, needing access to lots of browser combinations and so
on. Replacing this compatibility layer with jQuery will give us a much
more reliable foundation, and allow us to benefit from the talents of
the many people who are contributing to jQuery.

So, switching to jQuery allows us to reuse existing work on the
intricacies of browser quirks. It also makes it easier for developers
familiar with that library to work on TiddlyWiki, and brings a library
of sophisticated UI widgets to TiddlyWiki.

jQuery isn't the only game in town, though; Dojo, Prototype and
Mootools are all fairly popular, too. In comparison jQuery has a
clear, concise scope (unlike say Dojo) which means it's stayed small
and lean. The jQuery chaining idiom has turned out to be cool and
productive, and the jQuery community is booming, and has generated an
impressive library of plugins and themes etc

This is a significant change for TiddlyWiki, but I think we can do it
in phases, with little or no impact on backwards compatibility. Here's
the plan in outline:

Step 1: Include jQuery in TiddlyWiki as release 2.5.0. At this point,
there will be no changes to the TiddlyWiki core code to take advantage
of jQuery, but it will become possible for plugin authors to start
using jQuery. There's many more TiddlyWiki plugin developers than
there are core developers, so this step alone will bring the
advantages of using jQuery to the widest group

Step 2: Rewrite certain TiddlyWiki core functions to take advantage of
jQuery (without changing the interface to that function). For example,
the relatively lengthy doHttp() function in TiddlyWiki could be easily
rewritten in a few lines to use the Ajax support built into jQuery.

Step 3: Replace certain calls to TiddlyWiki core functions with the
equivalent jQuery idiom. For example, most calls to
createTiddlyElement() or createTiddlyButton() could be replaced by
much more concise jQuery equivalents.

Steps 2 and 3 will take some time to go through the entire TiddlyWiki
code base. The idea is to prioritise carefully so that we get the most
benefit from this investment. We'll have a series of releases as we
gradually refactor the core code. We hope to have a release 2.5.1 soon
that does enough refactoring to return the size of empty.html to it's
2.4.3 levels.

For more information on the migration plans, see the roadmap on the
wiki <http://tiddlywiki.org/wiki/Dev:Roadmap>, and post any questions
here.

Cheers

Jeremy

-- 
Jeremy Ruston
mailto:[email protected]
http://www.tiddlywiki.com

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"TiddlyWikiDev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/TiddlyWikiDev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to