http://dixq.net/forum/blog.php?u=124&b=5665
日記と議論されていることが食い違っているようなので、新しく。
僕も勉強中の身であるので、なるべく様々な意見を聞きたいと思います。
僕は本を読み、考え、作ってみるというのを繰り返して勉強するのが良いと考えています。
皆さんの意見はどうでしょうか。
オブジェクト指向をどう学ぶべきか
RE: オブジェクト指向をどう学ぶべきか
>derokさん
わたしがJavaやC#を勧めた理由は、前にも書いたとおり、オブジェクトの分割の参考になるのでは?と考えたからです。
わたしの経験ですが、C言語からC++に移行するとき、C言語っぽさが抜けずに、うまくオブジェクトの分割が出来ないことがありました。
また、namachan10777さんの、
しかし、C++とC言語を別言語と考えていない人は少なからずいます。
そういった人たちにはJavaやC#などのオブジェクト指向言語で一度学ぶ方がよいと思います。
C++とC言語の区別がつかない状態でオブジェクト指向を勉強するより良いのではないでしょうか。
そうですね。設計をしっかりする必要があります。どんな言語でも設計(考えること)が大切です。derok さんが書きました:ですが、Cっぽく書けないなら、オブジェクト指向っぽく書けるわけではありませんよね?
わたしがJavaやC#を勧めた理由は、前にも書いたとおり、オブジェクトの分割の参考になるのでは?と考えたからです。
わたしの経験ですが、C言語からC++に移行するとき、C言語っぽさが抜けずに、うまくオブジェクトの分割が出来ないことがありました。
また、namachan10777さんの、
というのに同意です。namachan10777 さんが書きました:インターフェースや、継承、カプセル化などが言語機能でサポートされていない言語でオブジェクト指向を学ぶのは非効率的かと。
時間がかかるのは同意します。また、C言語とC++を別言語として考えているなら誤差に含まれると思います。derok さんが書きました:C#やJavaでもなんちゃてオブジェクト指向はたくさんあるでしょう。
このなんちゃてオブジェクト指向、オブジェクト指向をすることで非オブジェクト指向的なコードより可読性も下がり、拡張性も低くなっているようコードから抜け出すのは大変です。
これをできるようになるにはかなりの時間がかかるでしょう。
その時間に比べてCっぽく書いてしまう時間なんて誤差だと思います。
しかし、C++とC言語を別言語と考えていない人は少なからずいます。
そういった人たちにはJavaやC#などのオブジェクト指向言語で一度学ぶ方がよいと思います。
C++とC言語の区別がつかない状態でオブジェクト指向を勉強するより良いのではないでしょうか。
Re: オブジェクト指向をどう学ぶべきか
「C++とC言語の区別がつかない」ような人がオブジェクト指向を理解できるのか?疑問であります。
最後に編集したユーザー Nao on 2015年8月27日(木) 00:52 [ 編集 1 回目 ]
Re: オブジェクト指向をどう学ぶべきか
オフトピック
お題目が「オブジェクト指向をどう学ぶべきか」ということになってるので,
既に「”オブジェクト指向”を学ぶ」という謎行為に対する動機づけ等は済んでいるのだとして…
既に「”オブジェクト指向”を学ぶ」という謎行為に対する動機づけ等は済んでいるのだとして…
使う言語によって学ぶことに関しての良し悪しがあるのだとするならば,言語選択の話に関しては3Dさんとは逆方向に考えるかなぁ.
つまり,あくまでも「”オブジェクト指向”を学ぶ」のが目的なのであれば
”オブジェクト指向”的に書くためのサポートが少ない言語であるほど良い気がする.
仮に,{普通な,一般的な(?)}書き方をしてたらほっといても”オブジェクト指向”(っぽいやり方)になる言語 ってのがあるのだとしたら
その言語で普通にやってると ”オブジェクト指向” と ”オブジェクト指向”ではないもの との差が見えないだろうから
結局「”オブジェクト指向”って何?」みたいなのが見えなくなると思うので.
>C++とC言語には互換性があるので、ついついオブジェクト指向らしからぬ方法で実装してしまうときがあります。
>オブジェクト指向を学び始めならば特に。
…ということなのであれば,
何かしら{意識して/気を付けて}いないと”オブジェクト指向”らしからぬ方法で実装してしまうC++というのは
「”オブジェクト指向”の学習」という目的については良い選択肢なのではないかと.
Re: オブジェクト指向をどう学ぶべきか
えー、正直言いたいことはNaoさんに言われて時に言うことはありません。
一応自分が発端となったのでコメントをしておきます。
一応自分が発端となったのでコメントをしておきます。
Re: オブジェクト指向をどう学ぶべきか
言語だけで比較したらなんでも同じなのかもしれないですが
JavaもC#もデファクトスタンダードなクラスライブラリを使うことが既定路線なので
環境としては適している気がします。
とりあえずの手本が最初から用意されているわけで訳も分からず答えのないものに悩んで人に聞いたりする無駄は省けるのではないでしょうか。
本物のオブジェクト指向を理解しようというひとには物足りないのかもしれませんが。
JavaもC#もデファクトスタンダードなクラスライブラリを使うことが既定路線なので
環境としては適している気がします。
とりあえずの手本が最初から用意されているわけで訳も分からず答えのないものに悩んで人に聞いたりする無駄は省けるのではないでしょうか。
本物のオブジェクト指向を理解しようというひとには物足りないのかもしれませんが。