jeudi 21 janvier 2010

In memoriam Gadfly


L'informatique représente le triomphe posthume de Léon Trotski en ceci qu'elle vit sous le signe de la révolution permanente: tout change tout le temps, et ce n'est pas vrai seulement au niveau planétaire, mais aussi en ce qui concerne mon petit nordinateur à moi. A peine avais-je rédigé ma chronique précédente que je m'apercevais qu'elle était déjà caduque, aussi vais-je m'employer à la corriger.

Eh bien non, le successeur de dBase III Plus, c'est-à-dire le système de gestion de bases de données relationnelles léger, facile à installer et programmable en SQL, ce n'est plus Gadfly: il a été nettement détrôné par SQLite, ou plus exactement (en tout cas, à mon humble avis) par le couple SQLite-Python. J'avais placé mes espoirs en Gadfly sur la foi du très remarquable Apprendre à programmer avec Python de Gérard Swinnen (O'Reilly, 2004), confirmé par le non moins remarquable Python en concentré d'Alex Martelli (O'Reilly, 2004). Comme le temps passe: ces remarquables bouquins dont je n'ai pas encore tiré toute la substantifique moelle sont déjà un peu dépassés (quoique non obsolètes) sur la question des bases de données, et alors que de leur temps SQLite n'était encore qu'un obscur projet pas finalisé et très mal connu, c'est aujourd'hui une référence incontournable au point que les versions récentes de Python intègrent en standard la librairie permettant de s'interfacer avec lui.

Par ailleurs, j'avais eu tendance à considérer SQLite comme peu fiable parce que je n'étais pas parvenu à l'installer par la procédure standard pour les linuxiens glandus moyens et non-administrateurs système, c'est-à-dire le gestionnaire de paquets (chez moi, c'est Synaptic, vu que je bosse sous Ubuntu). Ayant eu après la rédaction de ma dernière chronique la curiosité d'essayer avec la procédure classique pour linuxiens super-pêchus, administrateurs système ou assimilés (configure, make, sudo make install, make clean), j'ai constaté à ma profonde stupéfaction que ça marchait sans coup férir (et ça a d'ailleurs aussi marché sur la partition Mac OS X de mon MacBook). Du coup, non seulement SQLite est installé et fonctionne parfaitement en ligne de commande, mais en plus Python lui cause sans la moindre difficulté.

Immense vertu du SQL, ça m'a immédiatement permis de tester le bazar avec les bidouilles que j'avais mises au point avec Gadfly, ce qui m'a amené à constater que SQLite était incomparablement plus rapide -- donc je prends le pari que Gadfly va tomber en désuétude vite fait bien fait (ce qui est un peu vexant pour son auteur, mais à peu près sans conséquence pour les bidouilleurs dans mon genre, puisque l'usage du SQL standard, commun aux deux bazars, va permettre l'adaptation des listings en deux coups de cuiller à pot).

Bon, a dire il vero (1), j'ai quand même eu quelques difficultés mineures à adapter mes petits programmes de Gadfly à SQLite en raison de différences de gestion des caractères accentués. Gadfly ne les gérait pas vraiment, c'est-à-dire qu'il stockait les octets qu'on lui donnait un par un dans une chaîne normale, ce qui n'a rien pour effrayer le programmeur C que je suis. Le duo Python-SQLite, lui, a voulu faire les choses plus proprement et stocke tout dans des chaînes Unicode, avec les caractères accentués en UTF-8. En fait, c'est mieux et même nettement mieux... mais comme le programmeur C que je suis n'y connaissait rien ça a commencé par me poser bien plus de problèmes que ça n'était censé en résoudre. Mais je pense que je vous raconterai ça dans une prochaine chronique parce que celle-ci est déjà assez bavarde. Hasta pronto! (2)

(1) C'est de l'italien.

(2) C'est de l'espagnol.

Aucun commentaire:

Enregistrer un commentaire