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

[DE | EN | FR | JA | ES]

Welcome to Georg's Brave GNU World. Once again I hope to have found an interesting mix of topics this month. The start will be made in the heart of technology with two very interesting programming languages.

GNU Sather

GNU Sather [5] is an object oriented programming language that was originally branched off from Eiffel, but it has been changed in so many ways since that it must be regarded as an independent language.

The beginning of GNU Sather was as a scientific project at the ICSI, Berkeley, where it was distributed under a license that did not quite qualify as a Free Software license. But after development was stopped for financial reasons in 1998 a bunch of people were able to convince the officials at the ICSI to release the last version under the GPL/LGPL. This made it possible for GNU Sather to become an official GNU Project.

Among the remarkable things about GNU Sather is its revolutionary interface concept where class interfaces are completely separated from their implementations; this makes multiple inheritance very easy. It is also possible to change the underlying code completely without touching the interface, should it become necessary. The current maintainer of GNU Sather, Norbert Nemec, also likes to highlight the iterator concept, which allows all kind of loop concepts that other languages use to be implemented with a single break-statement. He would also like to see mentioned that GNU Sather is not just "another design study" - it is a language that has been designed for speed and comfort for the developer right from the start.

The current status of GNU Sather should probably be described as "almost ready for day-to-day use." The interface to C and Fortran is easy and well-documented, so practically everything should be possible. The biggest weakness right now is the compiler which doesn't use the possible optimizations and has to be called "buggy." Obviously writing a new compiler is on top of the task list - but this will take some more time. The library also needs some more work, which is currently being done by the University of Waikato.

Despite these rough spots, developers interested in object oriented programming should check out GNU Sather. If nothing else it'll be an interesting experience. Especially the integrated support for parallel computing (multithreading up to TCP/IP clusters) and the library that was based on internationalisation since it's inception should make this an excellent tool once the last problems have been solved.

Ruby

Ruby [6] by Yukihiro Matsumoto is another object-oriented programming language; it started in 1993 when the author wasn't able to find an object oriented scripting language and made the decision to write one himself. The name Ruby was chosen because the author was looking for another "jewel name" to symbolize the closeness to Perl. His declared goal is to make Ruby the successor & replacement of Perl. To achieve this he took the strengths of languages like Perl, Python, Lisp and Smalltalk and tried to incorporate these into Ruby.

Just like Perl, Ruby is very good at text processing and additionally gains from it's very broad object orientation. All data in Ruby is an object - there are no exceptions. The number "1," for instance, is an instance of the "Fixnum" class. It is possible to add methods to a class at runtime - even to an instance if need be. These possibilities make Ruby very flexible and extensible. Additionally, it supports iterators, exceptions, operator overloading, garbage collection and much more that one likes to see in a language. In order to be able to replace Perl, it is also very portable and runs under GNU/Linux (and other Unices) as well as DOS, MS Windows and Mac.

To give technical readers a few more crumbs of info it should be mentioned that Ruby has CGI-classes that allow easy CGI programming, and modules for the Apache also exist: eRuby (embedded Ruby) and mod_ruby. It contains a well thought-out network socket class, and thanks to Ruby/Tk and Ruby/Gtk it is possible to implement GUIs rather easily. There also are special features for the treatment of XML and an interface to the expat XML parser library.

Finally it should be mentioned that Ruby supports multithreading independently of the operating system - even under MS-DOS. Despite this complexity the syntax has been kept as simple as possible (inspired by Eiffel and Ada).

Ruby can be distributed under the GNU General Public License or a special license that gives users stronger "proprietarisation rights," but it might qualify as a Free Software license - although this remains to be thoroughly checked.

Although these features have probably mostly technical value, I do think that even non-programmers could be interested in developments in this area.

But the column still remains technical - once again OKUJI Yoshinori told be about some interesting project.

a386

a386 [7] by Lars Brinkhoff is a library that provides a virtual Intel 386 CPU running in protected mode as a "Virtual Machine" (VM). This should be of most use to kernel hackers and scientists, but might also prove interesting for people just interested in checking out another operating system within their existing system.

Compared to similar projects like the Brown Simulator or plex86, a386 has the advantage of running privileged operations faster because they are implemented as function calls or inlined code. Additionally it aims for portability - with regard to other CPU architectures as well as other operating systems.

Currently the task at hand is to enhance the Linux port, but in the medium term he seeks to create a NetBSD & HURD port as well as making a386 run on these operating systems. The long term goal is to take the experience gained with a386 to create a new machine model which will be an abstraction of the wide-spread workstation/server CPUs and to implement this as a C library and a "Nano-Kernel" running directly on the hardware.

Of course everything is distributed under the GNU General Public License and if you're interested in these things, a look on the project's homepage might be a good idea [7].

But now I'd like to talk about things of more direct importance to the end-user.

Guppi

Strictly speaking, Guppi [8] is three things in one. First of all it is an application for data analysis and the creation of graphs and charts. Then it is a Bonobo component which allows embedding this functionality in other applications, and finally it's a set of libraries that allows any GNOME application to use it.

The application itself is definitely important for everyone relying on visualisation and analysis of empirical data - especially scientific users. In fact Guppi is the only program of its kind based on full GNOME integration from the start, and so it seems that it is slowly becoming the GNOME standard for visualisation. Thus, it does not surprise that the GNOME spreadsheet Gnumeric and the finance manager GnuCash rely on Guppi.

According to Jon Trowbridge, current maintainer of Guppi, the big advantages can be summed up in four points. First of all Guppi is scriptable, the internal API is available via Guile and Python - so it is possible to solve rather complex problems without having to program in C. Second Guppi has a very flexible data import filter with rather good guessing capabilities as to how a file should be read without intervention by the user. Third a lot of the functionality is broken down into plugins which makes it easy to extend, and finally Guppi has a WYSIWYG interface that should not give anyone trouble.

