「フロンティアが見たい。それがなくなってしまう前に。」
映画「ダンス・ウイズ・ウルブズ」の中で、ケビン・コスナー扮する主人公のダンバー中尉が、 なぜこんな辺境の地に来たのかと尋ねられて答えたセリフがこれであった。
開拓のフロンティアでダンバー中尉はインディアンのスー族に出会い、孤独がいやされ、 そして合衆国の軍隊から離れてインディアンと共に暮らす生活に入っていく。
フロンティアは、単なる開拓の最前線ではなく、異文化との接点でもある。 フロンティアに自分の任地をおくということは、合衆国とインディアンの二つの世界のぶつかるさまを 目のあたりにすることでもあった。
* * *
コンピュータはプログラミング言語で制御される。プログラミング言語には、 機械語、アセンブラのようなCPUに密着したものから、 CやPascal、BASIC、COBOL、Fortranといった高レベルなものまで、非常に多くの種類が存在する。
しかも、現在でも多くのプログラミング言語が開発されつつある。 これまでのプログラミング言語にちょっと改良を加えたものもあれば、これまでにない考え方を導入した、 まったく新しいものもある。新しいプログラミングを修得するスピードよりも、 新たにプログラミング言語が生まれるスピードの方が速いといってはいいすぎだろうか。
* * *
新しいプログラミング言語を学ぶときに陥りがちな過ちは、 いままで自分が修得してきたプログラミング言語からの類推のみで新しい概念をとらえることである。
例えば、プログラミング言語はBASICしか知らない人が、Cを習ったとしよう。 その人はつい、BASICのときの癖で大域変数を多用してしまうかもしれない。 あるいはあちこちにgoto文を登場させてしまうかもしれない。 分割コンパイルをせずたった一つのファイルで大きなプログラムを書き、 関数分けをせずmain関数一つですべてをすまそうとするかもしれない。
このような人は、C言語を使ってはいるものの、考え方はBASICから少しも変わっていない。 BASICのスタイルをそのまま使おうとし、C言語のいいところを生かしていないのである。
* * *
新しいプログラミング言語は、必ず新しい概念を持っている。そしてそれは言語の機能に反映される。 新しいプログラミング言語を学ぶことは、その新しい概念を学び、自分のものとすることに他ならない。
その新しい概念は「構造化プログラミング」かもしれないし、「オブジェクト指向」かもしれない。 名前は何でもいい。それらのお題目はプログラミング言語の機能として仕様に反映されているはずである。
いままでに自分がプログラミング言語を学んだ経験は、新しい言語を学ぶときでもきっと役に立つだろう。 しかし大切なのは、これまでの自分の経験の枠の中に新しいものを押し込めようとせず、 むしろこれまでの経験にとらわれずに新しい考え方を吸収することなのではない。 自分の知らない未開拓の荒野を見すえて、開拓の最前線をさらに進めることではないだろうか。
* * *
「ジョン・ダンバー中尉」がインディアンにつけられた「ダンス・ウイズ・ウルブズ」 という名前を本当の自分の名前であるとし、英語ではなくインディアンのラコタ語を話しはじめたとき、 彼はフロンティアを越えて向こう側の世界の人間となった。
いままで自分が覚えたプログラミング言語の枠にとらわれず、 新しい言語の考え方を身につけて使い始めたとき、あなたは新しい世界に一歩を踏み出したことになる。
あなたの心のフロンティアがひとまわり大きく広がったのだ。
(Oh!PC、1991年5月15日)