作者: 機械伯爵
日時: 2004/9/15(23:19)
 機械です。

 教えていただいた場所を見ているうちに、段々Python3.
0が得体の知れないモノに見えてきました。

 例えるなら、K&R CからANSI-Cとゆーか・・・

 まぁ、C言語の場合は、私が覚えた時点ですでにANSI-C
だったので、別に気にならなかったのですが・・・

>To be removed:
>
>    * The lambda statement [1]

 MoinMoinの方に理由が書いてありましたが、「1文法
しかカバーしないので」だそうですね。

 ・・・理由になるのか、ソレ・・・(怒)

 Pythonでは文と式がはっきりと区別されてますから、
キーワードを使う式というのは、確かにPythonとしては
異端だったわけですが、これでもしPEP312が却下された
ら、関数を式の中で定義する方法は完全に失われます。

>という一文が。ついでに
>
>To be removed:
>
>    * apply(): use f(*args, **kw) instead [2]
>    # map(), filter(): use list comprehensions instead [1]
>
>とも。map好きなんだけどなあ

 上に関しては完全な代替手段ですので、実際は問題無
い(書き方が変わるだけ)ですし、なんならapplyやmap
のような関数は簡単に再定義できます。

 しかしlambdaは完全にシンタックスなので、関数で置
き換えるわけにはいきません。

 もし置き換えるなら、文字列を引数に取る関数にする
しか無いでしょうから・・・

 lambda("x,y:x + y")

 ・・・みたいになるんでしょうかね(うざ・・・)

 とにかく、lambdaが全廃されるなら、lambdaパッケー
ジを書いてアップします。

 それとも、PythonでSchemeを書いたほうが建設的かも
・・・

 さて、3.0については、lambda以外にもかなり不安材料
があります。

 '<>'が無くなり、'!='に統一されるのは、'<>'で書い
てきた私にはかなり不満ですが、まぁ、我慢しましょう。

 あと、withキーワードはJavaScriptなどでもおなじみ
ですから問題無いでしょう。

 しかし、asによる型キャストなんかは、文法がやたら
複雑になったC++を思い出してどうも不安です(C++はい
ろいろと非常に気配りのある言語なのだけど、総体を見
るとなんだか近寄りがたくみえてしまう)

 ifキーワードの後の実行文が同じ列に書けないとかは、
現在の強制インデントにさえ抵抗を感じている人には、
相当のプレッシャーになるのではないでしょうか(行が
やたら多いのは、かえってみにくい・・・特に和文環境
では、フォントが比較的大きいので、表示行数が欧文よ
り少ないので、特にそう感じられる)

 あと、さり気にかかれている「raw_input,input」の廃
止・・・Javaみたいにsys.stdin.readline()なんて書か
なきゃならないのが、どれだけ初心者のハードルを高く
するのか、理解してるのか? と聞きたいです。

※教育用言語としての価値は、これだけで格段に下がり
  ます・・・

 昔、Pythonは「オブジェクト指向はオプションだ」と
言ってましたが、どうやらオブジェクト指向化が進んで、
オプションではなくなりつつあるように感じます。

 言語としては整備されたのかもしれませんが、やや理
解しにくく、またとっつきが悪くなったような印象がぬ
ぐえません。

 強いて言えば、JavaやSmalltalk、それにRubyのような、
「原理」が先行し、さらにPerlやC++のように「多彩な文
法」が容認されているような気がします。

 それって、Pythonの魅力、激減だな、と思うのは私だ
けでしょうか?

 とにかく色々不安です。

 /機械伯爵/