Fortran, Lisp, C そして Java

私がコンピュータの世界に入ってFortranを少しかじった程度のとき、
先輩からLispで人工知能研究用のParserを作るように命じられました。
Fortranの逐語的プログラムは理解していましたが、
ポインタでつながったデータ構造やそれを操作するLispプログラムがいったい何をしているのか理解出来ず、
なにがどうなっているのか混沌の中で仕事をしました。

Lispは原則として逐語的コードではなく、すべては再帰コード(リカーシブコール)で処理します。
XSLTの再帰コードを書くとき役に立ちましたが、Lispとはそれ以来縁がなくなりました。

Lispから解放され、
Fortranで3Dグラフィックのプログラムを書いていましたが、
Fortranは何故かあまり好きではありませんでした。
パンチカードで1桁目はコメントフラグ、7桁目は継続行フラグ、
8桁目からコードを書くとかの約束事があまりにもカッタルかったからかも知れません
(今はこの制限は解除されていると思います)。
それとやはりプログラムの分岐の基本はgotoなので、
プログラムが読みにくかったからだと思います。

そういえば一時Prologという言語が人工知能の研究で注目され、
少し書いてみましたが、まとまった成果をあげることはできませんでした。

Wirthの[Algorithms + Data Structures = Programs]を読んだおかげで
Pascalを知ることができましたが、処理系を持っていなかったので、
後にデルファイに接するまでPascalを動かしたことがありませんでした。

その後パソコンが世の中に出現したとき、Cコンパイラも発売されましたので、
カーニハンのCを勉強しこちらは気に入り(多分Pascalの経験があったためと思います)、
始めははパソコンで、後にはUNIXでCのプログラムを結構長く書きました。

Cではポインタが面白く、データヒープの中をポインタを移動し、
そこでキャストするとintでもdoubleでもstructureでも抽出される仕組みが、
とても愉快で得意になって多用しました。
ポインタが関数呼び出しに使うなど痛快の限りです
(ご存知の通り、このポインターがプログラムを暴走される主要な原因でもあります)。

その後UNIXで大きなシステムに取り掛かりましたが、
当時はプログラムはすべて英数字のみで、変数や関数名の長さに制限がありましたので、
概してこれらの名前は無機的になり、コメントを適当に入れる作業は重要でした。

Javaは10年以上前に少しかじりました。
その後私はもうWindows一本で行こうと思っていましたので、Javaにふれることはなかろうと、
Javaの本は本棚の奥に積んいました。

実際私の周りではJavaを使う機会はあまりありません。
イントラネットではJavaを使うことはありますが、レンタルサーバでは大抵Javaは使えないし、
Windowsアプリケーションでは、まずJavaを使うことはありません。

突然(私にとっては突然)iPadが評判になり、私もMacがどんなものなのかと興味を持って、
Mac OSを購入しました。
最近のMacはUNIXベースだということだし、開発環境ではJavaがメインのようなので、
いたずらしてみたいと思ったのです。

しかし、購入した後でインターネットを調べると、MacOSを簡単にDOS V機にインストールできないことが分かりました。
Biosに代わるEFI-Xというブート用ハードを購入すればいいようですが、今のところそこまでやる気はありません
(EFI-XでMacを動作させるのは違法のようです)。

JavaはWindowsでは最近はNetBeansで練習プログラムを書いていましたが、
Eclipseが軽そうなのでEclipseに切り替えて、
暇をみつけてAndroidで携帯用のプログラムを作ってみようと考えています。
Eclipseは簡単にWindows(XP、Vista共)環境にインストールできました。

C#はJavaのいいとこ取りだから、C#を書くのとJavaを書くのと大差はなかろうと考えています。

昔Javaを勉強したとき、何故か習得に手間取りました。
一つは、アプレット等の話題が面白くなかったのと、
自分自身がオブジェクト指向の言語を始めて本格的に勉強したからだと思います
(その前に、C++を少し「勉強」したのですが、
VC++のフレームワークが余りにゴチャゴチャしていて嫌気がさしていました)。
それに何より必要に迫られていなかったので気乗りしませんでした。
加えて、当時はEclipseのような手ごろなIDEがなくて、
すべてコマンドを打っていたことも勉強がすすまない大きな要因だったかも知れません。

それでも「この際オブジェクト指向を習得しなければ」と思い私がとった方法は、
「やる気になるまで本を買う」ということで、次々に20冊程の本を買いましたら、
さすがに後には引けなくなり、なんとかものにすることができました。

勿論これは.NETプログラミングに、大いに役立ちました。

どちらにしても、これからはWindows以外もwatchしておいた方がよさそうだと考えています。

error: コピーできません !!