僕のYak Shavingは終わらない

車輪の再発明をやめたらそこには壮大なYakの群れが

言語思想ってあると思う。

言語思想ってあると思う。

この前の連休中にいきなり一念発起して、「初めてのPerl」を読む事にした。絶対に読み終わると覚悟を決めて篭っていたのだが、結果は散々なものになった。

言い訳をすると自分が持っていたはじパの版が古かった。

そこでモチベーションをだいぶ削がれてしまった。


あとプログラムを全て書き直しながらやったので、以外に時間がかかった事だ。

自分の性格的に「理解してない事は口に出したくない」からできるだけ理解できるように疑問点が残らないように、そして出来れば本に1の事が書いてあるなら、1.1にはしてアウトプットしたいと思ってやっていた。

結果、勉強用に書いたコードは15章まで読んで2000行近くになった。
これが多いのか少ないのかで言えばわからない。


どちらにせよもっとたくさんのPerlを書かないと行けないと思う。
平日も使ってかけてゆっくりやって行きたい。


それはそうとのべ24時間程は確実にPerlと格闘してわかった事がある。
Perlは自分が思っていたプログラミング言語ではなかったのだ。

じゃあなんだったのかというと、PerlPerlだった。

何を言っているのかと思うかもしれないが、今まで自分はPerlと言うものを、そしてプログラミング言語と言うものを誤解していた。

今まで使ったプログラム言語はC、JavaPythonRubyMatlabJavascript、そしてPerlだったのだがどれもこれもが書き方の違うけど同じプログラミング言語だと思っていた。
言語〇〇は〇〇に特化している、だから用途によって使い分ければいいと思っていた。

でも今回初めてオライリーの本を読んでその考えが変わった。
Perlプログラミング言語ではあるのだけどPerlだった。他のなんでもない。Perlだった。

最初は文字に強いCだと思っていた。
浅墓だった。


オライリーを読んだ自分はもう

for(my $i = 0; $i < n; $i++){}

のようなコードを多用することは無いだろうし、

foreach my $word(@words){}

と一々myを使わないで、「お気に入り」である$_を使うだろうし、

print "@list = ",@list,"\n";
#と
print "@list length = ".@list."\n";

の違いがわかるだろうし

print "hoge\n" if $a > 0;

とかifが後ろになったり、そもそも

my $a = $param || 0; 

のようにifを書かないだろうし、

sub puls{$a+$b}

とreturnのないサブルーチンを書くと思う。

”毛の生えたC言語”という認識では到底この考えには辿りつかない。
PerlにはPerlの哲学があった(そしてtrueはなかった!)。

もっと”怠惰”になりたい。

できるだけプログラミングをしたくないから、
もっとたくさんのプログラミング言語を勉強したいと思った。





初めてのPerl 第5版

初めてのPerl 第5版