新・闘わないプログラマ No.20

プログラミング言語と私


このコラムも今回で20回を数えます。ほぼ週1回というペースにもかかわらずよく続いたな、と自分でも感心してしまいます。
先日、今までの分を読み返してみたのですが、対象となる読者層をあまり想定していない、というか、その回ごとにレベルにばらつきがありますね。作者は思った事をただずらずらと書いているだけで、要するに何も考えていない、ということなのでしょう(^^;)
で、今回のテーマは「プログラミング言語」です。プログラムを作った事の無い人にはちんぷんかんぷんかも知れませんが、まぁ、作者は何も考えていない、ということでご了承下さい。

私がコンピュータの世界に出会ってから、もう20年以上が過ぎました。その間に、いろんなプログラミング言語と付き合っていきました。
結構まじめにプログラムを作ったことがある言語は、FORTRANとC、それといくつかのCPUのアセンブラくらいで、あとはかじった程度です。
とは言え、いろんなプログラミング言語をかじってみるのは好きな方なので、Pascal、C++、LISP、APL、BASIC、PL/I、Java(これは始めたばかり)、とまぁ一通り触ってみたことはあります。あ、あとGAMEとかTL/Iとか・・・とか言って、この言語知っている人、どれだけいますでしょうか??
もうお気づきの方もいらっしゃると思いますが、COBOLが入っていません。会社でも、まだかなり多くの人がCOBOLでプログラミングをしているにもかかわらず、実は私はこの言語は知りません、すごいでしょ(って威張るなよ)。まぁ、COBOLを使うような仕事、業務アプリケーションのプログラミングとか、を一度もした事が無いので機会が無かっただけですが。

FORTRANは「私の『コンピュータ』履歴書」でも書いたように(って、最近書いていないな)、私が初めて出会ったプログラミング言語です。その後もよく使っていました。大学時代はほとんどこれでプログラミングしていましたし、就職してからも、職場では数少ないFORTRANが出来る人間ということで、スーパーコンピュータのプログラムを作ったりしていました。
FORTRANは古い言語のため、今から見るといろいろと使いづらい点も多々ありますが、数値計算をやらせれば、右に出るものが無かったのが事実です。最近は数値計算のプログラムは全然関与していないので、現在はどうなんでしょうか、よく分かりません。
私としては、過去のいきさつもあり、欠点が結構あるとは言うものの、やはり愛着のある言語ですね。
以前NetNewsを見ていたら、パンチカードでFORTRANのプログラムを作る話があって、使えそうなカードをごみ箱から拾ってくる話が載っていました。そこで、

   10 CONTINUE

というカードを拾ってくる話があって、そのカードを「攻撃力は弱いけど使いまわしが効くカード」と言っているのを読んで、大笑いしてしまいました。みんな、同じ事やっていたんだなぁ・・・・なんて。(と言っても、これは分かる人にしか分からないネタですね)

C言語は、私としては覚えたのは意外と新しくて、10年位前のことです。その前にアセンブラとかもやってたものですから、C言語の鬼門とも言えるポインタも特に苦労もなく理解することができました。
少し前まで、COBOLプログラマにCを教える研修の講師をやっていたことがあるのですが、ポインタのところは、なんど教えても理解してもらえず、苦労したものです。と言うより、仕事でCでプログラムを結構書いている人でも、よく理解していない人がすごく多いですね。それでも、「○○したい場合は□□と書く」というように体で覚えておけば、ほとんどの場合はなんとかなるのですが、よく見ると、とんでもないコードになっていたりして、「よくこれまでこんなんで動いてきたな」と思わせるプログラムも非常に多かったりします。
あと、これは他の言語でもある話とは思いますが、Cでよく見かけるのに、コンパイラのデバッグオプションや最適化レベルによって動きが違うプログラム、非常に多いです。言語仕様上の未定義部分を使っていたり、とか、意図しないメモリ領域にアクセスしていたり、とか、そのほとんど全てはプログラムのバグなのですが、作った本人はバグと認識していなかったりして、困ったもんです。
「このプログラムは、必ずデバッグオプションを付けて、最適化レベルは"2"でコンパイルして下さい」
「どうして?」
「いや、そうしてもらわないと困るんです」
「リリース版なんだからデバッグオプションはだめだよ。なんで、そうしなくちゃいけないの?」
「そうしないと、プログラムがSegmentation faultでこけるんですよ。なんででしょうねぇ・・・」
「あのなぁ、そんなのプログラムのバグだよ。もう一度、ちゃんどデバッグしろよ」
「でも、コンパイルオプションさえちゃんと指定すれば動くんだし、それでいいじゃないですか」
まぁ、こんな調子で、自分の作ったプログラムにバグがあることを認めない人が多いですね。でも、なんと言われようと、私はそんなプログラムはリリースさせませんけど。

私が学生時代からずっと気になっている言語は、実はLISPだったりします。今まで使う機会が無くて、本当にかじった程度なのですが、なんとなく惹かれるところがあります。現在では、そういう方面からずっと離れたところにいるので、いまLISPという言語がどういう位置づけにあるのか、皆目わからないのですが、なんとなく使ってみたい気にさせる言語です(単なるミーハー的な興味ですけど)。そう言えば、Linuxをインストールする時、LISPもとりあえず入れたような気がするのですが、一度も立ちあげていませんです(^^;)
Pascalは、学生時代に研究室にあるコンピュータにむりやりコンパイラを入れさせて使ったのが最初です。確かに言語としての美しさは際立っていますよね。C言語なんか足元にも及ばない。でも、結局まともなプログラムは作ったことが無いです(^^;) そういえば、Turbo Pascalなんてのも買ったような気がするけど、結局時間が無くて使わなかったし。
でもって、最近はJavaをぼちぼちやっていますけど、全然進んでいません。

[前へ] [次へ]

[Home] [戻る]


mailto:lepton@amy.hi-ho.ne.jp