Pascalを勉強中。

仕事ではPHPでプログラムを書いていますが…
僕ってプログラミングの基礎が全くないんです。

HTMLを書き始めて、CGIやモジュールからPerlを拾い読みして覚えて、
PHPに移って初めてきちんといくつか勉強して…という感じなので、
プログラミングの基礎知識…Cとか殆どない。
大学も別にそんなんではなかったし。


今までは何となく仕方ないかなと思っていたんだけど、さすがにどうかと。
このままPHPのぬるま湯でいいのか。
かなり長い道のりにはなるかもしれないけれども、色んな言語を勉強してみたい。


そういうわけで、第一歩として、Pascalを選択してみました。

仕事でも使えるようにとか考えるんであれば、Rubyとか、Pythonとか、
もっとPerlとかCとかC++とかVBとかVCとか、面白そうなものは色々あるんだけども、
この状態でそれらをやっても何となく大事なことを取り落としてそうで…
将来的にはそういうものも分かるくらいにはならなくては行けないと思うけど、
とりあえずは、まさに教育としてのPascalを勉強してみようと。


決めた理由はRauruさんのこちら。

Rauru Blog? Blog Archive ? 悪いのはPHP自体じゃないかもしれないけど
私もいろんな言語をいじってきたけど、一番影響を受けた言語は Pascal だと思ってます。「PL/0 コンパイラを Pascal で書く」演習を大学の学部でやらされたんだけど、勉強になったわ。日立のPADが大好きなのもそのせいだわな。今では動的型付け言語(主にPerl)の方が好きだけど、静的型付け言語ならコンパイル時に検出できるプログラムミスが動的型付け言語では見落とされるってのも理解してる。理解してるわりにはそういうミスをよくやるってのも否定はしないけど、デバッグ時にそういう理解が役に立ってる。
PHP な人も、Pascal みたいに窮屈な言語を使ってみるといいんじゃなかろうか。窮屈な言語って、PHP的価値観では「初心者向けでない」ってことになるのかもしんない。でも、その中から学ぶことも必ずあると思うんだけど。

買った本は、これ。

4781905528Pascal入門 (Information & computing (34))
古郡 廷治
サイエンス社 1989-07
by G-Tools

どれ選んだらいいか分からなかったというのもあるし、
実戦で役立つ知識ではなく、教材としての体裁を取ってるものが良かったので。
(中古で、案の定鉛筆の書き込みがそこここに)


家帰ってから本片手になにがしかという感じなので、
そう劇的に読み進められるわけではないけど、
あらかじめ型をきちんと指定しないとエラーが出るってのは、ある意味新鮮だった。
そりゃ入るデータに従って型を変えてくれる方が楽だけど、
DBに代表されるように、本当はきちんと意識しておかなくてはならないわけで。
なんだろうなぁ…手早くとかとは真逆かもしれないけど、
それがなぜどうやって動くかを説明するのは大事だよなとか。


ちなみに、型に関する静的/動的で分類するとこんな感じみたい。

  • 静的型付け言語
    • Pascal、Java、Cなど
  • 動的型付け言語
    • Perl、Ruby、PHPなど

ふむふむ。


とはいえ、まだ全然進んでなくて、
ようやく分岐とループが出てきたところなので…頑張ります。
(Delphiとかまで行くかは未定だけど)

program say(input, output);
var str : string;
begin
write('say what? = ');
read(str);
writeln(str);
end.

書いてみた、入力した文字列を表示するだけのコード。
うーむ、プログラム始めました感満載だなw


1冊一通り終了した際には、なにか処理をするコードをでっち上げてみたいと思います。