From: "竹花 文士" Date: 2004-03-21T23:50:36+09:00 Subject: [ruby-list:39409] Re: rubyの関数定義について  竹花 文士です。  割り込み、失礼いたします。 >> 現在、スタイル2の方法でrubyのスクリプトを書いて >> いますが、この方法では、最初にmain部分(に相当する)からの記述が >> できずに、非常にストレスを感じます。 > >どういうストレスでしょうか?rubyの場合、いちいち関数宣言をしなくていい >ので逆にストレスを感じません。 > >ストレスを感じるのであればエディタの扱い方の問題ではないでしょうか?た >とえばスタイル2でコードを書くとき、最初に内容が空のメソッドを書いて後 >で戻ればいい話。 >  わたしも、yokoyamaさんと、同じ事を感じておりました。  今は、とりあえず、ライブラリーに逃がして、requireするか、クラス化するかで運 用してます。    コードを入力するときには、別に、どっちでも良いんですけどね。手間は変わらない ですから。なぁ〜んにも考えずに、適当な所に関数が定義できるから、打つのは楽なく らいかも。(これは、絶対にしないように注意してますけど)    ただ、そのコードを読むときに、私は、ストレスを感じるんですよね。というのも、 コードは、上から下へ実行されていく物と言うのが基本ですよね?。その流れを関数の 定義が断ち切ってしまっているように見えるのです。  さらに、実行ファイルの最初の実行コードが、メインプログラムに相当する構造です から、プログラムを追いかけるためには、まず、関数定義・クラス定義「以外の場所」 をファイルから探し出すことになります。ところが、ファイルの最初は、関数の先行宣 言ができないから、当然関数・クラス定義から始まります。酷い事例だと、やっと実行 部分を見つけたかと思うと、今度は、真ん中にまた関数定義が混じっている・・・。    自分で作ったコードを読むのにも違和感を感じるくらいには気になりますから・・・ 書籍等の人のコードを読もうとしたときには、なおさらです。極端な言い方をすれば、 ファイルの内容を全部読んだ後でないと、いったいどこから始まって、どこに流れて、 どこで終わるのかすら判らない・・・ということになります。(最初から、関数・クラ ス定義で「ない」ところを拾って、それをつなげるとようやく、メインルーチンの流れ になりますよね。酷い書き方のコードになると、コードの真ん中で関数・クラスの定義 をしている物まであり、こうなると、もう読む気が無くなります。)  結構、良くできた言語で、さわりやすそうと思って、今勉強中ですけれど、これだけ はいただけない仕様だなぁ〜と思っておりました。  まぁ、メインプログラム(と借りに称しておきます。)の真ん中に、別の関数の定義 を紛れ込ますなどとなると、もうプログラミングスタイルの問題という気もしますけど、 グローバル変数の定義関係などの問題もあり、有る程度は、避けられない場合も有るよ うに見えます。  なんとか、見通しの良い書き方を、少し、言語仕様でサポートしてもらうといいのに なぁ〜というのは、勝手な願望です。  たんなる感想ですが、こういう見方もあるということで、ちょっと書かせて頂きまし た。 --------------------------------------------- 竹花 文士(ruby.mito@laki.jp)