アカウント名:
パスワード:
言語はそれらのライブラリを実現できるようにするためのメタ機能を提供してる「だけ」です。
この論法は、わからない人にはいつまで経ってもわかりません。オブジェクト指向の落とし穴は、言語とライブラリの区別がつかない、すなわちシンタクスとセマンティクスの区別がつかない(そして両者の境界が自由に動くことがわからない)ままにそれらを切り離すことを強制されることにあります。
これは難しい問題です。なぜなら、これはそれなりの教育を受け(主に言語理論)、かつプログラムを書いた経験がある人(少なくともジェネリックプログラミングが必要になるぐらいにコードの使い回しにおける傾向を学んだ人)でなければ正しい理解ができないためです。したがって、これからプログラムを覚えようとする人にとっては、「タマゴとニワトリ」問題が生じてしまいます。
また、モデル化というと現実をやみくもに形式化することだけが叫ばれています。これは誤った方法論です。というのは、モデル化の目的は、あくまでモデル上で問題を解くために何らかの計算を行うことにあります。したがって、どのような計算が可能なのか、そしてそれはどのようなモデルの上で可能なのかを並行して議論しなければ、問題を正しく解くことはできません。例えば、グラフによりモデル化する場合でも、問題が2部グラフの計算で解けるか否かはグラフのトポロジや計算量のオーダに影響します。これらは具体的な実装や実行時間など、目に見える形で跳ね返ってきます。
オブジェクト指向がシンタクスとセマンティクスを切り離すのは、あくまで仕様に縛られず、問題に最も適切なセマンティクスを選択するためです。それを切り離されたものは勝手に別々に作ればよいと誤解しているがために、計算が面倒なモデル化が独り歩きする現状が生じてしまいます。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
※ただしPHPを除く -- あるAdmin
Re:和書は全部ボツ (スコア:2)
この論法は、わからない人にはいつまで経ってもわかりません。オブジェクト指向の落とし穴は、言語とライブラリの区別がつかない、すなわちシンタクスとセマンティクスの区別がつかない(そして両者の境界が自由に動くことがわからない)ままにそれらを切り離すことを強制されることにあります。
これは難しい問題です。なぜなら、これはそれなりの教育を受け(主に言語理論)、かつプログラムを書いた経験がある人(少なくともジェネリックプログラミングが必要になるぐらいにコードの使い回しにおける傾向を学んだ人)でなければ正しい理解ができないためです。したがって、これからプログラムを覚えようとする人にとっては、「タマゴとニワトリ」問題が生じてしまいます。
また、モデル化というと現実をやみくもに形式化することだけが叫ばれています。これは誤った方法論です。というのは、モデル化の目的は、あくまでモデル上で問題を解くために何らかの計算を行うことにあります。したがって、どのような計算が可能なのか、そしてそれはどのようなモデルの上で可能なのかを並行して議論しなければ、問題を正しく解くことはできません。例えば、グラフによりモデル化する場合でも、問題が2部グラフの計算で解けるか否かはグラフのトポロジや計算量のオーダに影響します。これらは具体的な実装や実行時間など、目に見える形で跳ね返ってきます。
オブジェクト指向がシンタクスとセマンティクスを切り離すのは、あくまで仕様に縛られず、問題に最も適切なセマンティクスを選択するためです。それを切り離されたものは勝手に別々に作ればよいと誤解しているがために、計算が面倒なモデル化が独り歩きする現状が生じてしまいます。