- くだすれPython(超初心者用) その24
26 :デフォルトの名無しさん[sage]:2014/08/04(月) 00:48:44.87 ID:CJ83fxk4 - >>23
C/FORTRAN 向け科学技術計算パッケージのプロットライブラリや gnuplot を使った経験があれば、matplotlib は素直な設計だから、 「その感覚はないわ〜」みたいに感じる ただ最近はオブジェクト指向の考え方が普及しているから、 上記の手続き型プロットライブラリを気持ち悪く感じる人がいても 「あーわからんじゃない」みたいに感じる たとえば「手元にX-Yプロッタ装置を1台だけ所有していて、 その装置にあれこれコマンド(=手続き)実行を命令している.....」 みたいな感じで考えればいいんじゃないかと思う
|
- オブジェクト指向なんて今すぐやめてください
630 :デフォルトの名無しさん[sage]:2014/08/04(月) 20:15:08.02 ID:CJ83fxk4 - >>628
・Java は(>>626 でいう)ストラウストラップの流れをくむオブジェクト指向であり、 特徴としては「静的型付けかつ静的メソッド束縛」になる ・対してObjective-C は Smalltalk の流れをくむオブジェクト指向であり、 特徴としては「動的型付けかつ動的メソッド束縛」になる (「動的メソッド束縛」は >>625 でいう「メッセージを介した遅延結合」を指す) 全く異なる方向性の2つの言語を例に挙げて「自然に導かれる概念としてのオブジェクト指向」とは、 いったい何を言いたいのか意味不明だよ 本人は分かったつもりでいるけど、他人からすれば脱アルゴリズム宣言」と同様の妄想にしか聞こえない 「自然に導かれる概念」みたいな曖昧な言葉ではなく、 自分の言葉でオブジェクト指向を語るべきではないのかと思われる
|
- オブジェクト指向なんて今すぐやめてください
631 :デフォルトの名無しさん[sage]:2014/08/04(月) 20:20:26.56 ID:CJ83fxk4 - >>629
ヒューイット氏本人が Smalltalk から着想のヒントを得たと 明言している、有名な話だね
|
- プログラミング言語 Scala 10冊目
387 :デフォルトの名無しさん[sage]:2014/08/04(月) 20:37:43.19 ID:CJ83fxk4 - >>382
関数型言語プログラマまたは関数型プログラミングをしている人であれば、 誰でもオブジェクトの不変性が重要である事は理解しているはず(しかもココは Scala スレ) >>378 の記事は、著者がこうした関数型への壁を一つ乗り越えた感動を表現した感想文である もちろんブログとは日々の心を綴る日記なのだから、>>378 の記事そのものに何ら問題はない ただし、わざわざこの記事を引用し、それを読めと命ずる >>378 の意図がサッパリわからないという話 繰り返すけど、ここは関数型言語である Scala のスレだよ(他の雑談スレへ逝ったほうがいいと思うな)
|
- オブジェクト指向なんて今すぐやめてください
636 :デフォルトの名無しさん[sage]:2014/08/04(月) 20:51:46.07 ID:CJ83fxk4 - >>635
「オブジェクト指向は構造化プログラミングの延長にある」という前提そのものが >>626 のストラウストラップ流オブジェクト指向の発想だね 言い換えると、ストラウストラップ流オブジェクト指向に関する文脈であれば、 「あっている」と考えてさしつかえない
|
- オブジェクト指向なんて今すぐやめてください
638 :デフォルトの名無しさん[sage]:2014/08/04(月) 21:04:23.97 ID:CJ83fxk4 - >>634
忘れられがちなのは、PLANNER はヒューイット氏が「アクタの着想を得る前に」 開発した実装知識表現言語(死語であれば「AI言語」)だということですね その後、SIMULA と Smalltalk などからヒントを得てアクタを考案し、 それを実装したのがアクタ言語族の始祖になる PLASMA と呼ばれる言語です
|
- オブジェクト指向なんて今すぐやめてください
640 :デフォルトの名無しさん[sage]:2014/08/04(月) 21:12:27.09 ID:CJ83fxk4 - >>637
>いずれのオブジェクト指向も、ソフトウェアの大規模化という問題の解決を目的としてるというのは合ってますか? 合っていると思うよ ただし、二つの流儀は解決への方向性が違っていたということ: ・Smalltalk や Objective-C は部品間の結合度を粗にすることで、 大規模システムとその開発をより柔軟にさせる方向を目指した ・C++ や Java は部品間の結合度を密にすることで、 大規模システムの実行効率(性能)と安全性(品質)を向上させる方向を目指した
|
- オブジェクト指向なんて今すぐやめてください
645 :デフォルトの名無しさん[sage]:2014/08/04(月) 22:56:02.34 ID:CJ83fxk4 - そういえば、こちらの質問にはレスしていなかったね
>>637 >遅延結合は構造化プログラミングとは別の発想ということでしょうか。 部品間の遅延結合を支えるメッセージの動的束縛とは、イメージとしては 正規表現によるパターンマッチや Prolog における単一化(ユニフィケーション)が近い つまり動的束縛とは、オブジェクトが持つメソッドテーブルから メッセージとマッチするメソッドを「動的」に検索し、一致したメソッド (Obj-C であればC言語関数ポインタ)を起動するという仕掛けになる それに対して手続き型言語およびストラウストラップ流オブジェクト指向だと、 手続きまたはメソッドとは関数ポインタに付けたラベル(シンボル)であり、 その対応関係はコンパイル時またはモジュールのリンク時、「静的」に解決される このため >>639 が書いているように、(初期の) OSX には「動的な Obj-C では 開発効率は高くても性能的に使い物にならない」という批判がついてまわった その一方で、(XP までの) Windows は「静的な C++ によって 高い開発効率と性能を両立した」と高い評価を受けていた その後、こうした批判と評価は徐々に逆転していくことになる訳だけど、 その流れをマトメたのが >>639 になる(端的というか乱暴すぎとは思うけど....)
|
- オブジェクト指向なんて今すぐやめてください
646 :デフォルトの名無しさん[sage]:2014/08/04(月) 23:01:50.96 ID:CJ83fxk4 - >>644
別の概念だね そして WindowsNT と OSX、共にマイクロカーネル・アーキテクチャを ベースとしたモノシリック・アーキテクチャとのハイブリッドOSに分類される
|