Subscribe to the Free Software Supporter — the monthly update from the Free Software Foundation
 [Logo Brave GNU World]
Brave GNU World - Numéro 18
Copyright © 2000 Georg C. F. Greve <greve@gnu.org>
Traduction [FR]: Libotte P.
Permission ci-dessous.

[DE | EN | FR | JA | ES]

Bienvenue dans le Brave GNU World de Georg. Encore une fois, j'espère avoir mis la main sur une série de sujets intéressants ce mois-ci. Nous commençons au coeur-même de la technologie par deux langages de programmation particulièrement intéressants.

GNU Sather

GNU Sather [5] est un langage de programmation orienté-objet, au départ issu de Eiffel, mais qui a évolué à un point tel qu'il doit désormais être considéré comme indépendant.

GNU Sather a débuté en tant que projet scientifique à l'ICSI de Berkeley, où il était distribué sous une licence particulière, inapte cependant à entrer en ligne de compte pour le titre de licence de logiciel libre. Mais après l'arrêt du développement pour raisons financières en 1998, un groupe de personnes réussit à convaincre les responsables de l'ICSI d'en sortir une dernière version sous GPL/LGPL. Voici qui permit à GNU Sather de devenir un projet GNU officiel.

Parmi les particularités de GNU Sather, un concept d'interface révolutionnaire où les interfaces de classes sont complètement dissociées de leurs implémentations, ce qui simplifie grandement les héritages multiples. Il est également possible de modifier le code sous-jacent sans toucher à l'interface, si nécessaire. Le responsable actuel de GNU Sather, Norbert Nemec, met également en avant le concept d'itérateur, qui permet d'implémenter les structures de boucles de toute une série d'autres langages de programmation sous une condition d'interruption unique. Il insiste également sur le fait que GNU Sather n'est pas qu'une xième étude de conception, mais un langage conçu dès l'abord pour la vitesse et le confort du programmeur.

Le statut actuel de GNU Sather pourrait être qualifié de "très proche de la version définitive." Les interfaces C et Fortran sont intuitives et bien documentées, ce qui autorise donc quasiment tout. Sa grande faiblesse pour l'instant reste le compilateur qui ne fait aucun usage des optimisations possibles et doit être qualifié de "bogué". Bien entendu, écrire d'un nouveau compilateur est une priorité absolue, mais cela risque de pendre encore quelque temps. Le développement de la bibiliothèque doit lui aussi se poursuivre, ce à quoi s'active pour l'instant l'Université de Waikato.

Malgré ces imperfections, Les développeurs qui s'intéressent à la programmation orientée-objet devraient jeter un coup d'oeil à GNU Sather. Ce sera dans le pire des cas une expérience enrichissante. Le support intégré des opérations parallèles (du multithreading aux grappes (clusters) TCP/IP) et la bibliothèque fortement internationalisée dès le départ sont les augures d'un outil d'excellent qualité, une fois éliminées les maladies de jeunesse.

Ruby

Ruby [6], de Yukihiro Matsumoto, est un autre langage de programmation orienté-objet; il fut lancé en 1993, au moment où son auteur, incapable de trouver un langage de scripts orienté-objet, décida d'en écrire un lui-même. L'appellation "Ruby" fut choisie par l'auteur à la recherche d'un nom de pierre précieuse afin de symboliser l'apparentement à Perl. Le but avoué est de faire de Ruby le successeur de Perl, auquel il se substituerait. Pour parvenir à ses fins, l'auteur a repris le spoints forts de langages comme Perl, Python, Lisp et Smalltalk et a tenté de les incorporer dans Ruby.

Tout comme Perl, Ruby excelle au traitement de texte et tire en outre parti de son orientation-objet très large. Dans Ruby, toute donnée, sans exception, est un objet. Le chiffre "1," par exemple, est une instance de la classe "Fixnum". Il est possible d'ajouter des méthodes à une classe pendant le runtime, et même à une instance si nécessaire. Ces possibilités rendent Ruby très souple et extensible. Il supporte en outre les itérateurs, les exceptions, la surcharge des opérateurs, la "garbage collection" et bien d'autres choses que l'on attend d'un langage. Afin d'être en mesure de remplacer Perl, il est également extrêmement portable et tourne sous GNU/Linux (et autres Unix) ainsi que sous DOS, MS Windows et Mac.

Pour les techniciens d'entre vous, qu'il soit dit que Ruby dispose de classes CGI permettant une programmation CGI aisée ainsi que de modules pour Apache via eRuby (embedded Ruby) et mod_ruby. Il possède une classe socket réseau très bien pensée et, grâce à Ruby/Tk et Ruby/Gtk, des interfaces-utilisateurs graphiques peuvent être implémentées assez facilement. Des propriétés spéciales permettent le traitement du XML et il existe une interface pour l'expat XML parser.

Enfin, Ruby supporte le multithreading indépendamment du système d'exploitation, même sous MS-DOS. en dépit de cette complexité, la syntaxe est voulue la plus simple possible (à l'inspiration d'Eiffel et Ada).

Ruby peut être distribué sous GNU GPL ou une licence spéciale donnant à l'utilisateur des droits de "propriétarisation" accrus, mais elle pourait très bien être reçue comme licence de logiciel libre, même si cela reste à déterminer.

Voilà pour les langages de programmation. Même si ce domaine intéresse au premier chef les techniciens, je pense que même les non-programmeurs devraient se tenir au courant des derniers développements en la matière.

Mais restons dans la technique, puisque c'est le but premier de ces lignes, et, encore une fois, c'est OKUJI Yoshinori qui m'a mis au courant d'un projet bien intéressant.

a386

a386 [7], de Lars Brinkhoff, est une bibliothèque qui propose un processeur Intel 386 virtuel tournant en mode protégé dans une machine virtuelle (VM). Voilà qui devrait être utiles surtout aux hackers du kernel et aux scientifiques, mais peut-être également à ceux qui souhaitent simplement tester un autre système d'exploitation à l'intérieur de leur OS actuel.

Par rapport aux projets similaires tels le Brown Simulator ou plex86, a386 présente l'avantage d'exécuter plus rapidement des opérations privilégiées, dans la mesure où elles sont implementées en tant qu'appel de fonctions ou "inlined code". En outre, a386 se veut portable, quelle que soit l'architecture du processeur ou le système d'exploitation.

Pour l'instant, l'auteur oeuvre principalement à l'amélioration du port Linux, mais, dans un avenir relativement proche, il compte créer des ports NetBSD et HURD et faire tourner a386 sur ces plates-formes. A long terme, le but est de se servir de l'expérience engrangée sur a386 afin de développer un nouveau modèle de machine qui fera abstraction du schéma bien établi processeur poste de travail/serveur et de l'implémenter en tant que bibliothèque C et "Nano-Kernel" tournant directement sur le matériel.

Le tout est bien sûr distribué sous GNU General Public License et, si cela vous intéresse, je vous conseille d'aller voir la page d'accueil du projet [7].

Mais passons maintenant à des considérations d'un intérêt plus direct pour l'utilisateur final.

Guppi

Guppi [8] est en fait trois choses en une. Tout d'abord, il s'agit d'une application d'analyse de données et de création de graphiques et de diagrammes. Ensuite, c'est un composant Bonobo qui permet d'intégrer cette fonctionnalité à d'autres applications, et enfin un ensemble de bibliothèques permettant l'usage de cette fonctionnalité par n'importe quelle application GNOME.

L'application elle-même est d'une importance capitale pour tout qui dépend de la visualisation et de l'analyse de données empiriques, tout spécialement les scientifiques. En fait, Guppi est le seul programme de sa catégorie à reposer dès l'abord sur une intégration GNOME totale, et semble dès lors appelé à devenir la norme en matière de visualisation sous GNOME. Il n'est donc pas surprenant d'apprendre que le tableur GNOME Gnumeric ainsi que le programme de gestion financière GnuCash font appel aux bibliothèques Guppi.

D'après Jon Trowbridge, responsable actuel de Guppi, ses grands avantages tiennent en quatre points. Tout d'abord, les scripts y ont droit de cité; ensuite, l'API interne est accessible via Guile and Python, ce qui rend possible la solution de problèmes complexes sans devoir programmer en C. Puis, Guppi dispose d'un filtre d'importation de données très souple, qui parvient très souvent à déceler comment lire un fichier sans intervention de l'utilisateur. Troisièmement, une grande partie des fonctionnalités est répartie en plugins, ce qui en rend l'extension très aisée. Enfin, Guppi propose une interface PETALE qui ne devrait poser problème à personne.

