kubotaの日記: 最初に覚えた言語
日本語:-)
というのはさておき (でも英語よりかは BASIC のほうが先に覚えた)、別の言語を覚えたときにそれを「併用」するか「移行」するか、という問題がある。
BASIC とマシン語、C とマシン語、などは併用しやすい。ただし、BASIC と併用するためのマシン語と、C と併用するためのマシン語はかなりスタイルが異なる。それは、BASIC とマシン語の場合は BASIC が主体、C とマシン語でも C が主体となるためだ。なので、BASIC と C を併用するということは考えにくい。
ぼくの場合は、BASIC から始まり、マシン語を覚えはじめたころは BASIC 主体 + マシン語ルーチン呼び出しの形をとり、すぐにマシン語単体での使用に切り替わった。長い間ハンドアセンブルだったが、「マシン語入門」(入門編、実践編、応用編だったかの3部構成)に載っていたアセンブラを一生懸命入力し、使った覚えがある。
やがて MSX から PC-9801 に移行し、また BASIC でしばらく遊んだり、BASIC 主体 + マシン語ルーチン呼び出しの形式をほんのちょっとだけかじった後、こんどはマクロアセンブラ単体に進んだ。ハンドアセンブルに慣れたぼくには、マクロアセンブラの余分な機能は少々うざったかった。いまだに、LEA (だったっけ、アドレスの値をロードする、というやつ) とかの命令が何のためにあるのか、理解していない。
それから、LSI-C 試食版にて C に移行。これは併用の時期を経由しない、完全な移行だった。ただし、最初はすべての変数をグローバルにしたり、でっかーーい単一の関数を使って縦横無尽に goto を使ったり、と、BASIC をそのまま C に翻訳したようなプログラムを書いていた。しかし、いまはその名残は完全に消えたと思っている。
それでも、N88-BASIC でプログラムを書いたりすると、古巣に戻ったような安心感がある。手軽にグラフィックをやるにはこれが一番。テキスト画面とグラフィック画面が独立なので、コマンドモードでもグラフィックをいじれるし。だから、DOS/V 系の BASIC とか、Windows 上の N88-BASIC 互換 BASIC は、不可。
この感覚に近いのは、Tcl/Tk かなあ。でも、Tcl/Tk の描画命令はそれほど暗記していないので、パソコンを手足のように操る、という感覚は味わえない。やっぱり、頭の柔らかい子どものころのようには、ものごとを暗記できないし。