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 -~----------~----~----~----~------~----~------~--~---
