Starkit : un mode de vie

 

Kroc - 02/04/2008 :

Depuis des décennies, le cycle de vie d'un logiciel est le suivant : conception, codage, tests, conditionnement, déploiement, et installation. Et contrairement aux êtres humains, l'espérance de vie des logiciels ne cesse de diminuer : à peine est-il installé qu'on demande déjà la version suivante, qui fera la même chose mais en mieux, même si la version livrée fait exactement ce qui a été demandé.

Pour suivre ces cadences effrénées, les logiciels ont été conçus sous forme modulaire. Un logiciel moderne c'est un assemblage d'éléments partagés qui peuvent être modifiés indépendamment les uns des autres (ou tout du moins, on devrait pouvoir le faire). De ce fait, ces logiciels ont un nombre énorme de dépendances ; sur les outils utilisés et des bibliothèques (et leur configuration) au cours du développement, sur les propriétés de la "cible" du système, et sur la façon dont le déploiement a été effectué. Ce type de logiciel est donc très fragiles : un tout petit changement peut suffire pour qu'il ne fonctionne plus. C'est la raison pour laquelle on a créé parallèlement d'énormes échafaudages de contrôle de révision, de gestion des versions et de suivi d'installation. Ces étapes supplémentaires sont autant de temps et d'énergie qui ne sont plus consacrés à la réalisation du logiciel lui-même, sans compter que tout ces contrôles peuvent eux-même générer des erreurs !

Les starkits ont été conçus en totale opposition à ces échafaudages : pas de dépendance (tout est intégré), pas d'installation (il suffit de copier le starkit sur la cible pour l'utiliser) et pas de désinstallation (il suffit de l'effacer). Un starpack est l'aboutissement ultime de ce concept puisque l'exécutable lui-même est intégré.

Mais où est le mode de vie là-dedans me direz-vous ? Et bien il est dans la façon dont on conçoit un logiciel lorsque l'on est un adepte des starkits : on crée un dossier, on copie tout ce dont on a besoin dedans et on n'a plus qu'à se concentrer sur l'écriture, le test et le débogage du code. Quand il s'agira de déploiement, pas de soucis, pas de conditions, pas d'intelligence : un coup de sdx et paf, l'arborescence devient un fichier facile à envoyer et facile à utiliser ; comme le dit Jean-Claude Wippler : Because It Just Works ™!

Alors avec Tcl le langage le plus cool du monde (facile à apprendre, portable et très puissant), avec Tk redoutable d'efficacité (on peut faire une interface en quelques minutes) et avec starkit pour ne plus se soucier des dépendances et du déploiement, on peut tout faire plus vite et plus simplement qu'avec n'importe quel autre langage de programmation.

C'est pour ça que les professionnels ne disent jamais qu'ils utilisent Tcl : si tout le monde était au courant de la simplicité de leur travail, on ne voudrait plus les payer autant !

(Ce billet est largement inspiré de celui-ci [1] par jcw).