[image of a Brave GNU World]
Brave GNU World - 第18号
Copyright © 2000 Georg C. F. Greve <greve@gnu.org>
日本語訳: IIDA Yosiaki <iida@ring.gr.jp>
許可声明は以下のとおり

[DE | EN | FR | JA | ES]

GeorgのBrave GNU Worldへようこそ。 今月もまた興味深い話題を見つけたと信じます。 非常に興味深い2つのプログラミング言語にまつわる技術の核心部分から始めましょう。

GNU Sather

GNU Sather [5] は、 元来Eiffelから分かれたオブジェクト指向プログラミング言語なのですが、 分かれて以来いろいろな風に変わったので、 もう無関係な言語ととらえねばなりません。

GNU Satherは初め、 Berkeley ICSIの科学プロジェクトとして始まりました。 ただし、 完全にはFree Softwareのライセンスとはいえない条件の下で配布されました。 しかし1998年、 財政的な理由による開発の中断後、 大勢の人たちがICSIの当局者を説得して、 最終版をGPL/LGPLの下でリリースできるようになりました。 それでGNU Satherを公式のGNU Projectにすることができたのです。

GNU Satherについて注目すべきはその革命的なインターフェースの概念で、 クラスのインターフェースと実装が完全に分離されています。 そのため、 多重継承がとても簡単になります。 また、 インターフェース部分にまったく触れずに、 下層のコードの変更 --これはどうしてもあることなのですが-- もできます。 GNU Satherの現在の管理者のNorbert Nemecのお気に入りは、 他の言語でいう全種類のループ概念を実装する反復子(iterator)の概念で、 しかもこれがbreak文一発で実装できることです。 彼はGNU Satherを、 ただの「ありきたりな設計研究」などではなく、 最初からスピードや開発者のための便宜を考慮して設計された言語だと呼んでほしい、 と思っています。

GNU Satherの現在の状態は、 きっと「日常使用はほぼ準備完了」といえばよいでしょう。 CやFortran へのインターフェースは簡単で文書資料もしっかりしているので、 実質的には何でもできるということです。 現時点での最大の弱点は、 できるはずの最適化をしてくれないうえ、 「バグだらけ」と呼ぶしかないコンパイラです。 新しいコンパイラを書くことは、 明らかに最大の懸案事項ですが、 これには、もう少し時間がかかるでしょう。 ライブラリーにももう少し作業がいりますが、 これは現在Waikato大学でおこなわれています。

こういうきつい点にもかかわらず、 オブジェクト指向プログラミングに興味ある開発者なら、 GNU Satherはチェックするべきです。 それだけでも、 興味深い経験になるでしょう。 特に (マルチスレッドやTCP/IPクラスタもふくむ) 並列計算にたいする統合的サポートや、 その発端以来の国際化を基盤とするライブラリのおかげで、 そうした残っている問題が解決されてしまえば、 これは卓越したツールとなるにちがいありません。

Ruby

まつもとゆきひろによるRuby [6] は、 またちがったオブジェクト指向のプログラミング言語です。 オブジェクト指向スクリプト言語の見つからなかった1993年、 そういうものを作者が自分で書き始めることにしたわけです。 作者はPerlとの近さをあらわすため「宝石」の名前の中からRubyを選びました。 彼の宣言した目標は、 RubyをPerlの後継ぎ兼、 置換えにすることです。 この達成のためPerl、Python、LispやSmalltalkのような言語のパワーを、 彼はRubyに組み込もうとしました。

Rubyは、 まさにPerlのように、 テキスト処理を非常に得意とし、 さらにそれから非常にひろいオブジェクト指向へすすんでいます。 Rubyではデータはすべて例外なく、オブジェクトです。 たとえば数「1」は、「Fixnum」クラスのインスタンスです。 実行中にメソッドをクラスに、そしてもし必要とあらばインスタンスにも、 加えることが可能です。 Rubyはこの能力のおかげで非常に柔軟かつ、拡張可能となっています。 さらに反復子、例外、演算子の多重定義、ガーベジ・コレクションなど、 言語にはこんなものがあってほしいと思うような機能が、 たいていサポートされています Perlとの入替えのできるよう、かなり可搬性に富み、 GNU/Linux (や他のUnix群)の下でだけでなく、 DOS、MS WindowsやMacでも同様にはしります。

