> ひだかです。TSruby にふってみます。
ううう、ライバルブースの発言数、増やしたくないよぉ〜(泣)
> > 意識しなかったら、何のためのオブジェクト指向ですか?
> >
> > そもそもアラン・ケイたちは、「オブジェクトに対してメッセージを送る」というわ
> > かりやすい「考え方」をもとにして「人間に近い指向で」プログラムできるように
> > Smalltalkを開発したのだと思っていましたが。
>
> どうでもいいですが、オブジェクト指向はふつうSimulaから始まった
> とかいいません?歴史はよくしらないんですが。。
Simulaのクラスをとりいれて、SmalltalkとC++の2大オブジェクト指向言語が
できた、といわれますね。
Simulaのコードを、古い「情報科学辞典(だったかな?)」で見て「理解でけん」
と投げた覚えがあります(爆)
ただし、Simulaのコードはどっちかというと手続き思考言語的な感じでしたから
(断言はできませんが)C++の祖先の片割れというならともかく、Smalltalkとは
あまり似て見えませんでした。
SimuraがSmalltalkに大きな影響を与えたのは事実でしょうが、それは継承などの
機能的なものであって、「オブジェクト指向」という思想は、Smalltalkからはっき
りしてきたのではないか、と私は理解してます。
・・・間違ってたら、誰か指摘して(汗)
> > つまりひだかさんの論だと、「オブジェクトは難しい」「手続き式のほうが簡単」
> > という前提が必要だと思います。
>
> 違います。意識するべきときだけ意識すればいいんです。
「プログラミングとは理解することだ」(Kristen Nygaard)
※プログラミング言語C++第3版の序文より、引用の又引き(爆)
それって、ある程度のプログラムなら無意識に組めるようになってる必要が
あると思うんですけど。
私は今でも忘れませんが、BASICを始めた当初にどうしても「配列」が
理解できなくて、とんでもなく長い時間悩んだ覚えがあります。
つまり、プログラムは「自然にできるようになるもの」ではなく、「意識して
使って、そのうち無意識に使えるようになるもの」だと思います。
・・・う〜ん、そうじゃない人、いるのだったら、私の考えも偏ってるという
ことですので、訂正したいと思います。
> そういう意味では変に自由度が高いから、Ruby が合わないひとも
> いるでしょうし、手続き指向プログラミングに慣れた人でも使えるように
> しようという意図は明確なので、初心者向けに設計した言語だとも
> 思っていません。
「教育用にも使えるものは、教育用以外には使えない」というマーフィーの
法則がありますが、実際、教育用にも実用にも使えるもののハードルは、非常
識に高いです。
> ですが、ミクロ的に見た場合に、「やりたいことを順番に書く」という
> 手続き的プログラミングの本質は、わかりやすいですよね。
やりたいことを順番に書くのは、オブジェクト指向でも手続き型でも同じです
(順次・選択・繰り返し・・・がプログラムの基本3構造だったっけ・・・情処
の本、全部人にあげちゃったからわすれちゃった・・・)ので、それが「両者を
比較するための本質」という考え方には、ちと首をかしげたいです。
手続き型の本質とは、データを外から扱うことであり、オブジェクト指向の本質
とは、データをオブジェクトとして自発的に振舞わせることだと思います(う〜ん
教科書的・・・)
数学的にデータを扱うなら、圧倒的に手続き-関数型のほうが分かりやすいわけ
ですが、フレームワークなど、扱うデータ構造体が複雑になるにつれて、外から
扱うのが限界となり、データ自体がどのように扱われるかを自ら「知っている」
オブジェクト指向の考え方が生まれた、と私は理解しています。
WindowsとかMacintoshとか、UnixのX WindowSystemとか無ければ、急いで
オブジェクトに走る必要もなかったかもしれませんけどね(あと、ネットワーク
か・・・)
> いずれにしても、オブジェクト指向設計と、オブジェクト指向言語とは
> わけて考えて欲しい気がします。
オブジェクト指向って、設計のためですもんねぇ(にやり)
ところで、Ruby-Object=Perlですから、Perlで入門、慣れたらRubyっての
どうですか?(けけけ)
> なぜ、そこまでオブジェクト指向が優れていると思っていますか?:)
アメリカ人って、かっこいーよね(byデジタル所さん)
冗談はさておき、オブジェクト指向は、英語の文法(SVOCとかそーゆーの)
にのっとった形ですので、「英語な方々」には話すように書けて、理解しやす
いでしょうね。
※同じく、日本人にはForthが向いてる・・・という考えがあるようですが、
日本人には根本的に言語的プログラミングが向いていないようで、日本語
文法をとりいれたプログラミング言語は、ことごとくぱっとしないような
気がするのは、私の気のせいなのだろうか・・・
ところで、オブジェクト指向優位なら、私はPythonerでなく、Smalltalker
になってると思いませんか?(にっこり)
機械伯爵