[image of a Brave GNU World]
Brave GNU World - numéro 49
Le meilleur du GNOUveau monde
Copyright © 2003 Georg C. F. Greve <greve@gnu.org>
Traduction [FR] : Michel Verdier <mverdier at freesurf dot fr>, Laurent Richard <laurent.richard@ael.be>
Permission ci-dessous.

[DE | EN | FR | IT | JA | ES | KO | PT]

Bienvenue dans ce nouveau numéro du Brave GNU World. Je voudrais présenter mes excuses pour l'absence de parution du mois dernier. Malheureusement il y a eu des problèmes entre le Linux-Magazin allemand et le Brave GNU World après qu'ils aient supprimé une partie du numéro 48 [5] ("Ordinateurs portables avec Logiciels Libres").

Cela a abouti à du ressentiment et à l'absence de rédaction du numéro du mois dernier, mais après des discussions intensives cela devrait devenir de l'histoire ancienne et ne plus se renouveler.

Skidbladnir

La première vedette ce mois-ci est le projet Skidbladnir [6], dont le nom peut paraître aussi mystérieux que sa description pour certains. L'auteur, Lars Brand, le décrit comme une "boîte à outils avec des données et des programmes pour l'Innovation Assistée par Ordinateur."

Son origine n'est probablement pas très connue, mais elle devrait intéresser la plupart des lecteurs. Et comme Lars a fait l'effort de la fournir, autant la révéler ici.

L'origine scientifique de Skidbladnir est connue comme la "Théorie de la résolution des problèmes inventifs" ; abrégée en anglais par TIPS, connue en allemand et en russe [NDT : et en français] comme TRIZ. La théorie trouve sa source en 1946 avec le Professeur Altschuller, qui était à l'époque ingénieur chercheur dans l'armée.

Quand le Professeur Altschuller envoya une lettre à Staline, l'informant des débuts de sa théorie, il fut immédiatement emprisonné et envoyé dans un camp pour personnes suspectes. Durant son emprisonnement il rencontra de nombreux professeurs de différents domaines scientifiques, qui l'aidèrent à combiner les connaissances de plusieurs disciplines différentes.

Relâché du camp et à nouveau devenu un indésirable vers la fin des années 60 et jusqu'au milieu des années 70, il commença à publier ses résultats sous forme de nouvelles de science-fiction en vue de lever des fonds pour son travail scientifique — voir G. S. Altow : "Der Hafen der steinernen Stürme" ("Le port des tempêtes de pierre"). (Commentaire : J'ai été incapable de trouver le nom de ce livre en anglais, et si même il a été traduit en anglais. Aide appréciée. [NDT : il est également inconnu en français.])

La théorie TRIZ est basée sur le principe qu'indépendamment de la discipline scientifique ou du domaine industriel, les problèmes abstraits et leurs solutions se répètent en général. En analysant environ 40.000 brevets extraordinairement réussis, il a été trouvé qu'ils étaient tous basés sur grosso modo seulement 40 principes de solutionnement différents.

Un autre principe de base de cette théorie est que l'évolution des systèmes techniques suit certaines tendances et que l'innovation essentielle demande souvent l'afflux de résultats scientifiques d'un autre domaine.

Cela décrit une abstraction de stratégies de résolution de problème ; un exemple souvent utilisé est "Un cube d'acier massif de 1m de côté doit être déplacé dans un trou profond sans utiliser ni grue, ni cordes ni outils similaires. Il ne doit pas non plus être jeté. Développez 3 solutions appropriées en 10 minutes."

Le projet le plus connu pour résoudre ce problème ainsi que d'autres avec un logiciel est probablement TechOptimizer, qui — comme les autres logiciels de ce domaine — est propriétaire et très coûteux.

Skidbladnir cherche maintenant à fournir cette fonctionnalité en Logiciel Libre. En dehors des composants d'installation, le projet consiste en andax, qui contient le principe de base pour résoudre les contradictions techniques, sporadikus pour les brainstorming sur internet, et perplexus dans lequel 250 effets sont disponibles.

