Ingénierie de Véga

Une des plaies de la programmation ce sont les frameworks, qui se distinguent des simples librairies par leur volonté d’être génériques, ce qui se solde généralement par des intrusions dans le modèle objet du langage, le système d’allocation ou celui de thread. J’ai toujours eu de la peine à comprendre comment ces framework sont conçus, jusqu’à ce que je réalise qu’en fait ils ont été construits par les forces de Véga. On peut apprécier leur ingénierie dans les engins de la série Goldorak, que ce soit le robot lui même ou les Golgoths qu’il affronte. Les piliers de cette approche sont les suivants :

Interface
Le cockpit rempli de boutons, ces boutons ne portent aucun signe distinctif et de toute manière ne servent à rien : toutes les opérations importantes sont contrôlées par une dizaine de boutons et deux leviers. Un système de Véga se doit d’avoir beaucoup d’options qui ne servent à rien.
Polymorphisme
Le même système de contrôle est utilisé pour un robot géant et une soucoupe volante, et cela même si cela requiert une énorme quantité de logique d’adaptation. Un système de Véga est polymorphique, même si cela n’a aucun sens et que cela complique tout le système.
Versatilité
Goldorak a toute une panoplie d’armes, mais seul le combo astéro-hache + fulguro-poing fonctionne. Les autres armes sont juste présentes pour démontrer que c’est une plateforme versatile. Un système de Véga comporte des sous-systèmes qui ne fonctionnent pas et ne servent à rien, sinon à démonter que le système est versatile.
Modularité
L’écosystème inclut différents engins : Alcorak, Vénusiak, Fossoirak, mais ceux-ci sont premièrement conçus pour s’adapter à Goldorak. Goldorak ne peut utiliser qu’un seul de ces modules à la fois. Un système de Véga est modulaire, mais seulement si on utilise le système principal. Le système principal est un singleton.
Communication
Aucune opération de Goldorak, ni aucune arme ne peut être activées sans qu’elles ne soit nommées. Tout système de Véga doit communiquer clairement l’activation de ses sous-systèmes, de préférence avec des messages intrusifs et abscons.
Isolation
Tout dommage infligé à Goldorak est immédiatement répercuté sur Actarus. Un sous-système de Véga ne doit pas isoler un composant des défaillances que subit un autre, cela nuit à la tension dramatique.

8 thoughts on “Ingénierie de Véga”

  1. La combo, c’est hasterohache et cornofulgur, pas fulguropoing.

  2. Si le but de cette article était de faire rire, c’est raté pour moi. J’ai à peine souris. J’ai du prendre cet article trop sérieusement. Pourtant je connais les références (peut-être plus assez bien). Il manque quelque chose pour vraiment rigoler. Peut-être que le ton est trop scolaire, ressemble trop à un prof. :P

    Si le but de cette article était la réflexion, les qualités sont plutôt bien choisies et correspondent bien à ce qui nécessaire dans un framework. Le reste je vais le mettre sur le coup de l’ironie. Cela évitera de me fâcher.

    Si l’article était pour vidanger ta frustration avec un framework… Bon, je te laisse maintenant. (on peut avoir un nom? :/ )

  3. @xenux : c’est bien dommage de ne pas avoir apprécié, mais en même temps tout lecteur de blog est libre de ne pas lire, et tout auteur de ne pas être un Desproges en puissance.

    Ceci dit, ça m’arrive de temps en temps d’être d’accord avec Thias, et là c’est le cas. La malédiction de Véga, c’est le feature-creeping.

  4. @edomaur: Moi aussi cela m’arrive d’être d’accord avec Thias. Et souvent j’apprécie ces articles. Et pourtant, rien ne justifie que “je dégage” comme tu le sous-entend si bien quand ce n’est pas le cas. Que Thias soit un Desproge ou un Lagaffe. :D

    Je voyais l’article plutôt dans le sens des contraintes que doit surmonter un framework. Tous les problèmes décris ne sont pas forcément reliés au feature-creeping. Et je reconnais que ces contraintes sont intelligemment définies. Mon désaccord viens du straw-man créé avec celles-ci.

  5. ça reste quand même un billet d’humeur, et tu n’es pas obligé de dégager, juste qu’adopter un ton peut-être moins trollesque ça ferait plaisir. Mais, tu es libre d’utiliser ta prose comme tu l’entends, on n’est pas un institut de censure non plus.

    Mon expérience des framework est ambivalente : dans un sens, on a des monstres, généralement écrits en Java, qui veulent tout savoir faire, de l’autre il y a des “microframework” ou des outils bien ciblés qui ne se perdent pas dans un catalogue de fonctionnalité (et il y en a aussi en Java) Après, ça dépend aussi des utilisateurs…

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: