[image of a Brave GNU World]
Brave GNU World - Ausgabe 18
Copyright © 2000 Georg C. F. Greve <greve@gnu.org>
Permission statement below.

[DE | EN | FR | JA | ES]

Willkommen zu Georg's Brave GNU World. Ich hoffe, diesen Monat wieder eine gesunde Mischung von Themen gefunden zu haben. Beginnen werde ich im Herzen der Technik mit zwei hochinteressanten Programmiersprachen.

GNU Sather

Bei GNU Sather [5] handelt es sich um eine objektorientierte Programmiersprache, deren Konzept ursprünglich ein Ableger von Eiffel war aber so viele Veränderungen gesehen hat, daß sie als eine unabhängige Sprache betrachtet werden muß.

Seinen Anfang hat GNU Sather als wissenschaftliches Projekt am ICSI in Berkeley, wo es ursprünglich unter einer speziellen Lizenz vertrieben wurde, die sich aber nicht als Lizenz für Freie Software qualifizieren konnte. Doch als 1998 die Entwicklung aus finanziellen Gründen eingestellt wurde, konnte eine Gruppe von Leuten die Offiziellen des ICSI davon überzeugen, eine letzte Version von Sather unter der GNU GPL/LGPL herauszugeben, was dazu führte, daß GNU Sather zum offiziellen GNU Projekt werden konnte.

Zu den Besonderheiten von GNU Sather zählt ein außergewöhnliches Interface-Konzept, bei dem die Interfaces von Klassen komplett von deren Implementation losgelöst sind, was mehrfache Vererbung sehr begünstigt. Außerdem kann bei Bedarf der unterliegende Code vollständig geändert werden, ohne dabei das Interface modifizieren zu müssen. Der Maintainer von GNU Sather, Norbert Nemec, hebt außerdem das Iterator-Konzept hervor, welches es ermöglicht, die verschiedenen Schleifenstruktur anderer Programmiersprachen mit einer einzigen Art von Schleifenabbruchbedingung in GNU Sather zu implementieren. Zudem legt er großen Wert darauf, daß GNU Sather nicht als "eine weitere Design-Studie" betrachtet wird - es ist eine Sprache, die von Anfang an auf Geschwindigkeit und Einfachheit für den Entwickler konzipiert wurde.

Der aktuelle Status von GNU Sather ist vermutlich als "kurz vor der Produktionsebene" einzuschätzen. Das Interface zu C und Fortran ist einfach und gut dokumentiert, so daß praktisch alles möglich ist. Die große Schwäche jedoch ist im Moment der Compiler, der keinen Gebrauch von den möglichen Optimierungen macht und zudem als "buggy" bezeichnet werden muß. Logischerweise stellt die Entwicklung eines neuen Compilers momentan den Schwerpunkt der Arbeit dar - doch dies wird wohl noch etwas Zeit in Anspruch nehmen. Auch die Bibliothek bedarf noch der Weiterentwicklung, womit momentan die Universität von Waikato beschäftigt ist.

Doch trotz diese Ecken sollten Entwickler, die sich für objektorientiertes Programmieren interessieren, den Kontakt zu GNU Sather suchen, da es zumindest eine interessante Erweiterung des Erfahrungsschatzes darstellt. Auch gerade die integrierte Unterstützung für paralleles Rechnen (von Multithreading bis hin zu TCP/IP Clustern) und die von Anfang an auf Internationalisierung ausgelegte Bibliothek könnten nach der Beseitigung der Kinderkrankheiten dafür sorgen, daß GNU Sather die Lösung einiger Probleme merklich erleichtert.

Ruby

Ruby [6] von Yukihiro Matsumoto ist ebenfalls eine objektorientierte Progammiersprache, die 1993 ins Leben gerufen wurde; als der Autor nicht in der Lage war, eine objektorientierte Skriptsprache zu finden, beschloß er, selber eine zu entwickeln. Der Name Ruby ist darauf zurückzuführen, daß er ebenfalls einen "Juwelen-Namen" für seine Programmiersprache anstrebte, um die Verwandtschaft zu Perl zu symbolisieren. Sein erklärtes Ziel ist, mit Ruby den Nachfolger von Perl zu schreiben. Dafür orientierte er sich an den Stärken von Sprachen wie Perl, Python, Lisp und Smalltalk und hat versucht, diese in Ruby unter einen Hut zu bringen.

Genau wie Perl ist Ruby sehr gut im Hinblick auf Textbearbeitung und zeichnet sich darüberhinaus durch seine sehr breit angelegte Objektorientiertheit aus. Alle Daten in Ruby sind Objekte - ohne Ausnahme. Die Zahl "1" ist beispielsweise eine Instanz der "Fixnum" Klasse. Es ist möglich, einer Klasse Methoden hinzuzufügen - sogar zu einer Instanz während der Laufzeit. Diese Möglichkeiten machen Ruby sehr flexibel und erweiterbar. Zusätzlich unterstützt es mit Iteratoren, Exceptions, "Operator overloading" und "Garbage collection" vieles, was man sich von einer Sprache wünschen kann. Und um Perl Konkurrenz machen zu können ist es natürlich auch sehr portabel und läuft unter GNU/Linux (sowie anderen Unices) ebenso wie auf DOS, Windows und Mac.

Um den technischen Lesern noch ein wenig mehr Fakten an die Hand zu geben, sei gesagt, daß Ruby über CGI-Klassen verfügt, die die CGI-Programmierung ermöglichen und mit eRuby (embedded Ruby) und mod_ruby Module für den Apache besitzt. Es verfügt über eine gut durchdachte Netzwerk-Socket Klasse und dank Ruby/Tk sowie Ruby/Gtk können GUIs schnell implementiert werden. Zudem hat es spezielle Eigenschaften zur Behandlung von XML und es gibt ein Interface zur expat XML parser Bibliothek.

Abschließend sei noch gesagt, daß Ruby unabhängig vom Betriebssystem Multithreading unterstützt - selbst unter Systemen wie MS-DOS. Seine Syntax wurde in Anlehnung an Eiffel und Ada bewußt so einfach wie möglich gehalten.

Vertrieben wird Ruby wahlweise unter der GNU General Public License oder einer eigenen Lizenz, die den Nutzern stärkere "Proprietarisierungsrechte" einräumt, aber vermutlich die Qualifikation als Freie Software Lizenz schaffen würde - allerdings wurde dies meines Wissens noch nicht genau geprüft.

Damit verlasse ich das Gebiet der Programmiersprachen - auch wenn diese sicherlich eher von technischem Wert sind, denke ich doch, daß es auch Nicht-Programmierer interessieren dürfte, was sich auf diesem Gebiet tut.

Es bleibt jedoch zunächst technisch, auf das nächste Projekt hat mich mal wieder Okuji Yoshinori aufmerksam gemacht.

a386

a386 [7] von Lars Brinkhoff ist eine Bibliothek, die eine virtuelle im protected mode laufende Intel 386 CPU als "Virtual Machine" (VM) zur Verfügung stellt. Nutznießer hiervon sind hauptsächlich Kernel Hacker und Forscher, doch auch Leute, die einfach nur ein anderes Betriebssystem innerhalb ihres existierenden Systems ausprobieren möchten.

Gegenüber ähnlichen Projekten wie z.B. dem Brown Simulator oder plex86 hat a386 den Vorteil, privilegierte Operationen schnell ausführen zu können, da diese entweder als Funktionsaufrufe oder "inlined Code" implementiert sind. Außerdem ist a386 darauf angelegt, portabel zu sein - sowohl, was andere CPU-Architekturen als auch andere Betriebssystem angeht.

Momentan ist die Hauptaufgabe, den Linux Port zu verbessern, aber mittelfristig strebt Lars auch einen NetBSD & HURD Port an und will a386 auch auf diesen Systemen lauffähig machen. Sein langfristiges Ziel ist, aus der gewonnenen Erfahrung ein neues Maschinen Modell erstellen zu können, welches eine Abstraktion der verbreiteten Workstation/Server CPUs ist und diese als C Bibliothek und einen direkt auf der Hardware laufenden "Nano-Kernel" umzusetzen.

Natürlich steht das Ganze unter der GNU General Public License und wer Interesse an diesen Dingen hat, dem empfehle ich einen Blick auf die Homepage des Projektes [7].

Doch damit möchte ich mich nun den Themen zuwenden, die einen direkteren Bezug zum Endanwender haben.

Guppi

Bei Guppi [8] handelt es sich eigentlich um drei Dinge in einem. Zunächst einmal ist es eine Applikation zur Datenanalyse und für die Erstellung von Graphen und Charts. Dann ist es eine Bonobo Komponente, die es erlaubt, diese Funktionalität in anderen Applikationen einzubetten und zuletzt auch eine Gruppe von Libraries, über die jede GNOME Applikation diese Funktionalität verwenden kann.

Die Applikation ist sicherlich für jeden interessant, der auf Visualisierung und Analyse empirischer Daten angewiesen ist - allen voran die wissenschaftlich arbeitenden Nutzer. In der Tat ist Guppi momentan das einzige Programm dieser Art, welches von Anfang an auf volle GNOME-Integration angelegt ist und daher scheint es mehr und mehr zur GNOME-Standardlösung für die Visualisierung zu werden. So greifen beispielsweise auch die Tabellenkalkulation Gnumeric und die Finanzverwaltung GnuCash auf die Guppi-Bibliotheken zurück.

Die großen Vorteile von Guppi sieht der augenblickliche Maintainer, Jon Trowbridge, in vier Punkten. Zunächst einmal ist Guppi skriptfähig, die interne API ist über Guile und Python verfügbar, was es möglich macht, komplexe Probleme zu lösen ohne in C programmieren zu müssen. Zweitens verfügt Guppi über einen sehr flexiblen Datenimport-Filter, der es oft schafft, auch ohne Eingriff des Benutzers zu vermuten, wie ein Datenfile gelesen werden soll. Drittens ist der Großteil der Funktionalität in Plug-Ins aufgebrochen, was es leicht macht, diese zu erweitern und zuletzt verfügt es über ein WYSIWYG Interface, welches niemand vor unlösbare Probleme stellen sollte.

Allerdings sei dem Endbenutzer noch zur Vorsicht geraten - Guppi befindet sich in außerordentlich aktiver Entwicklung und vor allem das User-Interface ist noch nicht komplett. Zudem fehlen noch ein paar Funktionen und die Dokumentation ist irgendwo zwischen spärlich und nicht-existent anzusiedeln. Bis zum Einsatz in der täglichen Praxis muß also noch einen Augenblick gewartet werden.

Das Guppi Team besteht ansonsten aus Jody Goldberg und Michael Meeks, die sich dem Problem der GNOME-Integration annehmen, Andrew Chatham, der die Python-Anbindung betreut und es sollte auch Havoc Pennington erwähnt werden, der zwar nicht mehr aktiv an Guppi beteiligt ist, aber in der Anfangsphase maßgeblich das Projekt vorangebracht hat. Wer Lust hat, sich an der Guppi-Entwicklung mitzuwirken, der ist herzlich dazu aufgefordert, sich bei Jon zu melden [9] - dieser teilte mir übrigens auch mit, daß er in der Nähe der Universität von Chicago (USA) lebt und Interesse hat, sich mit anderen GNOMEs aus der Umgebung zu treffen.

Damit sollte ich die technische Seite erstmal schließen, da es noch drei deutsche Beiträge habe, die ich Euch zumindest kurz vorstellen möchte.

GPL-Gesellschaft?

Auf dem Webserver des Oekonux Projektes [10] findet sich ein recht interessantes Dokument von Stefan Merten unter dem Titel "GNU/Linux - Meilenstein auf dem Weg in die GPL-Gesellschaft?" [11] in dem versucht wird, die gesellschaftliche Bedeutung des GNU Projektes zu interpretieren.

Auch wenn es ihm oft unterstellt wurde, ist ja mittlerweile allgemein bekannt, daß Richard Stallman keinesfalls Kommunist oder Marxist ist und auch mein Ansatz ist ein Anderer. Gerade deshalb finde ich es interessant, diese Studie zu lesen, da der Autor seine politische Heimat als einen mit einer kräftigen Prise Marx'scher Analyse angereicherten Anarchismus bezeichnet. Ich habe mich oft gefragt, wie das GNU Projekt aus dieser Richtung wahrgenommen wird und fand es daher hochinteressant zu lesen - auch wenn ich das Gefühl habe, daß manche Dinge zu einseitig dargestellt sind.

Das Dokument beschäftigt sich im ersten Teil umreißend mit den Grundlagen der Arbeitsgesellschaft um dann im zweiten Abschnitt auf die Besonderheiten von GNU/Linux einzugehen. Der Schwerpunkt liegt dabei auf der nichtkommerziellen Entwicklung in Konkurrenz zur kommerziellen Softwareproduktion, die im Wesentlichen mit dem proprietären Modell gleichgesetzt wird. Kommerzielle Freie Software wird eher stiefmütterlich behandelt, was angesichts des Standpunktes des Autors wohl verständlich ist, meinem Verständnis nach aber einen wesentlichen Aspekt vernachlässigt.

Der letzte Teil baut darauf auf, daß die GPL-Gesellschaft Dinge aus Lust an der Tätigkeit tut wobei die (nahezu) kostenlose Vervielfältigung materieller Güter dabei als Basis dient; das ist nach heutigem Stand des Wissens problematisch. Daher erscheint mir persönlich gerade der letzte Teil etwas naiv. Trotz allem lohnt sich die Lektüre und es finden sich durchaus einige Aspekte, die zum Nachdenken anregen.

An der anderen Seite des philosophischen Spektrums ist der nächste Beitrag angesiedelt.

Bravehack

Bravehack [12] von Jens Sieckmann ist eine Abhandlung über "Technische, wirtschaftliche und gesellschaftliche Aspekte von freier Software und Open Source; ihr Wesen, ihre Geschichte, ihre Organisationen und Projekte". Diese Studie richtet sich eindeutig an die kommerzielle Seite und ist auch schon vom Autor für Manager im IT-Bereich vorgesehen.