Le projet lui-même n'est pas complet et n'est pas non plus très confortable à utiliser pour le moment. Et la base d'effets n'est pas aussi importante que Lars voudrait qu'elle soit. En particulier, les connexions entre effets, qui permettent des combinaisons très efficaces, devraient être étendues.

Voici un exemple très simple de cela : (a) un matériau luminescent convertit les UV en lumière visible ; (b) une fine couche ou diffusion de métal bloque la luminescence ; (c) avant qu'une pièce mobile de moteur ne tombe en panne, des petits fragments de métal se mêlent à l'huile. La combinaison de ces trois faits amène facilement à l'idée qu'ajouter un matériau luminescent à l'huile permettra de déterminer quand certaines pièces du moteur devront être changées avant une panne, car la luminescence de l'huile aura disparue.

Les situations réelles sont souvent beaucoup plus complexes et demandent une vaste base d'effets qui doivent être collectés à partir de la littérature technique. Ce qui est une tâche fastidieuse demandant un travail intensif.

Skidbladnir a été écrit en Perl, PHP et MySQL et est publié sous la licence GNU General Public License (GPL). Comparé aux projets propriétaires, Skidbladnir a peut-être un faible nombre d'effets, mais il contient déjà des effets logiciels ; il est sans doute le premier de cette catégorie.

De l'aide est la bienvenue sous n'importe quelle forme ; tout spécialement des développeurs et des utilisateurs fournissant un retour sont recherchés. Plus de données pour les effets et l'accès à des problèmes de la vie réelle seront également appréciés.

A moyen ou long terme, Lars est convaincu que le Logiciel Libre sera extraordinairement victorieux dans ce domaine, car TRIZ et le Logiciel Libre sont tous deux basés sur l'idée de préserver les connaissances et de les rendre disponibles.

Rendre ces corrélations et méthodes disponibles pour tous semble être un projet très important, un peu comme une encyclopédie, digne d'être soutenu.

Comme effet secondaire cela facilite l'entrée sur le marché dans ce domaine, puisque de nombreux utilisateurs potentiels ne peuvent se payer des solutions propriétaires, ce qui devrait donc aider à revitaliser le domaine technique.

Les personnes intéressées et celles de ce domaine sont encouragées à y jeter un coup d'oeil. Davantage d'informations sur l'historique sont aussi disponibles sur la toile. [7]

Lush

Le second projet de ce numéro a également une orientation scientifique même s'il n'est pas seulement restreint à ce domaine. Lush [8] est un langage de programmation principalement à destination des scientifiques, expérimentateurs et des ingénieurs qui sont en manque de grosses applications graphiques et numériques.

L'approche de Lush est de combiner les forces de trois langages de programmation en un seul. En fait, Lush combine 3 langages de programmation en un seul. Le premier est un langage interprété, un langage dynamique de type LISP avec un ramasse-miette (garbage collector) automatique et un typage faible. Le second langage est un langage compilé et lexical utilisant la même syntaxe mais cette fois-ci avec un typage fort. Et le troisième langage n'est autre que le langage C qui peut être mélangé à la syntaxe Lush à l'intérieur d'un programme ou même d'une simple fonction.

Lush est développé depuis 1987. A l'origine, il vient avec le nom "SN" comme un langage de script pour les réseaux de neurones. Avec le temps, il a été développé en un langage de programmation complet avec compilateur. Les acteurs principaux du développement étaient Bell Labs (plus tard "AT&T Labs"), à Holmdel, NJ, USA, Neuristique S.A. à Paris, France et NEC Labs à Princeton, NJ, USA.

Après que Lush/SN eut été utilisé pendant des années par AT&T pour leurs recherches internes et leurs projets de développement, les parties impliquées se sont mis d'accord pour la licence GNU General Public License (GPL) et ont changé la licence de Lush en Logiciel Libre.