Mais l'utilisateur final est appelé à la prudence: pour le moment, Guppi se trouve toujours en phase de développement très active, et c'est tout spécialement du côté de l'interface-utilisateur que le tableau n'est pas complet. Certaines fonctions, elles aussi, manquent encore à l'appel, et la documentation est à mi-chemin entre l'épars et le non-existant. Pour l'instant, son usage quotidien sera donc réservé aux seuls experts.

Jody Goldberg and Michael Meeks font eux aussi partie de l'équipe Guppi; ils y travaillent à l'intégration GNOME. Andrew Chatham s'occupe du lien avec Python, tandis que Havoc Pennington ne collabore plus activement à Guppi, alors qu'on lui doit d'énormes avancées du projet dans sa phase initiale. Tout qui s'intéresse à ce développement est invité à prendre contact avec Jon [9]; il m' a dit résider près de l'Université de Chicago (USA), et souhaiterait rencontrer d'autres GNOMEs de sa région.

Mais assez de technique pour ce mois; je voudrais en effet vous toucher un mot de trois publications allemandes.

Une Société GPL?

Sur le Serveur du Projet "Oekonux"[10], on trouvera un document assez intéressant de Stefan Merten qui porte le titre "GNU/Linux - Meilenstein auf dem Weg in die GPL-Gesellschaft?" ("GNU/Linux - un jalon sur la voie d'une Société GPL?") [11] où il tente d'analyser la portée sociale du projet GNU.

L'on sait désormais que Richard Stallman n'a jamais été marxiste ni communiste, bien qu'on l'en ait souvent taxé; mon approche se veut tout autre, elle aussi. Mais c'est justement cela qui me semble rendre enrichissante la lecture de cette étude: c'est que l'auteur qualifie son point de vue politique d'"anarchiste avec une forte dose d'analyse marxiste." Je me demande parfois à quoi ressemblerait le projet GNU vu sous cet angle, et c'est cela qui rend cette lecture fascinante, en dépit de son côté parfois un peu unidimensionnel.

Le document décrit dans sa première partie les grands traits d'une "société de travail", pour ensuite se consacrer aux spécificités de GNU/Linux. Dans l'ensemble du texte, l'accent est mis sur le développement non-commercial de logiciels, en concurrence direct avec la démarche commerciale, principalement associée au modèle propriétaire. Le Logiciel Libre Commercial est largement laissé pour compte, ce qui peut se comprendre étant donné le point de vue de l'auteur, mais cela revient à mes yeux à passer à côté d'un aspect important du phénomène.

La dernière partie repose sur l'idée que, dans une société GPL, les gens agissent par passion pour leurs activités, la reproduction (quasi) gratuite de biens matériels étant à leur base; dans l'état actuel des connaissances, cette vision me semble pour le moins problématique, surtout dans sa deuxième partie, qui me semble pariculièrement naïve. Mais je continue malgré tout à penser que la lecture de cet article (qui, pour autant que je sache, n'existe malheureusement qu'en allemand) en vaut la peine et vous incitera à coup sûr à la réflexion.

C'est à l'opposé du spectre philosophique que se situe ce qui suit.

Bravehack

Bravehack [12], de Jens Sieckmann, est une étude sous-titrée "Technische, wirtschaftliche und gesellschaftliche Aspekte von freier Software und Open Source; ihr Wesen, ihre Geschichte, ihre Organisationen und Projekte" ("Aspects techniques, scientifiques et sociaux du logiciel libre et de l'Open Source; leur essence, leur histoire, leurs organisations et projets"). Cette étude s'adresse aux commerciaux et l'auteur lui-même la destine aux gestionnaires du secteur des TI.

Dès la lecture des premières pages, il apparaît clairement que l'auteur est un chaud partisan des théories d'Eric S. Raymond, à l'origine de la majorité des citations. on s'en doutera, le document est donc très peu critique à l'égard du mouvement "Open Source"; cependant, le souci d'une description équitable de l'essentiel est bien présent, et dans une certaine mesure, également couronné de succès.

