> 某所では、「オブジェクト指向はことさら意識して学ぶものではない」
> という話もでています。
>
> オブジェクト指向を前提として、普通に学んでいけば、
<中略>
> といったことを初心者のうちから無理に意識して叩き込む必要はないのでは
> ないか、という趣旨なのですが。最初からオブジェクト指向で学べば
> パラダイムシフトも必要ない、みたいなはなしです。
その話は、対象がSmalltalkならおおいに私も賛成です。
ところが、パラダイム混在型のRubyを使用する場合、「オブジェクト指向でない
部分」を「利用する必要」がでてくるので、上記の趣旨には当てはまらないと思い
ます。
もっとも、Rubyについては浅学なので、完全にプライベートメソッドを使わずに
コーディングできるのであれば、私の考えは全面的に撤回したいと思います。
> 以下全部省略しちゃいますが、最初のうちに、どれがレシーバでどれが
> プライベートメソッドで・・とか考えなくても、のほほんと
> プログラムを組める体質の人なら Ruby で素直に組めるんじゃない
> でしょうかね。どれがなんなのかはっきりするまで身動きできない
> タイプの人には向いていないのかも。
人間は、決して文法を意識してしゃべってるわけではないと思いますが、文法の
パターンを無意識に分析、応用、拡張してしゃべっているのではないでしょうか?
もし、Ruby流が身についたとしたら、手続き言語とオブジェクト指向言語のパラ
ダイムが混在し、純粋なオブジェクト指向的な発想からは逆行する可能性も否定で
きません。
もっとも、Rubyの目指す先が、C++やPythonのように、オブジェクト指向言語の
パラダイムと手続き指向言語のパラダイムの調和を目指すところにある、というの
ならば、それはそれで意義のあるものだと思いますが(そうなんでしょうか?)
初心者が覚えるべき言語は、プログラム的な思考のベースとなりうるものであって
欲しい、と私は思っています。
ぶっちゃけた話、習う本人がRubyでも問題ない、あるいは是非Rubyを使ってみたい
というのであれば、私に止める理由はありません。
ただし「Rubyではどうしてこうなってるの?」という質問が来た場合には非常に
答えにくいので「Rubyで始めるなら、一切私に質問するな」と釘はさしておきます
が(笑)
機械伯爵