技術畑の読者むけにもう少し情報をあたえると、 RubyにはCGIクラスがあって、 eRuby (embedded Ruby: 埋込みRuby) やmod_rubyというApacheのモジュールから 簡単にCGIのプログラミングができるという話をしておかなければなりません。 また、かなり練られたネットワーク・ソケットのクラスがあり、 Ruby/TkやRuby/Gtkのおかげで、GUIの実装も比較的簡単に可能です。 Expat XML解析ライブラリーへのインターフェースや、 XMLの処理のための機能もあります。

OSから独立したMS-DOS上でも動くマルチスレッドをRubyがサポートしていることを、 最後に書いておかなければなりません。 この複雑さにもかかわらず、 (EiffelやAdaから着想を得ており) 構文はできるだけ簡単にしてあります。

Rubyは、GNU General Public Licenseか、あるいは、 もっと強い「独占化権利」をユーザーにあたえる特別なライセンスの下で、 配布できます。 詳しくは全部チェックしないといけないのですが、 まあFree Softwareのライセンスの資格があるといってもよいでしょう。

これらの特徴は、多分ほとんど技術的な価値なのですが、 非プログラマでさえもこの領域での開発に興味があるだろう、 と私は思います。

ひきつづき技術的なコラムです。 OKUJI Yoshinoriがまた私に興味深いプロジェクトの話をしてくれました。

a386

Lars Brinkhoffによるa386 [7] は、 「仮想機械」 (Virtual Machine) として保護モードでうごく仮想Intel 386 CPUを供給するライブラリーです。 利用者の大部分は、 カーネル・ハッカーや科学者のはずですが、 現存システムの中で、 別なOSをチェックすることに単に関心のある人たちにも、 興味深いだろうこと、 うけあいです。

Brown Simulatorやplex86のような同様のプロジェクトとくらべて、 特権操作が関数呼出しやインライン・コードとして実行されるため、 より速く実行できるという利点があります。 さらにこれは、他のOS同様、他のCPUアーキテクチャにかんしても、 可搬性を目指しています。

現在の短期的課題は、Linuxへの移植性をたかめることです。 中期的には、NetBSDとHURDへ移植し、 a386をこれらのOS上で実行できるようにすることです。 長期の目標は、a386によって得られた経験をいかして、 普及したワークステーションやサーバのCPUを抽象した新しいマシン・モデルを作成し、 直接ハードウェア上でうごく「ナノ・カーネル」や、 Cのライブラリーとして実装することです。

もちろん、すべてがGNU General Public Licenseの下で配布されています。 もし興味があれば、プロジェクトのホームページ [7] を見るといいでしょう。

さて次は、 エンド・ユーザーにもっと直接的な重要性ある話をしたいと思います。

Guppi

厳密にいえば、 Guppi [8] には、1つの中に3つのものがあります。 まずこれは、データ分析とグラフやチャート作成のためのアプリケーションです。 次にこれは、 上の機能を他のアプリケーションに埋め込むことのできるBonoboコンポーネントです。 そして最後にこれは、 あらゆるGNOMEアプリケーションで使うことのできるライブラリー一式です。

アプリケーションそのものは、 実験データの分析や視覚化に依存するすべての人、 とりわけ科学分野のユーザーにとって明らかに重要です。 Guppiは実際、それが始まってからずっと、 完全なGNOME統合に基づくそういう種類のただひとつのプログラムです。 よって、これはだんだん視覚化分野でのGNOMEの標準になっていくでしょう。 したがって、 GNOMEのスプレッドシートGnumericと、 会計管理のGnuCashがGuppiに依存していることも、 驚くに値しません。

Guppiの現在の管理者Jon Trowbridgeによれば、 大きな利点は4点に要約できます。 1番目に、Guppiがスクリプト型(scriptable)なことです。 内部APIはGuileやPythonから利用可能で、 いくぶん複雑な問題をCでプログラムせずに解決できます。 2番目に、Guppiには、 利用者が介在しなくても、ファイルの読取り方法をじょうずに推測してくれる、 とても柔軟なデータ取り込みフィルタのあることです。 3番目に、多くの機能が拡張の簡単なプラグインに分けられること。 最後に、Guppiには、 だれが使っても大丈夫なWYSIWYGインターフェースがあることです。

