Diary?::2005-10-02

22:05

もう10月だってのに、やたらと暑い。こういう日は、環境汚染だの地球温暖化をヒステリックに叫ぶ連中の話を信じてしまいがち。というような気がする。

ニュース番組はそういうやり方で誘導を計っているよな。

22:24

サブクラスとサブタイプという文書を発見。感想。そうねえ、OCamlは恐いということしかないんじゃないの? こういう言語でプログラムを書ける人は、やはり凄い。

俺はPythonが最高だと思っているが、それは単純にPythonにはややこしさが殆んど無いからだということを、こういう他の言語の凄まじさを見るたびに実感する。まあ、一番Pythonの有難味を実感できるのはC++を書いたあとだが。

23:22

SAとしてJavaを教えていていつも思うのだが、大学で最初に教える言語として、一体何が最適なのだろうか。俺の意見は当然Pythonなのだが、他に何があるだろう。そしてJavaには最初に教えられるべき理由があるのだろうか。

前にも書いたが、企業が使っているという理由だけで教えるのは論外として、Javaを最初に教えるメリットは何なのか。俺の目にはJavaのHello worldにすらクラスを書かせる設計思想は(教育という観点からは)C++の文法並に馬鹿げて映るし、文字列の表示にSystem.out.printlnと書かせるのは嫌がらせ以外の何者でもない。

そもそもJavaに学術的な価値があるのかどうか、物凄く疑問だ。Javaはオブジェクト指向言語かもしれないが、オブジェクト指向の中のクラス指向の部分しか学べないのはどうなのか。そして何より、オブジェクト指向は最初に学ぶべきパラダイムなのか。

Pythonは簡単な事は簡単に、難しいことは段階的に難しくしていると言われているが、これはつまり最初から要求される知識などが極めて少なく、難しいことをやろうとするにつれてy=xの関係で増えていくということだ。Javaはy=x+zの言語だと思うが(y=a*x+zかも)、このzが学びにくさの原因となっていると思う。そしてこのzこそが、何も分からないうちに書かされるclass HelloWorldであり、テキストに書かれたオブジェクト指向という言葉(これは他の言語でも同様)ではないのか。

Pythonが最適なのかどうかは議論の余地があると思うが、Javaが最適ではないのは殆んど自明のことのように思える。

余談だが、C++はy=x**3+z(xの三乗はPythonではx**3と書く)の言語だと思う。

Written by Kuwata Chikara
Creative Commons