But the end-user should still be a little careful - right now Guppi is still in very active development and especially the user interface is not yet complete. There are also some functions lacking and the documentation is somewhere between sparse and non-existent, so only expert users should consider it for daily use.

Other members of the Guppi team are Jody Goldberg and Michael Meeks who work on the GNOME integration, Andrew Chatham, who takes care of the Python-binding, and I should also mention Havoc Pennington who doesn't work actively on Guppi anymore but did a majority of the work in the early phase. Anyone interested in development is very heartily invited to get in touch with Jon [9] - he also informed me that his current location is close to the University of Chicago (USA) and that he'd be interested in meeting more GNOMEs in this area.

This should be enough technobabbel for the month because there are three Germany-based features that I would like to give a short introduction to.

GPL-Society?

On the Oekonux Project Webserver [10] there is a rather interesting document by Stefan Merten with the title "GNU/Linux - Meilenstein auf dem Weg in die GPL-Gesellschaft?" ("GNU/Linux - milestone on the way to a GPL-Society?") [11] where he tries to analyze the social meaning of the GNU Project.

Although he has been called one several times it is widely known by now that Richard Stallman is no Marxist or Communist - and my perspective is from another angle, as well. This fact made it even more interesting for me to read this study because the author calls his political standpoint "Anarchism peppered with a good jolt of Marxian analysis." I sometimes asked myself what the GNU Project would look like from this viewpoint and so this was a fascinating read - even if I feel some things are being treated too one-dimensional.

The first part of the document roughly describes the basics of the working society, while it deals with specifics of GNU/Linuxin the second part. The focus of the whole document is on non-commercial development in direct competition to commercial software production that is mainly associated with the proprietary model. Commercial Free Software is mostly being ignored - this may be understandable considering the standpoint of the author but means neglecting a crucial aspect of the whole phenomenon in my eyes.

The last part builds upon the idea that in a GPL-society people would do the things they want to do, nearly cost-free multiplication of material goods serving as the basis; which must be called problematic to say the least according to the current status of technology. Because of this especially the last part looks a bit naive to me. But still I think it is definitely worth the while to have a look at this article (only available in German as far as I know - sorry) and some aspects can help gaining new insights.

On the other side of the philosophical spectrum you'll find the next feature.

Bravehack

Bravehack [12] by Jens Sieckmann is a study subtitled "Technische, wirtschaftliche und gesellschaftliche Aspekte von freier Software und Open Source; ihr Wesen, ihre Geschichte, ihre Organisationen und Projekte" ("Technical, scientific and social Aspects of free Software and Open Source; their essence, their history, their organisations and projects"). This study clearly targets the commercial side and the author itself sees its main use as a background document for managers in the computing sector.

After reading the first pages, it becomes apparent that the author is a strong supporter of the theories of Eric S. Raymond - the majority of all quotes are his. As one can imagine the document deals rather uncritically with the "Open Source" movement - but nonetheless he obviously tried to be fair in describing the essentials and in some parts he succeeds quite well.

What's interesting is the fact that the author sometimes fights for the Free Software position; seemingly without being aware of it. For instance, he writes that the "Open Source" movement purposely does not deal with the basics of Free Software and hence does not have an opinion about things like of software patents. But at the end he makes a strong statement about how software patents could kill the whole movement.

So he indirectly says exactly what Richard Stallman in particular never gets tired of repeating: only by being aware of the basics, and takeing care that other people are aware of them can we make sure the movement will survive in the long term. Still, it brings up an opportunity to talk about freedom - as Bruce Perens, author of the "Open Source Definition," has called for on Slashdot a few months ago. It almost seems as if the movements are discovering more common ground - which is a positive development in my eyes.

Considering the rather small motivation of German managers to read English documents, this seems like a good way of introducing them to some basics in a "gentle" way. But of course they should not stop there.

By the way: both documents are not static but dynamic. The first one can be commented online and Bravehack has been published under the GNU Free Documentation License.

Free Software - Law-free Zone?

The lawyer and physicist Jürgen Siepmann wrote a book with the title "Freie Software - Rechtsfreier Raum?" ("Free Software - Law-free Zone?") that has been published by LinuxLand International [13]. This books deals mainly with the applicability of the GPL and LGPL in Germany and is relatively clean as far as the Free Software basics are concerned. Definitely a "must-have" for everyone interested in this topic.

...the end

Okay. That should be enough for this month... as usual I'm encouraging you to send your ideas, comments, questions and topic suggestions via email [1].

Info
[1] Send ideas, comments and questions to Brave GNU World <column@gnu.org>
[2] Homepage of the GNU Project http://www.gnu.org/
[3] Homepage of 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.en.html
[5] GNU Sather home page http://www.gnu.org/software/sather
[6] Ruby home page http://www.ruby-lang.org/
[7] a386 home page http://a386.nocrew.org/
[8] Guppi home page http://www.gnome.org/guppi
[9] Jon Trowbridge <trow@gnu.org>
[10] Oekonux home page (in German) http://www.oekonux.de/
[11] "GNU/Linux - Meilenstein auf dem Weg in die GPL-Gesellschaft?" ("GNU/Linux - milestone on the way into a GPL-society?") (in German) http://www.oekonux.de/texte/meilenstein/default.html
[12] Bravehack (in German) http://unixpr.informatik.fh-dortmund.de/~dbadmin/bravehack/
[13] Jürgen Siepmann, "Freie Software - Rechtsfreier Raum?", LinuxLand International (German book) <info@linuxland.de>

[ previous issue | Brave GNU World home | next issue ]

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:26:48 CEST 2000