Es wird schnell ersichtlich, daß der Autor starker Verfechter der Thesen Eric Raymonds ist, von dem auch der Großteil der genannten Zitate stammt. Dementsprechend unkritisch geht die Studie mit der "Open Source" Bewegung um - trotzdem hat sich der Autor sichtlich bemüht, bei der Darstellung ausgewogen zu sein und einigen Teilen gelingt ihm das sogar recht gut.

Interessant ist die Tatsache, daß der Autor teilweise eine Lanze für die Position der Freien Software bricht; scheinbar ohne sich dessen bewußt zu sein. So schreibt er, daß sich die "Open Source" Bewegung absichtlich nicht mit den Grundlagen der Freien Software beschäftigt und daher auch keine Meinung zu Dingen wie der Frage nach Softwarepatenten hat. Gegen Ende seiner Abhandlung jedoch hebt er hervor, wie gerade die Softwarepatente drohen, der gesamte Bewegung den Lebenssaft abzudrehen.

Damit sagt er indirekt genau das, was gerade Richard Stallman nicht müde wird zu betonen: nur, wenn wir uns der philosophischen Grundlagen bewußt sind und diese allen Leuten bewußt machen, können wir das Untergraben der Bewegung auf Dauer verhindern. Dazu ist es jedoch notwenig, über Freiheit zu sprechen, was auch Bruce Perens, seines Zeichens Autor der "Open Source Definition", vor ein paar Monaten auf Slashdot vertrat. Es scheint fast, als ob auf diesem Feld wieder eine gewisse Annäherung stattfindet, was ich für sehr positiv halte.

Gerade angesichts des Unwillens vieler deutscher Manager und Entscheidungsträger, was das Lesen von englischen Dokumenten angeht, halte ich dies trotz der angesprochenen Schwächen für eine gute Art und Weise, Außenseiter "schonend" an die Grundlagen der Szene heranzuführen.

Beide Dokumente sind übrigens nicht statisch sondern dynamisch. Ersteres kann online kommentiert werden und Bravehack unterliegt der GNU Free Documentation License.

Damit komme ich zum letzten Thema.

Freie Software - Rechtsfreier Raum?

Der Rechtsanwalt und Diplom-Physiker Jürgen Siepmann hat ein Buch mit dem Titel "Freie Software - Rechtsfreier Raum?" verfasst, welches bei LinuxLand International erschienen ist [13]. Dieses Buch beschäftigt sich vor allem mit der Rechtssicherheit der GPL und LGPL und ist verhältnismäßig sauber, was die Grundlagen und den Bezug zur Freien Software angeht. Auf jeden Fall ein Muß für alle, die sich mit diesem Thema beschäftigen.

...zum Schluß

Damit soll es genug sein für diesen Monat und wie üblich bitte ich um zahlreiche Kommentare, Anregungen, Fragen und Themenvorschläge per Email [1].

Infos

[1] Ideen, Anregungen, Kommentare an die Brave GNU World: column@gnu.org
[2] Homepage des GNU-Projektes: http://www.gnu.org/
[3] Homepage von Georg's Brave GNU World: http://www.gnu.org/brave-gnu-world/
[4] "We run GNU" Initiative: http://www.gnu.org/brave-gnu-world/rungnu/rungnu.de.html
[5] GNU Sather Homepage http://www.gnu.org/software/sather
[6] Ruby Homepage http://www.ruby-lang.org/
[7] a386 Homepage http://a386.nocrew.org/
[8] Guppi Homepage http://www.gnome.org/guppi
[9] Jon Trowbridge <trow@gnu.org>
[10] Oekonux Homepage http://www.oekonux.de/
[11] GNU/Linux - Meilenstein auf dem Weg in die GPL-Gesellschaft? http://www.oekonux.de/texte/meilenstein/default.html
[12] Bravehack http://unixpr.informatik.fh-dortmund.de/~dbadmin/bravehack/
[13] Jürgen Siepmann, "Freie Software - Rechtsfreier Raum?", LinuxLand International <info@linuxland.de>


[ vorherige Ausgabe | Brave GNU World Homepage | nächste Ausgabe ]

Return to GNU's home page.

Please send FSF & GNU inquiries & questions to gnu@gnu.org.
There are also other ways to contact the FSF.

Please send comments on Georg's Brave GNU World (in English or German) to column@gnu.org,
send comments on these web pages to webmasters@www.gnu.org,
send other questions to gnu@gnu.org.

Copyright (C) 2000 Georg C. F. Greve

Permission is granted to make and distribute verbatim copies of this transcript as long as the copyright and this permission notice appear.

Last modified: Fri Sep 15 14:27:07 CEST 2000