So-net無料ブログ作成
  • ブログをはじめる
  • ログイン

プログラミング言語を放浪する(2) [プログラム]

 もう、僕が必要としているようなプログラムでは、Cなどのコンパイラを使う必要はない。特定のOSでのインターフェース、特にグラフィカルなインターフェースが必要でなければ、これらのコンパイラ系の言語を使う必要はあまりないようだ。

 もしダイアログのようなものが必要になったとしても、場合によってはWebアプリケーションにするか、あるいは大抵のスクリプト言語でも何らかのグラフィカル・ユーザー・インターフェース用のライブラリなどを備えている。といっても、これまでそういうものを使う必要は感じなかった。

 むしろ、テキスト処理が中心となる場合、C言語やJavaなどでなければならない必要性は全くない。こうして、僕はある時期以後、コンパイラを使うことを止めてしまった。

 最初のころはPerlを使っていた。その処理速度はCで作るもの程速くはなかったが、開発の効率は圧倒的に優れていた。その要因は二つあった。一つは高度な正規表現が使えること、もう一つはスクリプトがコンパクトに書けること。また実行速度が速いことも利点であった。確かに、シェル・スクリプトやAWK、C言語などが出来る場合、その文法は覚えやすく、またPerlに特有のイディオムに習熟すると、非常に短いスクリプトで多くのことができるようになった。

 これは、プログラムの見通しがよくなる、という長所がある。ディスプレーの1画面に入るスクリプトの情報量も多くなる。見通しがいいと、メンテナンスが楽になる。修正もしやすい。

 しかし、これはプログラミングの初心者がプログラミングの本質を学ぶためには、あまりいい選択にならない理由にもなる。実用性は高いが教育的な効果は少ない、というのがPerlの特徴だろう。

 その後、日本人が作ったために日本語の処理が楽なRubyに乗り換えた。特にRubyでなければならないわけではなかったが、純粋なオブジェクト指向言語であり、その点での文法が一貫しているように思えたこともあった。それと日本語の処理について、特別なことを考えないでも問題がないこともよかった。オブジェクト指向を導入しなければならないほど大きなプログラムを作るわけではないが、しかし、Rubyなら、余り肩肘張らずに、単に面倒なものを一つのクラスにまとめてしまえ、というイージーな感じでオブジェクト指向ができた。

 僕が多用する正規表現については、最先端のPerlほどではないが、十分に協力なので特に問題はなかった。ただし、これもMacOS9では、うまく動かず、結局、OSXになってから本格的に使うようになった。そして、無謀なことに、大学での講義でこれを説明することにした。実習でやるならばいいが、講義でプログラミング言語を説明するというのは、全くの失敗だった。半年講義をやり、後期に実習をやったが、結局、ある程度できるようになったのは、一人だけだった。

 そうこうしているうちに、もう一方でPythonの勉強も始めていた。特にオライリーの『初めてのPython』の翻訳が出たことであった。PythonはMacOS9でも、OSXでも問題なく動くので、そういった意味ではRubyよりもやりやすかった。最初は、一部に見られる文法上の不整合を理由に、余り乗り気ではなかったが、結局大学のプログラミング言語の演習で使うようになって、そのテキストも書き、またサンプルのプログラムも作り、授業でも説明をしているうちに、割合、手に馴染んでくるようになった。

 そうやって馴染み出すと、今度はRubyの不自然な表現が気になり出した。まだ、Perlの方が自然だが、それ以上にPythonの表現は、生の英語あるいは擬似コードに近く、非常に自然な表現に思えてきた。プログラミング言語としての構文や構成要素も、Rubyよりもずっとシンプルで、学生にプログラミングの基本概念を教えるには、Rubyよりもずっとやりやすかった。Rubyでは、たとえば、繰り返しを特殊な概念イテレータで処理することが多いが、Pythonは for 〜 in リスト という、構文を使い、直感的には非常に分かりやすいし、同時に初心者にも教えやすい。

 オブジェクト指向を導入しなくても何とかなるのも、初心者に優しい。初心者がオブジェクト指向の概念を身に付けるのは、変数や代入、繰り返しや条件分岐、関数定義、そして一つの問題を解くためのに手順を記述するのがプログラムだ、というような、プログラミングの基本概念に十分習熟してからの方がいい。そして、これらの基本概念をPythonは非常に分かりやすく提供してくれるし、それだけで十分に高度なプログラムを組める、というのが、Pythonのいいところだ。

 僕は他にSchemeにも興味があって、『コンピュータプログラムの構造と解釈』を少しずつ読んでいるし、また極めて特殊なプログラミング言語であるTeXのスクリプトも書いたり、今年はXSLTも、学生の卒論とともに勉強したりしていて、スクリプト言語としてPythonを使うようになってはいるが、その他の言語にもまだまだ関心がある。そうそう、あまりやりたくはないが、これも卒論がらみでPHPにも手を染め、Javascriptも機会があれば、教えたいと思っている。

 本当は、なぜPythonが教育用言語に適しているか、そしてそれはひいてはwythonが教育用言語として、どの程度の有効性があるかを示すことにもなる、そういう話をしたいと思っていたのだが、それは、直ぐに書くには難しい話なので、とりあえず、僕のプログラミング言語遍歴をまとめることでお茶を濁してしまった。Pythonについては、また別の機会に考えてみたいと思う。


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は180日以上新しい記事の更新がないブログに表示されております。