「オープンソース」による「学習の高速道路」効果
大変古い話題だが、梅田望夫氏の著書『ウェブ進化論 本当の大変化はこれから始まる (ちくま新書)』にて紹介されている、「学習の高速道路」という考え方がある。
「ITとインターネットの進化によって将棋の世界に起きた最大の変化は、将棋が強くなるための高速道路が一気に敷かれたということです。でも高速道路を走り抜けた先では大渋滞が起きています」
(略)
将棋が強くなるために必要な情報、つまり定跡研究成果、棋譜データベース、終盤のパターン化や計算方法の考え方といった情報の整理は、この十年恐ろしいスピードで進んだ。そしてその整理された情報を、わずかなコストで誰もが共有できる時代になった。
僕は、いくつかのオープンソースプロダクトのコミッター(ソースコードを書く人)をやった。また、職業としてのプログラマも経験した。その中でもやはり、「学習の高速道路」というものを感じた。今もなお、下手の横好きなのか、日曜大工のようにソースコードを書いてみたりしているが、はやり、わからないことがあったら、検索して、参考になるようなソースコードを探す。最近お世話になったのは、Pythonのプログラムを勉強する為に、DjangoというWebアプリケーションのフレームワークのソースコードを動かしたり、眺めたりした。また、iPhone SDKのプログラミングで、わからないところがあったので、Google Codeの中を探しまわったりした。数分後、無事に見つかり、「ほほぅ。なるほど。」と、学習できた。すべてが、良いコード、動くコードという保証は無いが、ある程度の正解を見つけることができる。良い世の中だ。過去に、一部で「オープンソースはソースコードが公開されているから良いのだ」という議論がされていたときがあったかと思うが、確かに、ソースコードが公開されているメリットは大きいように感じる。
また、「高速道路を走り抜けた先では大渋滞」ということも、『ウェブ進化論 本当の大変化はこれから始まる (ちくま新書)』にて言及されている。「大渋滞」をどう乗り越えるかは、高速道路で走っているときに、どのようなことをやったか、どのようなことを思考したかにかかってくるのでは?と思う。そう考えると、高速道路は、やや低速で飛ばした方が良いかもしれない(笑)。確かに高速道路はある。しかし、そこでどのように走るかが、大渋滞にさしかかったときの底力になるに違いない。
さて、最近は、Gitというソースコード管理を行う分散型バージョン管理システムが登場し、さらに、そのGitのプロジェクトのホスティングサービスが登場し、ソースコードを公開するということが個人単位で、随分と簡単になってきているようだ。
Git(ぎっと)はプログラムなどのソースコード管理を行う分散型バージョン管理システム。動作速度に重点が起かれている。Linuxカーネルのソースコード管理を目的として、リーナス・トーバルズによって開発された。現在のメンテナンスはJunio Hamanoが担当している。 Gitではワーキングディレクトリがリポジトリの全ての履歴を含んでいるため、中央サーバへのアクセスが不可能な状態であってもリビジョン間の履歴を調査することができる。『Git - Wikipedia』より
git のプロジェクトホスティングサービス。Rails で作成されており、使いやすいインターフェイスが特徴。Rails や RSpec 等、また http://gems.github.com/ の Rubygems のレポジトリソース等、Ruby 関係のライブラリのコードを中心とした様々なオープンソースの開発の場所ともなっている。無料で 100M 使えるアカウントを作ることができ、git レポジトリの作成、公開が可能。もちろん Web 上から変更履歴等も参照可能である。
またワンクリックで github で公開されている OSS のコードを fork して開発することが可能で、自分の変更を加えたレポジトリを pull してほしい、等の要望もワンクリックで可能である。
あるときは、プログラマの好奇心の結果。あるときは、プログラマの大志。あるときは、プログラマ同士のコミュニケーションの手段として、理由は様々に、ソースコードは、Web上にどんどん転がっていく。「オープンソース」の「学習の高速道路」は、雑味も含みながら、今後も育っていくのだろうと思う。夜に。
写真:Nrbelex