作者: 機械伯爵 '
日時: 2006/9/23(21:06)
 機械’す。

 あんましムキになって話してると、このテの
話は暴論になってくるので、慎重にいきます。

<方向性>
> んー、ストラウストラップの本はD&Eも含め何冊も読んでますし、そこかしこ
> での発言も見てますので、エレガントな書き方云々というのはまあわかるんですが
> 言語として似ているかどうかにつながるかどうかはちょっと…
> 
> Wikipediaの編集さんもその辺が気になったのではないでしょうか?

 ちなみに、そこらへんは書いてませんよ、勿論。

 私は単に「C++を書きやすく簡単にしたのがPythonだ」とか書いた
だけですから。

 それが一番イメージしやすいかな、と。

 事実、そういうトコから出発しないと、Pythonってば、つかみ所が
無いですから、言語のイメージが伝えにくい、と、そういう意味です。

 まぁ、それは最後の話につながるわけですが……

 私がストラウストラップの話を持ち出したのは、まず前提として
出来上がったコードを読みやすくしたいという希望があり、それは
Pythonの理念の一つと合致する、というところだけ確認したかった
だけです。

 現在のC++が読みにくいコードが出来てしまうことはご存知の
通りですが、もしC++がもう少しこの理念に重点をおけば、すなわち
「理想的に完成されたC++ならそうなったかも」という仮定の
話です。

 ここで「PythonはC++文法の完成型だ」なんて言うと色々また
ややこしくなるので、言う気はありませんが。
 
> > 1.オブジェクト指向プログラミング言語の源流を、Simula67でなく、

> C++の構文はプログラミングの進化の系統樹上で突然現れたものではなく
> C、さらにはBCPL…とつながってきたものですよね。

 ここで考えるべきは、C++系かSmalltalk系かの2点だけです。

 BCPLやBやCや、とさかのぼって行くと、どうせ最初はFORTRANにいきつく
わけですし。

> オブジェクトの扱いはまあそうかもしれないですね。

 私が言いたいのは、まずフレームにC++(系言語)を置いたのだから、
C++に似ているのは当たり前、という話です。

 逆に言えば、それだけです。
 
> > 2.C++とPythonの違いは、主にシステム記述用コンパイル言語としての

> 用途云々以前にそれは「明確な違い」ではないですか?
> 静的型検査の有無って結構でかい差異だと思うんですが。
> 似ている言語であるという主張をしようというのにちとその立脚点を
> 弱くするものではないでしょうか?

 静的型検査言語かそうでないかは、コンパイラにとっては
重要ですし、プログラミングスタイルとしては非常に重要
になります。

 しかし「プログラミング言語Perl」では「PerlはCに似た言語で」と
言ってるわけですから、その程度の類似点で言えば「C++と似てる」
と書いても問題無いと思いませんか?

> たとえばここで、Pythonが演算子オーバーロードをサポートしていたとしたなら
> 「ほら両方とも演算子オーバーロードしているでしょ、似てるじゃん」と云えるとは
> 思うのですが、実際のところはそうでないわけで、同じような目的を別の手段で
> できるからということを似ているという点としてあげるのはちと無理があるのでは
> ないかと考えます。

※多重継承は?(笑)

 Pythonが、Cの拡張としてのC++ではなく、オブジェクト指向を最初から
意識していたため、演算子のオーバーロードという方法は取れなかったと
思います。

 その結果、実装方法は異なりますが、PythonでもC++でも、作った
オブジェクト同士の演算は、同じ形で出来ることになります。

 実装は一回、使用はもっと多いとなれば、実際の場面での使い方に
類似点がある方が、より似ていると言えないでしょうか?

> > 4.Pythonに様々なモノが入り交じっているのはご存知の通りですが、
> ここが理解(or 納得)できません。
> 機械さんがWikipediaで編集されてしまったというのは「PythonとC++は
> 似ている」という主張(記述)であり、ベースになっているかどうかは
> 別の問題ではないでしょうか。確かにベースになってもいなければ似ないかも
> しれませんが。

 知らない人にあるものを説明するためには、まず似たものを提示し、
それとの違いを説明しませんか?

 私は、Pythonを説明するために似ているものを選ぶなら、まずC++を
あげて、違いを説明する、という方法が最適と思い、その意味でC++に
似ているといいました。

 こんな説明ではどうでしょう? JavaはC++に似ている、と言えるのか
どうか。

 もし、これを感覚的に『違う』と言うなら、PythonとC++は似ていない、
と言わざるをえません。

 この例えが納得できるなら、PythonはC++と似ている、と言えると
思います。

> ところで上記のようなことを編集者さんには主張されたのでしょうか?

 主張しませんでした。

 なぜなら、私の書いた文か消された時点で、「それは納得できない」と
されたわけですから。

 所詮『似ている/似ていない』は、判定する人によって変化するわけです
し、それが感覚的に受け入れられなかったなら、私がなんと思おうと、
似てなかったと判断されたわけですから。

 ただ気になるのは、編集された方が「Python言語を知らない人に説明する」
という視点をもたれていたかどうか、です。

 持たれていたなら、勿論訂正されたのは正しかったのでしょう。

 そうでないのなら、百科事典としてのウィキペディアの意味を再考される
ことを望みたいですね。
  
 /機械伯爵’/まじめに頭を使うと疲れる……/