id:methaneが頑張ってくれたら僕も頑張ろうと思ってた

http://d.hatena.ne.jp/methane/20081203/1228330596
頑張ってくれたので、久しぶりにちょっと長い文でも書くか。

しかし、情報量が同じなら、長い文と短い文では、短い文のほうが重要であるというのに、わざわざ長い文を書く、と宣言するとは、これいかに?

情報量を減らすことなく短い文を書くようにするには一体どうすればいいんだろうな。(←例えば、こういう意味の無い前置きを削るなどのことが必要である)


…と、いうのはいいとして、
http://www.python.org/download/releases/2.2.3/descrintro/#cooperation

まず…って書こうとしたら追記してあった。superの件に関しては、Pythonの人は、「やりかたはひとつがよい」と言ってるので、複数の書きかたができるPythonは悪であると言えるだろう。

この点から学べることは、ソフトウェアの世界では、常に、「自分が後方互換を守る立場になるかもしれない」ということを念頭に置いて発言しよう、ということだろうか。まだまだ短いとは言えコンピュータが生まれてから、はや数十年。このコンピュータの歴史において、我々人類は一度として後方互換に打ち勝ったことは無いのである。
うっかり、「TIMTDTWAOOIIとは逆の考えかたです」などと発言しようものなら、将来、自分の首を締めることになるだろう。


まあ、それはいいとして。「D言語に似てるのは」とか書かれたので、ちゃんと説明しておくと、昨日の話のコンストラクタについては、僕の中で、評価基準がみっつあって、

  • 自分のクラスの名前を書かなくていい
  • 親クラスの名前を書かなくていい
  • 間違ったらちゃんとエラーになって停止する

の三点、で、重要度として、「ちゃんと止まる >>>> 自分の名前 = 親の名前」というような感じ。
C++は、自分の名前と親の名前がいるけど、ちゃんと止まるので許容範囲内。
Javaは、自分の名前がいるけど、親の名前がいらなくて、ちゃんと止まるので良い。
Dは自分の名前も親の名前もいらないし、ちゃんと止まるので素晴らしい、というような話でした。

で、Rubyはmoduleを使って委譲ができるので、クラスの継承が必要無いのであまり関係無い。
Perlはもうなんでも良い。
Pythonはクラス継承が必要だというのに、自分のクラス名が必要かつ、一貫性が壊れててもわからない、文法が酷い等の理由でF***(FGMT = Fine Grain Multi-Threadingのこと)というような感じでした。