Luna Labs
Luna Labs
ソフトウェア開発者に必要な語学力

プログラミング言語は、万国共通である。また、自然言語のような誤解を生むことがない。プログラムを読めば、全てが明らかになる。ただしそれはあくまで理想であって、自然言語を用いて意図的に曖昧な記述を行った方が、物事の概要を速くつかめる局面も多い。仕様書然り、プログラム内のコメント然り。従って、プログラムが読み書きできればソフトウェア開発者が務まるというわけでは決してない。

インターネットには、オープンソースソフトウェア(OSS)として、大量のコードが溢れている。その圧倒的な情報量の内実は、決してコードだけによるものではなく、コードと同じかそれ以上に大量のドキュメントやコミュニティといった、コードを支える層が存在している。OSSと付き合うという時、それは静的なコードを相手にすることのみを意味するわけではなく、動物のように振る舞う、生きた実在としてのソフトウェアを相手にするということを常に念頭に置くことが必須となる。

OSSを利用する際、まずは、OSSのライセンスを読んで、正しく理解しなければならない。ライセンスに則って初めて、OSSを利用する準備が整う。既にそのOSSがどのように役立つかは調査が済んでいるものとして、次に、そのOSSの向かっている先を見定める必要があるだろう。現在実装されていない機能が将来追加される見込みはあるのか。仕様はどのように変遷してきたか、また変化してゆくのか。そのあたりは、単にドキュメントを読み込むだけでは足りない場合もある。メーリングリストやフォーラム、バグデータベースにIRCチャンネルなど、大きなOSSプロジェクトになればなるほど、フォローすべき情報は増大していくからだ。WebKitやMozillaなど、巨大プロジェクトの蓄積してきた情報は膨大であり、Lunascapeもまたその流れの中にいるのだ。

情報はフォローするだけではなく、先方の開発者やテスターと直接やり取りすることも時には必要となる。参加することに利用ライセンス以外の制限を設けているOSSプロジェクトは滅多にない以上、大手を振ってコードを利用すべきであり、単に先方に注文を付けるだけでもそれは対象のプロジェクトを豊かにすることに繋がるからだ。Lunascapeにおいてユーザーの方々の声が非常に重要であるのと同じく、OSSプロジェクトは外部とのコミュニケーション無しには成り立たない。今日のOSSでは、分散した個々の参加者が公開の場に自由に出入りし情報を共有しながら、速いサイクルでテストとリリースを繰り返す、いわゆるバザール方式が開発手法の主流となっている。その流れに乗ってゆくには、コードやそのドキュメントを読み書きする能力もさることながら、自らの要求をはっきりと表明した上で粘り強く対話を行うための語学力が必要不可欠と言えるだろう。


Posted 2010/3/1 11:45 by RyuK
Copyright Lunascape Corporation. All rights reserved.
Powered by Community Server (Non-Commercial Edition), by Telligent Systems