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:jer...@osmosoft.com
http://www.tiddlywiki.com
Those plans have indeed been dropped.
You're right that we should have posted an update in that previous
thread - and we'd be happy to elaborate on the reasons there.
To be fair though, we never got much of a response to those proposals,
so there didn't seem to be much interest in the issue.
The upshot is that for now, the macro and plugin interface will remain
unchanged.
> In Steps 2 & 3 of the jQuery integration process that you describe,
> it seems like a careful review of the entire TW code would be needed
> to affect a proper re-factoring with jQuery in mind. What if any plans
> have been made for this? Do you have some kind of mechanism in mind to
> facilitate this?
That's definitely something we're thinking about, and of course we'd
welcome any help and/or expertise in that process!
While we have to release 2.5.0 first, we'll start a thread about this
issue soon.
> As of late I as a plugin writer have really struggled to understand
> what's happening with regards to TiddlyWiki core development despite
> monitoring Trac very closely
Could you elaborate on what it is you're missing? Normally, every issue
considered for a release should be ticketed.
I agree though that posts like Jeremy's here are very helpful in mapping
out the future plans in a "big picture" kind of way.
-- F.