ですが、エンド・ユーザーの人は、もう少し深く用心すべきです。 Guppiは、いまだにかなり活動的な開発段階で、 特にユーザー・インターフェースは、未完成です。 足りない関数が若干あったり、 また文書資料がなかったり、またどこかにあってもすかすかだったりします。 したがって、日常的に使うのなら、熟練した利用者のみが、検討するべきです。

Guppiチームの他のメンバーは、 GNOME統合作業をしているJody GoldbergとMichael Meeks、 Pythonとの結び付きの面倒をみているAndrew Chatham、 そして忘れてならないのは、 もはやGuppiについて活発な作業はしていないものの、 早期における作業の大多数をこなしたHavoc Penningtonです。 開発に関心のある人は、Jon [9] と連絡をとれば、喜んで歓迎されるでしょう。 彼は自分の現在の居場所が米国シカゴ大学に近いことと、 この地方でもっと多くのGNOMEたちと会うことに興味がある、 と私に知らせてくれました。

今月の技術語編はここらでよいでしょう。 簡単に紹介したいドイツがらみの記事が3件あるので。

GPL社会?

Stefan MertenがGNU Projectの社会的意味を分析しようとしたなかなか興味深い文書が、 Oekonux Project Webserver [10] にあります。 題して、 「GNU/Linux - GPL社会への道の里程標?」 ("GNU/Linux - Meilenstein auf dem Weg in die GPL-Gesellschaft?") [11] 。

Richard Stallmanがマルクス主義者でもなければ、 共産主義でもないということは、 今でこそ有名ですが、彼は何度もそう呼ばれていました。 そして私の視点も、別な角度からのものです。 特にこのため、この研究を読むことは、私にとって興味深いことでした。 なぜなら、著者は彼の政治的立脚点を 「マルクス風な分析のどえらい衝撃という味付きの無政府主義」 のようなものと呼んでいるからです。 この観点から、GNU Projectがどう見えるのかをときどき自問し、 とてもわくわくしながら、これを読みました。 ときには、 あまりにも一元的に扱われているなあ、 と感じるところもありましたが。

本文の第1部では、 労働社会 (Arbeitsgesellschaft) のおおまかな基本を説明し、 第2部では、GNU/Linuxの詳細を取り扱っています。 全文の焦点は、 独占モデルと主に関連している商業ソフトウェア生産との直接的な競争の中における非商用開発にあります。 商用のFree Softwareは、ほぼ無視されています。 これは、著者の立場からは理解できるかもしれませんが、 現象を全体的にとらえたときに見えてくる非常に重要な面を無視しているように見えます。

最終部は、 (ほぼ)無経費の有形財の増殖が基盤となるとき、 GPL社会における人々はすべきこと (things they would want to do) をするだろう、 という思想に基づきます。 技術の現在の状態にしたがえば、少なくとも疑わしいと考えざるをえません。 そのため、最後の部分は特に、 私には比較的無邪気なように思えます。 しかし、それでもまだ、私は、この記事 (残念ながら、私の知る限り、独語しかありません) を読むことは、明らかに価値があり、 若干の点は、新しい洞察力を得るのに役立つだろう、 と思います。

次の記事は、 哲学的スペクトルの反対側です。

Bravehack

Jens SieckmannによるBravehack [12] は、 「Free SoftwareとOpen Sourceの技術的、科学的、そして社会的側面。 その本質、歴史、組織そしてプロジェクト」 ("Technische, wirtschaftliche und gesellschaftliche Aspekte von freier Software und Open Source; ihr Wesen, ihre Geschichte, ihre Organisationen und Projekte") という副題のついた研究です。 この研究は、商業的側面を明瞭な主題とし、著者自身その主な利用は、 計算部門における管理者のための予備知識資料と考えています。

