機械です。
「言わなきゃよかった」と日本海溝より深く後悔・・・
んでも、無責任に無条件降伏すると、こんどは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くらいです。
機械伯爵
※明日よりテストの採点に入るので、ちょっとレスポンスが遅れるかも
しれません・・・