Aujourd'hui, le projet est maintenu par Yann LeCun — qui a répondu aux question du Brave GNU World — et Leon Bottou des "NEC Labs America" à Princeton, lequel a reçu l'aide d'un grand nombre de volontaires de par le monde, par exemple Fu Jie Hang, Patrice Simard, Patrick Haffner, Yoshua Bengio, Pascal Vincent, Jean Bourrelly, Xavier Drancourt or Secil Ugurel, pour n'en citer que certains. Bien entendu, des volontaires supplémentaires sont toujours les bienvenus.

Même s'il a été au départ développé comme une alternative libre de Matlab pour les scientifiques, les chercheurs et les étudiants, Lush offre un langage généraliste complet. Grâce à son intégration facile avec le C, Lush est un bon choix pour l'écriture de scripts ou l'intégration dans le but d'assembler une fonctionnalité distribuée dans une application GUI confortable.

Cette intégration permet également d'intégrer relativement facilement des bibliothèques existantes, ce pourquoi Lush a des liens avec beaucoup de bibliothèques scientifiques, graphiques et audio-visuelles comme la GNU Scientific Library (GSL; voir numéro #35 [9]), OpenGL/GLU/GLUT, ALSA, Video4Linux ou la Vision Library d'Intel.

Quand on compare les niveaux de support pour la GSL entre Python et Lush, Lush s'en tire assez bien avec environ 4000 fonction supportées en comparaison aux quelques centaines supportés par Python pour le moment. La syntaxe est plus claire qu'en Perl et devrait être plus facile à apprendre que Scheme. Et lors de la comparaison de la vitesse avec Octave ou Matlab, il est entre 15 et 300 fois plus rapide, selon la situation.

Ces avantages semblent faire de Lush un choix intéressant et valant assurément le détour. Lush a déjà servi aussi pour des jeux, par exemple ce simple atterrissage lunaire dont la capture d'écran peut être trouvée sur la page internet de Lush.

Lush a été écrit en C et tourne traditionnellement sous GNU/Linux, Solaris, Irix et OpenBSD, même si depuis février 2003 un portage Cygwin pour Windows est disponible.

Un des problèmes du projet est que la conception du compilateur est vieille de plus de 10 ans et donc possède certaines limitations rigides et étranges. Une réécriture du compilateur est donc dans la liste des tâches à faire.

Également sur la liste, le support de bibliothèques supplémentaires, comme l'amélioration du système de documentation. Ajouter un mécanisme de template pour Lush est également prévu à moyen terme.

De plus, étant donné le grand intérêt d'un portage Mac OS-X, des volontaires sont demandés. Un analyseur automatique des fichiers d'entête C/C++ pour une inclusion automagique dans Lush serait aussi un projet assez utile.

Si vous résidez aux Etats-Unis, vous avez sûrement déjà eu un contact indirect avec Lush. Certains distributeurs de billets de NCR utilisent du code généré à partir de Lush sur les processeurs embarqués DSP pour lire automatiquement les montants des chèques déposés. Et un moteur de lecture de chèques à grande vitesse écrit en Lush lit environ 10% de tous les chèque déposés aux Etats-Unis.

jMax

Comme les lecteurs assidus de Brave GNU World doivent le savoir, la Free Software Foundation Europe est partenaire dans le projet AGNULA, [10] qui permet de créer une distribution GNU/Linux en Logiciels Libres à destination des utilisateurs professionnels de l'audio.

Un autre partenaire du projet AGNULA est "l'Institut de Recherche et Coordination Acoustique/Musique" (IRCAM) — le centre musical du Centre Pompidou à Paris, France. Une des applications écrite par l'IRCAM est jMax, [11] un environnement graphique de développement d'applications multimédia interactives.

