ラウンジでPLOについて語る - ページ 18

 
Alexey Volchanskiy:

質問には、はっきりと、鼻水が出ないように答えてください。

1.個人的にはどのようなパラレリング技術を使ってきましたか。一般的なお喋りではなく、技術や言語の具体的な名称を。

1.1 あなたのバージョンのOOPは何に失敗したのか?

------------

SZZY:私はすでに24時間以上OOPを教えていました。モデレーターは、この間に10人を追放し、約200の愚かな投稿を削除したと書いていますよ。書くと、すでに定期的に40~50人の人が読んでくれている、テーマが必要だと言っています。メニューを作りたいのですが、いつでもお手伝いしますよ。

ベリログ
 
George Merts:

OOPアプローチ-は、開発を簡素化し、さらに重要なことに、システムのサポートを簡素化するために、人間が必要とするものです。

"OO言語の問題点は、環境全体を引っ張ってしまうことです。バナナが欲しかっただけなのに、そのバナナをゴリラが持っていて、ジャングルも一緒になって しまうんだ。"

Прощай, объектно-ориентированное программирование
Прощай, объектно-ориентированное программирование
  • 2005.08.16
  • habrahabr.ru
Я в течение десятилетий программировал на объектно-ориентированных языках. Первым из них стал С++, затем был Smalltalk, и наконец .NET и Java. Я фанатично использовал преимущества наследования, инкапсуляции и полиморфизма, этих трёх столпов парадигмы объектно-ориентированного программирования. Мне очень хотелось воспользоваться обещанным...
 
Andrei:

"OO言語の問題点は、環境全体を引っ張ってしまうことです。バナナが欲しかっただけなのに、そのバナナをゴリラが持っていて、ジャングルも一緒になって しまうんだ。"

そうなんです。いい例えですねー。

しかし、それは問題なのでしょうか?逆に言えば、それがOOPの利点なんです !

だって、「ただのバナナ」なんて存在しないんですもの。バナナには-ヤシの木が必要で、ヤシの木には-栄養剤が必要で、ついでにヤシの木に登ってバナナを取ってきてくれるゴリラが必要なんです。

私見ですが、何も考えずに、まさにこのバナナを取って、食べるというのは素晴らしいことだと思います。

追伸

しかし、これらの議論から、OOPは素晴らしい技術であり、FPよりもはるかに優れていると確信しました。ただ、FPの時には守らなくてよかったルールを、使う時には守らなくてはならないのです。しかし、それはOOPを否定する理由には全くなりません。私の考えでは、この記事のすべての議論は、逆にOOPの優位性を証明するものであり、「ナイフを使うときは注意しなさい」と警告しているに過ぎないのです。

機械式から電気式にすることで、以前は必要なかったルールも守ることになる--。でも、だからといって電化製品を手放すわけにはいきません。

 

その会話は、まるでソープ・オペラのスケッチを思わせる(ブロードといえば、ウォルチャンスキーさん、こんにちは)。

-------------------------------------

元妻が元夫を呼び出し、面談をする。

BJ: 想像できますか、私たちの娘が妊娠したんですよ。それに、彼女はまだ19歳なんだから、勉強して大学に行く必要がある!

BM:何言ってるんですか!!!!?誰の子を妊娠しているのか?

なぜ誰も知らないのか?どうだろう...ああ、どうなるんだろう、どうなるんだろう...。

BM:この悪党は隠れていて、子供を認めようとしないのか?

ROB: いや、彼は隠れてはいないし、想像してみてください、私たちの娘が彼と結婚するんですよ!どうしよう、まだ高校を出たばかりなのに!!!!

BM:......です。???

Bj:なんで黙ってるんだ、なんで黙ってるんだ!!!!わからないの?娘が妊娠しました!!!そして、彼女は結婚するんだ!! わかったか!?

BM:あの...。なるほど...。でも...この辺が問題なのか...。18の時に妊娠して私と結婚し、彼女を産んだ...そして、何も問題はないのですが...。

-------------------------------------

それがここでは、私が不覚にも問題だと思っていない、逆に多くの人が美徳だと思っている、GOPの大きな欠点や問題点を証明されている...ということです。

