フレームワークと言語とコミュニティ

例えばJavaで言えば、SpringFrameworkだったりSeasarだったりStrutsだったりWicketだったりClickだったり、Java言語が持つ言語仕様とそれがもたらす特性をフルに生かしたフレームワークの上で、多くの開発者がアプリケーションを作成する。 例えばRubyで言えば、Ruby on RailsだったりMerbだったりCampingだったりramazeだったりVintageだったり、Rubyが持つ言語仕様とそれがもたらす特性をフルに生かしたフレームワークの上で、多くの開発者がアプリケーションを作成する。 例えばPythonで言えば・・・例えばHaskellであれば・・・例えばPerlであれば・・・なんだろう? 最近では、言語が先行して流行ることは少なくて、何らかのフレームワークが流行った結果、その基本となる言語が注目される、ということがほとんどだと思う。で、流行したフレームワークについて、コミュニティが形成されて普及がさらに進む、という傾向が強い。つまり、言語のみに関して大きなコミュニティが形成される、というよりは、フレームワークに人が集まるという傾向だと思う。 さて、そうやって形成されたコミュニティは、もちろんフレームワークを担いでいるわけで、フレームワークの良さを広く一般に伝えていくことはとても良いことだと思う。しかし、いつの間にか、フレームワークの話ではなく、その基本となる言語に話がシフトしてしまっているコミュニティが見受けられる。つまり、「フレームワークの良さ」が、あたかも「言語の良さ」として語られてしまっている、ということ。 これは、必ずしも真ではない。例えば、フレームワークのシンプルさは、あくまでフレームワークがそうシンプルにしてくれているだけで、言語がシンプルかというとそうではないこともある。フレームワークを使うからこそ開発者フレンドリーになるはずなのに、言語そのものをコミュニティメンバーや一般開発者に「簡単だから」的な言い方で勧めている、とかもそう。 こういったことを信じて参加した人にとって、非常に良くないことだと思ってしまう。詐欺に近いんじゃないかと。 フレームワークを通じて、より低い場所、つまりそれを構成する言語の特性を知ることは、開発者の技量を深めるための非常に良い手順である。こういった話を通じて、フレームワークから見える言語の良さを伝えていくのであれば納得できる。例えば、フレームワークのコードリーディングとかをコミュニティ内でやっていたりする、とか。でも、フレームワークを使うだけ、それだけで「この言語はいいよ」と言うのは、ちょっと違うんじゃないの?と思ってしまう、個人的にどうしても。 で、そういった意見がコミュニティの外野で聞こえてきても、コミュニティがそういう意見を聞かず、自己都合の理由を付けて軌道修正をしない、というのも、残念ながら僕は見たことがある。 例えば、僕はRuby on Railsというフレームワークを使ってアプリケーションを開発し、その結果Ruby on Railsの良さを少なくとも体感している。でも、それで「Rubyできます。」とはどうしても言えない。「Rubyでプログラミングできます。でも、Ruby on Railsを使った開発です。」と必ず言うようにしている。だって、Rubyの言語特性をちゃんと伝えるだけの背景を知らないわけだし、Ruby on Railsによる恩恵を受けた上での開発経験なんだから。 僕は、コミュニティの存在は非常に大事だと思うし、OSS全盛の今日だからこそ、コミュニティ主導という流れは主流になっていると思う。でも、間違ったメッセージを発信してしまうことは、人間がする活動の集合であるコミュニティにとっては、避けて通れないことだ。そして、それに警告を打ってくれる外部の人は必ず登場するわけで、コミュニティはちゃんとそういう声に耳を傾け、自身の活動の軌道修正をして欲しい。そうじゃない「オレオレ」コミュニティかどうかをちゃんと見極めた上で、コミュニティに参加するように多くの人がなって欲しい。そして、外部がそういう声を出しやすい環境を、コミュニティの主要メンバーはちゃんと作っていくことを心がけて欲しい。 特定のコミュニティに対して、ということではなくて、上記のような状況って少なからずどのコミュニティにもあると思う。今後ますます影響力を持つであろうコミュニティという形成物に関わる人々は、常に自問自答や外部意見の取り入れと反省を繰り返して、方向性がぶれず、間違った方向に広がらないような運営を期待したいな、と思った2008年の夏である。

このエントリーをはてなブックマークに追加

Yoichiro

(よういちろう)