«前の日記(2005年01月04日) 最新 次の日記(2005年01月06日)» 編集

Matzにっき


2005年01月05日 [長年日記]

_ [言語] Python Is Not Java

静的言語であるところのJavaと動的言語のPythonとの比較。 この論はPythonをRubyに置き換えてもだいたい成立する。

興味深いところを引用。

XML is not the answer. It is not even the question. To paraphrase Jamie Zawinski on regular expressions, "Some people, when confronted with a problem, think “I know, I’ll use XML.” Now they have two problems."

This is a different situation than in Java, because compared to Java code, XML is agile and flexible. Compared to Python code, XML is a boat anchor, a ball and chain. In Python, XML is something you use for interoperability, not your core functionality, because you simply don't need it for that. In Java, XML can be your savior because it lets you implement domain-specific languages and increase the flexibility of your application "without coding". In Java, avoiding coding is an advantage because coding means recompiling. But in Python, more often than not, code is easier to write than XML. And Python can process code much, much faster than your code can process XML. (Not only that, but you have to write the XML processing code, whereas Python itself is already written for you.)

実は今までどうしてJavaな人たちが(決してJavaと相性が良いわけでもない)XMLをあんなに使いたがるのか、 十分に理解していなかったのだが、これではっきりした気がする。 XMLはJavaよりもずっとagileでflexibleなので、 「Javaアプリケーションのスクリプティング」の標準的言語の地位を確立しているのだ。 なるほど、そういうことか。

そもそも独立したアプリケーションスクリプティング言語を必要としない PythonやRubyにどっぷりな人には理解できないことに違いない。 我々がXMLを必要とする局面は唯一「interoperability」だけだ。 それさえもXMLよりはYAMLの方がよっぽど適していると思うけど。

_ 米子

おととい米子に行ったのにもかかわらず再び米子訪問。 母校(米子東)のすぐそばを通ったが、遠目には学校はなにも変わっておらず、懐かしい気がした。 いくつかの場所で買い物。


«前の日記(2005年01月04日) 最新 次の日記(2005年01月06日)» 編集