Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/07247.jsonl.gz/483

Il existe sur le net plusieurs logiciels implémentant le concept, de manière plus ou moins générique. Parmis ceux-ci, j'ai découvert une obscure référence vers cette plateforme: http://www.cold.org.
D'après les dates mentionnées sur le site, le projet a démarré il y a plus de dix ans. Le système se décrit comme une Base de données orientée-objets, a code mutable en runtime; il inclut un langage (ColdC), une machine virtuelle (Genesis) et un compilateur dédié. Le langage est orienté objet, à héritage multiple, supporte les listes et les dictionnaires nativement, et surtout supporte la modification de son programme sans redémarrage; les objets sont persistants, et sont sauvegardés de manière asynchrone sans interruption de service. Une combinaison de fonctionnalités peu commune, mais dont l'intérêt dans le cadre d'un MUD est évident: plus besoin de rebooter le processus serveur, et donc d'interrompre potentiellement des centaines de joueurs, pour un changement de code. La machine virtuelle fournit les fonctions de base d'I/O réseau et la persistence des objets, tout le reste des fonctionnalités tenant dans une bibliothèque dont la totalité est modifiable interactivement depuis le système lui-même.
J'ai été impressionné par les spécifications, et je ne comprends pas encore pourquoi ce projet n'a pas connu une diffusion plus large. Problème de performance ? Intérêt trop restreint ou mauvais marketing ? manque de diversité dans les environnements pré-fournis ? Complexité excessive ?
Pour l'instant, la seule solution que je puisse imaginer qui soit équivalente et basée sur des technologies "En vogue" serait une collection de classes Python. (Je soupçonne que Python est a même d'implémenter ce mécanisme de modification dynamique du code, mais n'en suis pas certain). Je soupçonne également que Zope serait capable d'un travail équivalent, mais j'ignore si Zope peut être facilement découplé du support web.
J'hésite donc entre me plonger dans les quelques 50000 lignes de ColdC constituant l'implémentation "stock" d'un MUD générique (ColdCore), pour l'adapter a mes besoins, M'orienter vers Zope, ou réécrire le noyau de base en Python (je n'ai pas l'habitude de Python, Perl occupant déja sa niche principale dans mon cas.)
Suggestions, quelqu'un ?
Posted by Maxime Augier on Monday 4 April 2005 at 22:53