Parlare dell'OLP nel salone - pagina 18

 
Alexey Volchanskiy:

Rispondere alle domande, chiaramente e senza moccio pionieristico

1. Quale tecnologia di parallelizzazione ha usato personalmente. Non chiacchiere generiche, ma nomi specifici di tecnologie e lingue.

1.1 In cosa ha fallito la tua versione di OOP?

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

SZZY: stavo insegnando OOP già da più di 24 ore, il moderatore ha scritto che durante questo tempo ha bannato 10 persone e cancellato circa 200 post stupidi! Dice, scrive, ci sono già leggendo su una base regolare 40-50 persone alla volta, il tema è necessario. Hai bisogno di fare un menu - ti aiuterò in qualsiasi momento.

Verilog
 
George Merts:

L'approccio OOP è necessario all'uomo per semplificare lo sviluppo e, soprattutto, il supporto del sistema.

"Il problema dei linguaggi OO è che tirano su tutto il loro ambiente. Tutto quello che volevi era una banana, ma ti ritrovi con un gorilla che tiene quella banana e tutta la giungla insieme ad essa".

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

"Il problema dei linguaggi OO è che tirano su tutto il loro ambiente. Tutto quello che volevi era una banana, ma ti ritrovi con un gorilla che tiene quella banana e tutta la giungla insieme ad essa".

Proprio così. Questa è una buona analogia!

Ma è un problema? Al contrario, è un vantaggio di OOP!

Perché non esiste "solo una banana". Per una banana - hai bisogno di una palma, per una palma - hai bisogno di un mezzo nutritivo, e, a proposito, di un gorilla che si arrampica su quella palma e prende quella banana.

Secondo me, ed è fantastico che tu non pensi a niente di tutto questo, ma prendi proprio questa banana e mangiala.

P.S.

Ho letto l'articolo - dice tutto giusto, ma proprio tutti questi argomenti mi convincono - OOP è una grande tecnologia, molto meglio di FP. È solo che mentre lo usiamo dobbiamo seguire alcune regole, che non avremmo dovuto seguire in FP. Ma questo non è affatto un motivo per rifiutare l'OOP. A mio parere, tutti gli argomenti nell'articolo sono al contrario che dimostrano il vantaggio di OOP, solo avvertono che "quando si usa un coltello, bisogna stare attenti".

Usando apparecchi elettrici invece di quelli meccanici - si seguono anche alcune regole, che prima non erano richieste - è vero. Ma questo non è un motivo per rinunciare agli elettrodomestici!

 

La conversazione mi ricorda uno sketch di una soap opera (a proposito di donne, ciao Wolchansky).

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

L'ex moglie chiama l'ex marito per un incontro:

BJ: Te lo immagini, nostra figlia è incinta! E ha solo 19 anni, deve studiare, andare al college!!!

BM: Di cosa stai parlando? !!!! Di chi è incinta?

Perché nessuno lo sa? Non so... Oh cosa succederà, cosa succederà...

BM: Questa canaglia si nasconde e non riconosce il bambino?

ROB: No, non si sta nascondendo e immagina, nostra figlia lo sposerà!!! Cosa faremo, ha appena finito il liceo !!!!

BM: .... ???

Bj: Perché sei silenzioso, perché sei silenzioso? !!!! Non capite?!!! Nostra figlia è incinta!!! e sta per sposarsi!!! capito?!!

BM: Um... Capisco... Ma... Non vedo il problema qui... Sei rimasta incinta e mi hai sposato a 18 anni, l'hai avuta... E non c'è niente di male in questo...

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

Qui è così - mi vengono dimostrate enormi carenze e problemi del GOP che io distrattamente non considero problemi, molti al contrario, considerano virtù...

Come si arriva a quel punto di illuminazione in cui si può vedere che stare attenti con un coltello è il lato negativo di OOP supera i pro?

 

Questa è una delle ragioni della situazione demografica nei paesi "sviluppati" - prima ti laurei, poi organizzi la tua vita, paghi il mutuo... e poi non sei interessato ai bambini, finché nessuno ti tocca

 
George Merts:

Perché 'solo una banana' non succede. Una banana ha bisogno di una palma, una palma ha bisogno di un mezzo nutritivo, e a proposito, un gorilla che si arrampica su quella palma e prende quella banana.

Secondo me, ed è fantastico che tu non pensi a niente di tutto questo, ma prendi proprio questa banana e mangiala.

No, non è questo il punto. C'è una banana da mangiare secondo la logica del programma, ma bisogna mangiare la palma e la terra nera con letame insieme ad essa.

 
Andrei:

"Il problema dei linguaggi OO è che tirano su tutto il loro ambiente. Tutto quello che volevi era una banana, ma ti ritrovi con un gorilla che tiene quella banana e tutta la giungla con essa".

L'articolo mente!

Per quanto riguarda il proprietario della classe base, funziona come previsto. E passa tutti gli autotest. Ma il proprietario non presta attenzione alla classe derivata. E il proprietario della classe derivata è molto deluso. Ora ArrayCount addAll() chiama il genitore addAll(), che internamente chiama add(), il cui controllo è già stato sovrascritto dalla classe derivata. Di conseguenza, il contatore viene incrementato ognivolta che add() della classe derivata viene chiamato, e poi viene incrementato nuovamente dal numero di elementi aggiunti da addAll() della classe derivata.

Quando ho letto questa dichiarazione, sono diventato molto titubante. L'ho fatto rotolare velocemente per controllare che la mia testa non fosse incasinata:

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);
}

Ho evidenziato le linee che l'autore dell'articolo suggerisce di cambiare. Il risultato non è influenzato dalla loro sostituzione. Non ho letto il resto dell'articolo. L'assurdità dell'autore è stata probabilmente segnalata nei commenti.

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

Proprio così. Buona analogia!

Ma è un problema? Al contrario, è un vantaggio di OOP!

Ciò che è tormento per le persone normali è gioia per i masochisti... :)

 
fxsaber:

L'articolo mente!

Che differenza fa?

Hai bisogno di argomentare la tua affermazione (OOP fa schifo) - cerca su Google "OOP" e un paio di qualità negative, prendi un articolo migliore, e senza leggere, postalo sul forum.

Vero o non vero - non importa. Non importa se è vero o no. Se ci sono persone attente come te che si prenderanno la briga di leggerlo e controllarlo, puoi lanciare un altro articolo nello stesso modo.

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