作者: 機械伯爵
日時: 2002/5/21(23:16)
 機械です。

 「言わなきゃよかった」と日本海溝より深く後悔・・・

 んでも、無責任に無条件降伏すると、こんどはPyJUGの人に白い目で
見られそうだし・・・

 水掛け論にならないように、慎重に行きます。

>具体的にPythonのほうがRubyより基礎知識を必要としない分野があ
>りますか? 逆にRubyのほうがPythonより基礎知識を必要としない
>分野があったりしませんか?

 Python文法では、キーワードを使う文以外には、以下の形の文しか
ありません

1)  Variable = Object
2)  method(argv)

 キーワードは有限ですし、仕様変更しない限りスクリプティングによって
増設することはできません。

 Objectが何らかの評価がなされている場合は必ず引数がなくとも()が
つきますし、そうでない場合は、フィールドの代入ということになります。

 RubyはSmalltalkと同じく、フィールドに直接アクセスすることは不可能
なので、基本的にはobject.methodの形しかないとわかりますが、プライベート
メソッドや、self内での代入で・・・

 A = B

 という形があった場合、Bがメソッドなのか変数なのか、判りづらい場面
があります。

 なお、C、C++、Javaといった、C系言語のようなスタイルでありながら、
フィールドアクセスできないSmalltalk式のオブジェクト管理を行っている
ということは、将来的に構造体やレコード(Pascal)を持つ言語のソースを
見る上で、混乱が予想されるように思いますがいかがでしょうか?

※Ruby自体では完成しているものの、Rubyで始めると、Ruby以外のスタイル
 に移行するのが難しくなるような気がします。

 Pythonの文法は、決して洗練されているというわけではないでしょうが、少
なくともGuide氏がABC言語の失敗から、「とりあえずスタイルに関しては多
数派に・・・」という配慮が根本にありますので、この言語を経て別の言語に
移行する際にも、その労力は少なく済むと思われます。

 Pythonプログラミングにおける選択肢は、他の言語から比べると極端に
少なく感じるかもしれませんが、基礎を学ぶ上では十分ですし、必要不可欠な
スタイルは全て網羅されていると思われます。

 RubyとPythonの差は、オブジェクト指向プログラミングの世界に足を踏み入れる
と、歴然としてきます。

 クラスの中でもself引数を用いて「外から」フィールド及びメソッドにアクセス
するPythonの書式は、いかにもエレガントさに欠きます。

 ある程度プログラムがわかってくれば、Pythonの文法は、わずらわしいところが
多く、「自分で書くには」だんだん面倒になってくるのは事実です。

※ですから、ツールの作り貯めにいそしむことになるわけですが・・・

 さらに、PythonよりRubyが圧倒的に楽なのは、言語仕様でなく日本語
ドキュメント・・・

 英語の知識無しでプログラムを組めるのは、天国です、はい(いや、まじめ
な話、これで挫折する人も多いです。Rubyの本はPythonの本より安いものも
沢山ありますし・・・)

>体がすっきりと見渡せる」明らかな傾向がありますか? ま、Ruby
>のほうが文法が大きいことには同意するんですが、普通の初心者は
>BNF を見ながら文法が大きいなどとは思わないような。

 初心者にとっては、BNFで書かれた文法仕様より、サンプルスクリプトが
理解できるかどうか、のほうが死活問題だと思います。

 例えば、このMLの初心者会議室で一つのお題を色々な言語で書いて
いますが、こんな時にも「色々な書き方」があると、例え例示しても
らっても、それをプログラミングテクニックとして身に付けるのが難
しい、ということがあります。

 別にヨイショじゃありませんが、Rubyの文法は洗練されているが
ために、「多くを知る」人ほど「スマートな」コードが書けてしま
うわけですが、それを理解するのは大変です。

※いや事実、私自身、Ruby教典くっぴきでも、アレがナニやってん
 だか、さっぱり理解できません。

※そーいや、Perlもその傾向あるよなぁ・・・

>私の経験からいうと、Pythonのほうが自分に合うと感じる人とRuby
>のほうが自分に合うと感じる人と、どっちでも構わないので別の要
>素(近くに詳しい人がいるかとか、使いたいツールがあるかとか)で
>決める人の三種類が一定の割合がいるように思います。

 当たり前ですが、結局決めるのは本人なので、私自身は単にちと
紹介したかっただけなんですホント。

※でも、使う場所があるし、使わざるをえない場面も多々あるけど、
 JavaScriptとかは使いたくないなぁ・・・

 さて、「Pythonのほうが簡単」という最大の理由は、実はPythonより
昔にRubyに出会っていながら、未だにRubyのコードが書けない自分、
という身近な例があるからです。

 とゆーか・・・Rubyのコードとか書けるとかっこいいから、書きたいと
思ってずいぶん勉強したんですけどねぇ、コレでも・・・

※同じく挫折した言語・・・Perl・・・

 好みとかの問題でなく「いつまでたっても感覚がつかめない」言語って
のは、やっぱ「難しい」のではないかと私は思うのです。

※Pythonはちょこちょこ書くだけなら1時間くらいでマスターできました。
 まぁ、Javaとか前にやってたんで・・・この速さでなんとなく書けるよう
 になったのは、他にはSmalltalkくらいです。

   機械伯爵

※明日よりテストの採点に入るので、ちょっとレスポンスが遅れるかも
 しれません・・・