Les applications audio ont traditionnellement le problème d'être écrites pour des composants matériels spécifiques et donc très dépendantes d'une plate-forme. Grâce au développement rapide du matériel, les programmes doivent être réécrits tous les trois ans pour une nouvelle plate-forme ou sinon, la musique qui a été écrite avec ces programmes pourrait être perdue.

Ceci a motivé le développement d'une solution purement logicielle qui ne serait pas dépendante d'une plate-forme spécifique.

Le paradigme employé dans jMax permet de créer et/ou de combiner certains éléments de base comme des générateurs de fréquence, des filtres de signaux, des effets, des modules d'entrées-sorties, des potentiomètres, processeurs de signal numérique (DSPs) et des amplificateurs entre eux et les combiner dans des "patches."

Ces patches intègrent les composants et peuvent être combinés dans des constructions infiniment complexes, rendant généralement possible l'implémentation de n'importe quel type ou sorte de traitement, effet ou synthétiseur de signal numérique.

Une implémentation de ce paradigme qui est assez connu parmi les musiciens est le logiciel propriétaire "Max". En 1995 jMax a démarré avec l'intention de créer une version de Max qui serait indépendante de la plate-forme. Mi-1999, il a été publié comme Logiciel Libre sous la licence GNU General Public License (GPL).

L'équipe jMax de l'IRCAM qui travaille sur le projet est composée principalement de François Déchelle et Patrice Tisserand. François, qui a répondu au questionnaire standard de Brave GNU World, voit les principaux avantages de jMax dans son indépendance par rapport à la plate-forme — il tourne sous GNU/Linux, Mac OS-X et Windows — ainsi que dans sa grande flexibilité comparée aux autres implémentations du paradigme comme Max ou PD.

Un des avantages clés est également que jMax est constitué de deux composants. La partie centrale est un serveur, un moteur temps-réel écrit en C, qui fait tout le travail. Cela permet de faire tourner le moteur avec une interface graphique, d'écrire des interfaces alternatives ou d'intégrer le moteur dans un environnement de plugins (LADSPA).

Normalement ce serveur est contrôlé via un client écrit en Java. Java a été choisi pour être sûr que le client fonctionne sur autant de plate-formes que possible avec un nombre minimum de problèmes. Malheureusement la situation de Java n'est pas sans poser des problèmes pour ce qui est du Logiciel Libre.

Les dépendances Java

Le problème de Java n'est ni ses spécifications techniques ni son implémentation. Même si certaines personnes ont des opinions différentes à ce propos, ils ne sont pas la cause du problème pour le Logiciel Libre.

La cause du problème se situe dans la manière dont Java est développé et distribué, puisque qu'il n'y a essentiellement que deux grandes implémentations, toutes deux propriétaires : l'une est maintenue par Sun, l'autre par IBM. Même si celles-ci peuvent être distribuées sans coût de licence, elles n'offrent pas les libertés nécessaires pour en faire des Logiciels Libres.

En conséquence, chaque application utilisant ces plates-formes — même les logiciels étant sous une licence libre — met la liberté de l'utilisateur en danger. Cette situation est similaire à celle de l'utilisation de Logiciels Libres sous Windows.

Il y a certaines approches et initiatives pour implémenter Java entièrement en Logiciel Libre (voir "GNU et le langage Java" [12]). Mais étant donné que les implémentations faisant principalement référence sont propriétaires, les projets libres ont besoin de réimplémenter à chaque fois les fonctionnalités des versions propriétaires.

Tous les développeurs ne sont pas amateurs pour se lancer dans une telle course biaisée qui ne peut être gagnée. Le Logiciel Libre est donc ici en désavantage et offre donc un degré inférieur de fonctionnalités.

Lorsque les développeurs d'applications Java utilisent les fonctions les plus avancées des implémentations Java propriétaires, celles-ci ne peuvent plus être exécutées sur les implémentations libres de Java et donc, elles sont dépendantes des plates-formes propriétaires. Une situation tout à fait similaire aux Logiciels Libres pouvant être exécutés uniquement sous Windows et ne fonctionnant sur aucun système d'exploitation libre.

