CouchDB, …CouchDB, …

Javascript continue de faire des adeptes ! Après que d’autres aient essayé de mettre du XML, ou des triplets (ou du rdf, i.e. des triplets xml) dans une bd, des membres de la fondation Apache ont essayé de mettre des objets javascripts dans une BD (JSON): CouchDB. Et pourquoi pas aussi du code et du html ? le tout pour faire une application web, si c’est possible: CouchApp. Au final, on obtient donc une environnement NoSQL permettant le développement d’application web standard (client leger + bd) avec comme seul langage de programmation nécessaire le javascript (ni php, ni ruby, ni …). Le tout accessible, à partir d’un navigateur web et exposé à tous les utilisateurs (open de bout en bout, de la présentation, au code métier, jusqu’aux données !)

Seulement du javascript ? oui, enfin, c’est un peu vite dit, dans la version proposé initialement, c’est du javascript+jquery+evently+mustache+prototype. Mais bon, pour les puristes, on peut enlever le jquery+evently+mustache+prototype (il faut mesurer ce que cela apporte et ce que cela coute ! depuis que j’utilise javascript, j’ai eu le temps de voir arriver/passer : prototype, script.aculo.us, dojo, rico, ext, yui, mootools, mochikit, qooxdoo, jquery, node, underscore, evently, mustache, vanilla, commonJS, … sachant que les navigateurs sont de plus en plus conformes à la norme javascript.).

Enfin, bref, le temps de mettre au point quelques lignes (euh, disons un petit mois, mais seulement dans mes moments libres, ce qui limite pas mal le temps de travail effectif, mais permet de maturer et de mesurer la motivation), et voila une première appli (compte guest, mot de passe guest) chez un hébergeur « gratuit » (ce qui explique les nécessités de login/mdp ?) : https://denisb.couchappy.com/mem/_design/mem/index.html

Avec la bd au même endroit que le html/code, il n’y a plus de problème de « same origine policy », mais il reste à voir comment la gestion de la sécurité peut s’effectuer et si l’on arrive à partager le code/données facilement (même à l’intérieur du cadre « CouchDB/CouchApp »).