Il est intéressant de constater que l'auteur, bien souvent, rompt une lance en faveur du logiciel libre, et ce, apparemment, sans s'en douter. Ainsi, il écrit que le mouvement "Open Source" délaisse à dessein les bases du logiciel libre et omet donc de prendre position sur des questions telles que la propriété intellectuelle. Mais il termine en insistant sur la façon dont les brevets de logiciels menacent de tordre le cou au mouvement.

Par là, il affirme donc indirectement ce que tout particulièrement Richard Stallman ne cesse de répéter: ce n'est qu'en connaissant ses fondements philosophiques et en veillant à les diffuser largement que nous pourrons assurer longue vie au mouvement. Cela nous amène cependant à parler de liberté, ce que Bruce Perens, rien moins que l'auteur de l'"Open Source Definition," a fait il y a quelques mois sur Slashdot. Il semblerait presque que, sur ce terrain, les rangs du mouvement se resserrent, ce dont je ne peux que me féliciter.

Etant donné que de nombreux décideurs allemands rechignent à prendre connaissance de documents en anglais, voilà qui semblerait être la meilleure manière de les amener au sujet "en douceur". Mais il ne faudra bien évidemment pas en rester là.

D'ailleurs, ces deux documents ne sont nullement statiques, mais dynamiques. Le premier peut faire l'objet de commentaires en ligne, quant à Bravehack, il a été publié sous GNU Free Documentation License.

Le logiciel libre, un domaine qui échappe aux lois?

Le juriste et physicien Jörgen Siepmann vient de sortir un livre intitulé "Freie Software - Rechtsfreier Raum?" ("Le logiciel libre, un domaine qui échappe aux lois?") publié par LinuxLand International [13]. Cet ouvrage se penche principalement sur l'applicabilité des GPL et LGPL en Allemagne et est relativement "clean" quant aux bases du logiciel libre. en tout cas, un indispensable pour tous ceux qui s'intéressent au sujet.

...le mot de la fin

Voilà. Ca suffit pour cette fois... Comme d'habitude, je vous encourage à envoyer vos idées, commentaires, questions et suggestions de sujets Par courrier électronique [1].

Info
[1] Vos idées, commentaires et questions à mailto:column@gnu.org
[2] Page d'accueil du projet GNU http://www.gnu.org/
[3] Page d'accueil de Georg's Brave GNU World http://www.gnu.org/brave-gnu-world/
[4] Initiative "GNU C'est Nous"http://www.gnu.org/brave-gnu-world/rungnu/rungnu.en.html
[5] Page d'accueil de GNU Sather http://www.gnu.org/software/sather
[6] Page d'accueil de Ruby http://www.ruby-lang.org/
[7] Page d'accueil de a386 http://a386.nocrew.org/
[8] Page d'accueil de Guppi http://www.gnome.org/guppi
[9] Jon Trowbridge <trow@gnu.org>
[10] Page d'accueil d'Oekonux (en allemand) http://www.oekonux.de/
[11] "GNU/Linux - Meilenstein auf dem Weg in die GPL-Gesellschaft?" ("GNU/Linux - un jalon sur la voie d'une Société GPL?") (en allemand) http://www.oekonux.de/texte/meilenstein/default.html
[12] Bravehack (en allemand) http= ://unixpr.informatik.fh-dortmund.de/~dbadmin/bravehack/
[13] Jörgen Siepmann, "Freie Software - Rechtsfreier Raum?", LinuxLand International (en allemand) <info@linuxland.de>

[ Numéro précédent | Brave GNU World home | Numéro suivant]

Retour à la page d'accueil de GNU.

Questions à propos de la FSF et de GNU à gnu@gnu.org.
Il y a également d'autres moyens de contacter la FSF.

Envoyez vos commentaires sur le Brave GNU World de Georg (en anglais ou en allemand) à column@gnu.org,
envoyez vos commentaires sur ces pages à webmasters@www.gnu.org,
envoyez vos autres questions à
gnu@gnu.org.

Copyright (C) 2000 Georg C. F. Greve
Traduction [FR]: Pierre Libotte

Permission vous est accordée de faire et de distribuer des copies de cet article pour autant que le copyright ainsi que cet avis l'accompagnent.

Dernière modification : $Date: 2008/06/16 16:43:08 $ $Author: mattl $