C'est exactement le problème du client jMax. Et puisqu'il est hors de question pour tous les partenaires d'ajouter du logiciel propriétaire dans AGNULA, AGNULA pourrait être incapable d'inclure jMax avec une interface graphique totalement fonctionnelle.

pyMax

Après qu'aucune de ces alternatives n'ait semblé résoudre le problème dans les temps — davantage de renseignements disponibles sur la page internet de la FSF Europe [13] — il a été décidé de se passer entièrement de Java et de réimplémenter le client en Python.

Le choix de Python a été influencé par son indépendance vis-à-vis de la plate-forme, qui est comparable à celle de Java, et par le fait qu'il permet un développement rapide tout en étant (naturellement) entièrement libre.

Cependant il n'est pas encore certain que l'IRCAM soit capable de terminer le client dans les temps. De ce fait, ils sont à la recherche de volontaires qui pourraient les aider à écrire le client Python pour jMax.

Selon François, l'IRCAM n'est pas en mesure de promettre de grandes choses mais ils proposent d'offrir du support en priorité aux personnes travaillant sur le client Python et ils garantissent une réponse dans les 24 heures durant les jours ouvrés. Ainsi, si vous êtes intéressés par ce projet, allez jeter un coup d'oeil à la liste de diffusion des développeurs de jMax. [14]

Assez pour l'instant

Assez de Brave GNU World pour ce mois-ci. Au cas où vous croiseriez un projet intéressant, faites-le moi savoir. Ce sont souvent les lecteurs de la chronique qui découvrent des bijoux — le sujet de Lush, par exemple, a été découvert par Stefan Kamphausen, l'auteur du logo de Brave GNU World.

Comme à l'accoutumée, n'hésitez pas à me proposer vos remarques, questions, idées et commentaires à l'adresse habituelle. [1]

Info
[1] Envoyez vos idées, commentaires et questions à Brave GNU World <column@brave-gnu-world.org>
[2] Page d'accueil du projet GNU http://www.gnu.org/
[3] Page d'accueil du Brave GNU World de Georg http://brave-gnu-world.org
[4] Initiative "GNU C'est Nous" http://www.gnu.org/brave-gnu-world/rungnu/rungnu.fr.html
[5] Brave GNU World - numéro 48 http://brave-gnu-world.org/issue-48.fr.html
[6] Page d'accueil de Skidbladnir http://mitglied.lycos.de/altow/
[7] TRIZ online (en allemand) http://www.triz-online.de
[8] Page d'accueil de Lush http://lush.sf.net
[9] Brave GNU World - numéro 35 http://brave-gnu-world.org/issue-35.fr.html
[10] Page d'accueil de AGNULA http://www.agnula.org
[11] Page d'accueil de jMax http://www.ircam.fr/jmax/
[12] Page d'accueil de GNU et Java http://www.gnu.org/software/java/
[13] Les problèmes Java de AGNULA http://fsfeurope.org/projects/agnula/java.html
[14] La liste de diffusion du développement de jMax http://listes.ircam.fr/wws/info/jmax

[ Numéro précédent | Page d'accueil du Brave GNU World | Numéro suivant ]

Retour au site GNU.

Envoyez vos questions sur GNU et la FSF à gnu@gnu.org.
Il y a aussi d'autres façons de contacter la FSF.

Envoyez vos commentaires sur "Brave GNU World" (anglais ou allemand) à column@gnu.org,
et les commentaires sur cette page à webmasters@www.gnu.org,
les autres questions à gnu@gnu.org.

Copyright (C) 2003 Georg C. F. Greve
Traduction [FR] : Michel Verdier, Laurent Richard

Permission vous est donnée de distribuer des copies exactes de cette page tant que cette note de permission et le copyright apparaissent clairement.

Last modified: Mon Mar 29 23:30:41 CEST 2004