Il s'agit de réflexions personnelles sur l'histoire et le développement de TiddlyWiki, par son créateur JeremyRuston.
En 1997, un collègue me montra le wiki original de Ward Cunningham. Que quelque chose d'aussi puissant puisse être écrit en seulement 700 lignes de Perl m'impressionna à l'époque, et j'étais aussi fasciné par la manière radicale dont la sécurité et le système de permissions avaient été repensés. Comme beaucoup d'autres développeurs, je me suis jeté sur tous les types de wiki qui me passaient sous la main, afin d'explorer leur utilisation en environnement de travail.
Le principal attrait du wiki pour moi était le sentiment qu'il pouvait remettre en question le paradigme qui prévalait jusqu'alors, à savoir les documents conçus pour être imprimés, et les emails.
Après avoir observé pendant quelques années la manière dont les gens utilisaient les wikis, j'ai remarqué que les utilisateurs avancés faisait grand usage de la possibilité d'ouvrir plusieurs pages de wiki à la fois dans les onglets de leur navigateur, pour se faciliter la comparaison et la révision des pages, la recopie de texte d'une page à l'autre, et pour se constituer une sorte de file de pages en attente d'être lues.
J'ai eu le sentiment que cette capacité à manipuler plusieurs pages en même temps était centrale dans la capacité à réorganiser un wiki, et on considère généralement qu'un wiki réorganisé avec amour a tendance à être plus utile. Pourtant, les interfaces utilisateur des wiki ont toujours été exclusivement conçues pour la présentation et la manipulation d'une seule page à la fois.
Toutes ces réflexions se sont synthétisées lorsque j'ai vu l'interface de Gmail en avril 2004, qui utilisait Ajax de manière ingénieuse pour assembler des mails individuels dans des fils de conversations.
J'ai commencer à expérimenter avec HTML et JavaScript pour pousser l'idée. Je n'avais eu jusqu'à présent pratiquement aucune expérience de l'un ou de l'autre, à part composer quelques pages statiques et des sites ASP simples dans des vies précédentes. Se plonger dans ces techniques orientées client a été une expérience douloureuse ; comme tout le monde, j'étais horrifié de découvrir l'atrocité des incompatibilités et incohériences de la programmation web.
Lancement de TiddlyWiki
En septembre 2004, j'ai donc publié une version préliminaire de TiddlyWiki. Il s'agissait de la plus petite application possible démontrant le concept : un simple fichier HTML de 48KB qui s'auto-engendrait.
L'inconvénient d'avoir écrit de cette manière la première version de TiddlyWiki, c'est que ça la rendait complètement impraticable pour l'édition — quand vous cliquiez sur « enregistrer les modifications », elle faisait apparaître une fenêtre montrant les données qui auraient été enregistrées s'il avait été possible d'écrire sur le système de fichiers depuis une page HTML.
Un grande partie des premiers commentaires sur TiddlyWiki étaient que c'était un outil sympathique, mais qu'il aurait été plus utile si on avait pu enregistrer correctement les modifications. J'étais plutôt frustré, car je tenais pour certaine l'impossibilité pour un fichier HTML tournant dans un navigateur d'enregistrer des modifications sur le système de fichiers local.
Quelques mois plus tard, j'ai repéré une extension Firefox expérimentale qui permettait à TiddlyWiki de sauvegarder les modifications depuis le navigateur. En examinant le code, je réalisai que l'API utilisée pour écrire sur le système de fichiers était en fait disponible pour les fichiers HTML ordinaires — pourvu qu'ils soient chargés depuis une URI de type file://
.
J'adaptai le code Firefox dans le noyau de TiddlyWiki et j'ajoutai bientôt une fonctionnalité similaire pour Internet Explorer (en utilisant un ancien contrôle ActiveX que Microsoft distribuait avec Internet Explorer).
Croissance de TiddlyWiki
Une étape majeure dans la croissance de TiddlyWiki fut la création de GTDTiddlyWiki par Nathan Bowers. Il partit du TiddlyWiki de base et l'adapta spécifiquement pour la gestion et le suivi de tâches à l'aide de la méthodologie bien connue Getting Things Done. GTDTiddlyWiki fut un succès immédiat, salué avec enthousiasme par des sites comme LifeHacker.
Dans les années qui suivirent, TiddlyWiki continua à croître en popularité, et s'enrichit de nouvelles fonctions et possibilités. En un an, je pus trouver une indépendance financière en proposant du développement sur mesure autour de TiddlyWiki, notamment en travaillant avec un pionnier du wiki, SocialText, sur la possibilité de synchroniser des modifications avec un serveur en ligne.
Acquisition par British Telecom
En mai 2007, British Telecom a acquis Osmosoft, ma société de consultant. Acquérir une société avec un seul employé et un minuscule filet de revenu relevait d'une décision inhabituelle, Osmosoft ne détenant même pas la propriété intellectuelle de TiddlyWiki, puisque je l'avais transférée à UnaMesa pour assurer son avenir pour la communauté.
La motivation de British Telecom était de mieux comprendre les écosystèmes basés sur les communautés. Je rejoignis la société en tant que « Head of Open Source Innovation », responsable de la gouvernance open source, et fournissant des conseils et de l'expertise sur la manière de participer à des communautés open source.
Osmosoft et TiddlySpace
Je constituais une équipe chez BT sous le nom Osmosoft. Nous avions comme objectif d'évangéliser les bénéfices de l'open source et d'aider d'autres équipes à réaliser ces bénéfices en pratique. Nous nous sommes aussi rendu compte qu'il était nécessaire d'évangéliser l'usage du Web en général, et les standards web en particullier.
Notre approche était de privilégier la démonstration sur le discours. Nous avons travaillé avec la communauté TiddlyWiki pour étendre l'écosystème, et nous avons construit de nombreux systèmes internes pour BT (certains basés sur TiddlyWiki, d'autres non).
La principale contribution d'Osmosoft à la communauté TiddlyWiki fut la création de TiddlyWeb et TiddlySpace. TiddlyWeb était un serveur robuste, capable de servir des tiddlers sur l'Internet, mais aussi de composer des vues TiddlyWiki à partir de ces tiddlers. Quant à TiddlySpace, il s'agissait d'une tentative pour packager TiddlyWeb de façon plus directement utilisable.
Départ de British Telecom
Fin 2011, j'ai progressivement senti que j'aurais plus de latitude hors de l'enceinte de British Telecom pour réaliser le potentiel de TiddlyWiki. D'un commun accord, je suis parti et j'ai commencé à travailler comme développeur indépendant, en me concentrant principalement sur une réincarnation de TiddlyWiki, qui pris la forme de TiddlyWiki5.
Développement de TiddlyWiki5
J'ai travaillé sur une nouvelle version de TiddlyWiki à partir de novembre 2011. En tant que programmeur, travailler à une « version 2.0 » de quelque chose que j'avais déjà écrit était une projet très séduisant. Cela signifiait que les besoins étaient bien compris, et je pouvais dès lors me concentrer sur l'architecture et ses évolutions nécessaires à la mise en œuvre des fonctionnalités désirées.
L'avenir
À présent que TiddlyWiki5 a enfin quitté son statut de « beta », j'ai bon espoir qu'il vivra longtemps. Comme il n'utilise que des fonctionnalités standard de HTML5 et Node.js, il n'y a aucune raison pour qu'il ne reste pas entièrement opérationnel dans les années qui viennent. Mon but est qu'il survive au moins 25 ans.