ナイフの扱いに注意 することは、OOPの欠点が 長所を上回るとわかるような悟りの境地に達するにはどうしたらいいのでしょう?

 

これは、「先進国」の人口動態の理由の一つです。まず、卒業し、生活を整え、ローンを払い、そして、誰にも触れられない限り、子どもには興味を示さないのです。

 
George Merts:

バナナだけ』はありえないから。バナナにはヤシの木が必要で、ヤシの木には栄養培地が必要で、ついでにそのヤシの木に登ってバナナを手に入れるゴリラが必要なんです。

私見ですが、何も考えずに、まさにこのバナナを取って、食べるというのは素晴らしいことだと思います。

いや、そういう問題じゃないんです。プログラムの論理に従って食べるバナナがありますが、ヤシや肥料の入った黒い土も一緒に食べなければなりません。

 
Andrei:

"OO言語の問題点は、環境全体を引っ張ってしまうことです。バナナが欲しかっただけなのに、そのバナナをゴリラが持っていて、ジャングル全体がバナナに なっちゃうんだよ。"

記事の 内容は嘘!?

ベースクラスのオーナーに関する限り、意図したとおりに動作します。そして、すべてのオートテストに合格しています。しかし、オーナーは派生クラスには注意を払わない。そして、派生クラスのオーナーは大いに落胆する。ここで、 ArrayCount addAll()は親のaddAll()を呼び出し内部的には派生クラスで既にオーバーライドされて いるadd ()を呼び出しています その結果、派生 クラスの add() が呼ばれるたびにカウンタがインクリメントさ れ、派生クラスの addAll() によって追加された要素の数だけ再度インクリメントさ れます。ITSでは、要素は2回収集さ れます

この文章を読んだとき、私は本当に疑いました。すぐに転がり、頭が混乱していないことを確認した。

class ArrayList
{
public:
  void add( int )
  {
    Print(__FUNCSIG__);
  }  
};

class Array
{
private:
  ArrayList a;

public:      
  void add( int element )
  {
    Print(__FUNCSIG__);
    this.a.add(element);
  }
 
  void addAll( const int &elements[] )
  {
    for (int i = 0; i < ArraySize(elements); i++)
//      this.a.add(elements[i]);
      add(elements[i]);
  }
};

class ArrayCount : public Array
{
public:
  int count;

  ArrayCount() : count(0)
  {
  }

  void add( int element )
  {
    Array::add(element);
    
    ++this.count;
  }
    
  void addAll( const int &elements[] )
  {
    Array::addAll(elements);
    count += ArraySize(elements);
  }
};

void OnStart()
{  
  int Tmp[5];
 
  ArrayCount Count;
 
  Count.addAll(Tmp);
  Print(Count.count);
}

記事の著者が変更を提案している行を強調しました。交換しても結果は変わりません。続きは読んでません。筆者の戯言はコメントで指摘されたのだろう。

Прощай, объектно-ориентированное программирование
Прощай, объектно-ориентированное программирование
  • 2005.08.16
  • habrahabr.ru
Я в течение десятилетий программировал на объектно-ориентированных языках. Первым из них стал С++, затем был Smalltalk, и наконец .NET и Java. Я фанатично использовал преимущества наследования, инкапсуляции и полиморфизма, этих трёх столпов парадигмы объектно-ориентированного программирования. Мне очень хотелось воспользоваться обещанным...
 
George Merts:

そうなんです。良い例えですね !

しかし、それは問題なのでしょうか?逆に言えば、それがOOPの利点なんです !

普通の人にとっての苦悩は、マゾヒストにとっての喜び...。:)

 
fxsaber:

記事の 内容は嘘!?

どんな違いがあるのでしょうか?

あなたは自分の主張(OOPはクソ)を主張する必要があります - "OOP "といくつかの負の性質をグーグル、より良い記事を取り、それを読まずにフォーラムに投げつける。

本当か嘘か、そんなことはどうでもいい。それが事実かどうかは関係ない。あなたのように、わざわざ読んで確認してくれる気配りのある人がいれば、同じように別の記事を投げることができます。

 
Я — функциональщик. Прекрасно себя чувствую. Это ты от ООП такой раздражительный.