冒頭を数ページ読んだ後、 著者がEric S. Raymondの意見の強い支持者であることは明白になりました。 引用の大多数が彼からなのです。 この文書は「Open Source」運動をやや非批判的にあつかうと想像できながらも、 それでもなお彼は、明らかに本質を示す際、公正たろうとし、 ところどころで彼は、本当にうまくそれに成功しています。

おもしろいのは、ときどき著者が、 自分でも気づかないうちにFree Software側にくみするところです。 たとえば彼は、 「Open Source」運動がFree Softwareの基本を故意に扱わず、 したがってソフトウェア特許のような質問について無定見だと書きます。 ところが最後には「Open Source」運動側に立ち、 いかに全運動がソフトウェア特許で台無しになりうるかについて、 強い声明を出すのです。

したがって、 特にRichard Stallmanがあきもせずに繰り返し言っているちょうどそのこと --我々が基本を意識しており、 他の人々がそれを意識しているということに注意しさえすれば、 運動を長期間続けることができる-- を、彼は間接的に言ったりしています。 数か月前にBruce Perens (偶然「Open Source Definition」の著者ですが) がSlashdotで語っていたように、 「だがこれで、自由について語ることもできる」。 私の目には積極的な発展と写るのですが、 これらの運動がまるでもっと広い共通基盤を見つけたかのように思えます。

しかし、 特にドイツの管理者に英語の文書を読ませるやや小さな動機づけのことを思えば、 これは、若干の基本を「スムーズ」に紹介する良い方法に思えます。 でも、もちろんこれで終りにするべきではありません。

ところで、両方の文書は、静的でなく、動的です。 最初の方は、オンラインでコメントを付けることができて、そして、 Bravehackの方は、GNU Free Documentation Licenseの下で公開されました。

Free Software - 無法地帯?

弁護士兼物理学者のJürgen Siepmannが 「Free Software - 無法地帯?」 ("Freie Software - Rechtsfreier Raum?") という題の本を書いてLinuxLand International [13] から出版しました。 これは、主としてドイツにおけるGPLとLGPLの適用についてあつかい、 Free Softwareの基本にかんしては比較的読みやすいです。 この話題に関心のあるみなさんには、 まさに「必携」の書といえるでしょう。

…おしまい

さて。 今月はこのへんで…。 いつものように、 あなたのお考え、 コメント、 質問そして話題の提案を電子メール [1] 経由でお送りくださいますようお願いします。

情報
[1] 意見、批判や質問は Brave GNU World <column@gnu.org> まで
[2] GNUプロジェクトのホームページ http://www.gnu.org/home.ja.html
[3] GeorgのBrave GNU Worldのホームページ http://www.gnu.org/brave-gnu-world/brave-gnu-world.ja.html
[4] 「We run GNU」イニシアチブ http://www.gnu.org/brave-gnu-world/rungnu/rungnu.ja.html
[5] GNU Sather ホーム・ページ http://www.gnu.org/software/sather
[6] Ruby ホーム・ページ http://www.ruby-lang.org/
[7] a386 ホーム・ページ http://a386.nocrew.org/
[8] Guppi ホーム・ページ http://www.gnome.org/guppi
[9] Jon Trowbridge <trow@gnu.org>
[10] Oekonux ホーム・ページ (独語) http://www.oekonux.de/
[11] "GNU/Linux - Meilenstein auf dem Weg in die GPL-Gesellschaft?" (「GNU/Linux - GPL社会への道の里程標?」) (独語) 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>

[ 前の記事 | Brave GNU Worldのホームページ | 次の記事 ]

GNUのホームページにもどる。

FSFやGNUについてのお問合せ、 ご質問は、 (英語で) gnu@gnu.orgまで。
FSFへの他の連絡方法があります。

GeorgのBrave GNU Worldについてのご意見は、 (英語かドイツ語で) column@gnu.orgまで。
ウェブ・ページについてのご意見は、 (英語で) webmasters@www.gnu.orgまで。
他のご質問は、 (英語で) gnu@gnu.orgまで。

Copyright (C) 2000 Georg C. F. Greve
Japanese translation by IIDA Yosiaki

日本語訳: 飯田義朗

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

(著作権と上の許可告知のある限り、 この写しの逐語的な複製をとって、 配布する許可を認めます。)

Last modified: Mon Jul 24 16:52:15 CEST 2000