Perl

twitterJapan Perl Association の CEO とお話をしたメモ。ainsophyao が私。

a「perl は黒魔術。reverse($i) eq $i だけで言語として恣意的なスカラーコンテキストだとか自動変換だとか、とても奥が深い症候群。生物屋のような素人にはお薦め出来ない。」http://twitter.com/ainsophyao/status/11146736285

l「eq は 文字列の比較だからどちらにしろおかしいんじゃないかな RT @ainsophyao: perl は黒魔術。reverse($i) eq $i だけで言語として恣意的なスカラーコンテキストだとか自動変換だとか、とても奥が深い症候群。生物屋のような素人にはお薦め出来ない。」http://twitter.com/lestrrat/status/11147349751

a「いえ、$iは数値で eq で正しいです。玄人が one-liner を書き捨てるための言語ですから。RT @lestrrat eq は 文字列の比較だからどちらにしろおかしいんじゃないかな RT @ainsophyao: perl は黒魔術。reverse($i) eq $i(略」http://twitter.com/ainsophyao/status/11188064051

l「@ainsophyao reverseは文字列を反転させるものではないことはわかっているんですよね?そこだけが不思議だったので。」http://twitter.com/lestrrat/status/11194705241

a「perldoc @lestrrat In scalar context, concatenates the elements of LIST and returns a string value with all characters in the opposite order.」http://twitter.com/ainsophyao/status/11210815513

a「ようするに、あの一行でかなり複雑なことが起きているのです。scalar list array hash reference の違いが分かっていないと読めないような。 @lestrrat http://perldoc.perl.org/functions/reverse.htmlhttp://twitter.com/ainsophyao/status/11211619301

a「. @lestrrat 念のため、これだけ通じていればよいのですが、'print reverse(100,200);' => 200100 で 'print scalar reverse(100,200);' => 002001 なのはいいですよね。」http://twitter.com/ainsophyao/status/11307601240

少しおいてから

a「そうそう。以下が間違いなのは分かりました? JPA が間違うと影響大きいので念のため。cf perl cookbook RT @lestrrat : @ainsophyao reverseは文字列を反転させるものではないことはわかっているんですよね?そこだけが不思議だったので。」http://twitter.com/ainsophyao/status/11829162795

l「@ainsophyao うん、たしかにscalar reverseはびっくりしたけど、Perlを10年以上使っていて文字列を反転するためにreverseなんて使わないしみないので、やっぱり scalar reverse $fooはそもそも用途がおかしいと思うのはかわりませんね。」http://twitter.com/lestrrat/status/11847627003

l「@ainsophyao 僕の答えはやはり「それを使う状況がおかしい」です。」http://twitter.com/lestrrat/status/11847656706

a「. @lestrrat 用途がどうおかしいのでしょう。一般性なら、クックブックのレシピ1.6の内容は、まさにこれです。らくだ本にもあるし。動機なら、生物系なら文字列を逆順にするのは自然です。まあ、WEB ではあまり使わないかもしれないですね。」http://twitter.com/ainsophyao/status/11941618810

l「@ainsophyao あー。DNAシーケンスとかかぁ。そりゃ使いますわな。 」http://twitter.com/lestrrat/status/11958534571

ようするに、Perl についてはこういう事だと思っている。

Perl は Hacker の Write Only の十徳ナイフとして使うのが正統な使い方だろう。常に手元に欲しいが、これだけで料理をするのは筋が悪い。他の言語をいくつか知らないと、この特徴的な強みは生かせない。」http://twitter.com/ainsophyao/status/11892131199

Perl は文法が複雑すぎる。使い慣れている人が何かをするのにはよい。しかし、WEB 屋は WEB 屋の使い方を、バイオ屋はバイオ屋の使い方を、ハッカーハッカーの使い方をしている結果、言語のコミニティ内部に複数の文化が生まれて意思疎通ができなくなっている。