Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22

Discussione: forte critiche all'oop

  1. #1

    forte critiche all'oop

    da Alexander padre della STL del c++:

    http://en.wikipedia.org/wiki/Alexander_Stepanov

    n several interviews, Stepanov has voiced strong criticisms of OOP. [1] for example:
    "I think that object orientedness is almost as much of a hoax as Artificial Intelligence..."
    "I find OOP technically unsound. It attempts to decompose the world in terms of interfaces that vary on a single type. To deal with the real problems you need multisorted algebras - families of interfaces that span multiple types. I find OOP philosophically unsound. It claims that everything is an object. Even if it is true it is not very interesting - saying that everything is an object is saying nothing at all. I find OOP methodologically wrong. It starts with classes. It is as if mathematicians would start with axioms. You do not start with axioms - you start with proofs. Only when you have found a bunch of related proofs, can you come up with axioms. You end with axioms. The same thing is true in programming: you have to start with interesting algorithms. Only when you understand them well, can you come up with an interface that will let them work."
    mi aiutate a capire se costui ha detto verametne che l'oop è metodologicamente sbagliata?

  2. #2
    Sì, l'ha detto; questa frase, come quella citata nell'altra discussione, viene da questa intervista.
    Va detto che lui ha un approccio molto "matematico" alla programmazione, per cui vede la questione da un punto di vista differente. Al solito, secondo me, è un problema di come si vede la questione e da che metodologia risulta più espressiva e comoda per esprimere un problema: se ho a che fare con concetti che si modellizzano in maniera semplice come oggetti, allora l'OOP è più che adeguata; in un progetto come la STL, d'altra parte, risulta estremamente comodo disaccoppiare nettamente gli algoritmi dai contenitori, dato che gli algoritmi sono estremamente generici e possono essere applicati indistintamente a tutta una serie di oggetti dotati di certe semplici caratteristiche (gli iteratori).
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    hm si ma non ho capito se a lui la oop non gli piace quale tecnica di programmazione usa?

    procedurale? oppure più semplicemtne procedurale mista oop?

  4. #4
    "Generic Programming", anche se non ho capito esattamente come la si possa applicare al di fuori della creazione di librerie come la STL; leggi l'intervista che ti ho linkato.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    hm interessante letta... non avevo mai sentito parlare di sta generic programming...

    anceh se non capisco sto passaggio:

    Yes. STL is not object oriented.
    ma se nella STL ci sono centinaia di classi



    edit: da quello che ho capito la generic programming è perfetta con il PHP che puoi passare qualunque tipo vuoi ad un'argomento di funzione
    PHP

  6. #6
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  7. #7
    Originariamente inviato da shodan
    Un articolo sull'argomento.
    http://www.eptacom.net/pubblicazioni/pub_it/oopgen.html

    alcune parti dell'articolo imo non sono chiare. c'è un punto in cui parla di polimorfismo dicendo che è la stessa cosa dell'overloading... e non mi sembra un affermazione corrretta

  8. #8
    Originariamente inviato da xnavigator
    ma se nella STL ci sono centinaia di classi
    Sì, ma la logica è spostata molte volte al di fuori di esse; in una prospettiva OOP tradizionale, ad esempio, gli algoritmi sarebbero metodi dei contenitori, mentre nella STL sono funzioni esterne che funzionano su generici iteratori (che possono essere qualunque cosa, purché forniscano una serie di operatori).
    edit: da quello che ho capito la generic programming è perfetta con il PHP che puoi passare qualunque tipo vuoi ad un'argomento di funzione
    PHP
    Ma non hai il check a compile-time che stai passando un tipo che è adatto all'algoritmo in questione.

    Per quanto i messaggi di errore sui template dei compilatori C++ sono quanto di più criptico si possa immaginare... se solo non avessero rimosso i concept dallo standard C++0x...
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    Originariamente inviato da shodan
    Un articolo sull'argomento.
    http://www.eptacom.net/pubblicazioni/pub_it/oopgen.html
    L'ho letto ora, molto interessante.
    Originariamente inviato da xnavigator
    alcune parti dell'articolo imo non sono chiare. c'è un punto in cui parla di polimorfismo dicendo che è la stessa cosa dell'overloading... e non mi sembra un affermazione corrretta
    No, dice che l'overloading è un tipo particolare di polimorfismo; suona strano perché di solito per polimorfismo si intende solo quello "per inclusione" dell'OOP, ma in effetti ha un suo senso: l'overloading infatti permette di usare la "stessa" funzione con tipi di parametri differenti.
    Amaro C++, il gusto pieno dell'undefined behavior.

  10. #10
    Originariamente inviato da MItaly
    Sì, ma la logica è spostata molte volte al di fuori di esse; in una prospettiva OOP tradizionale, ad esempio, gli algoritmi sarebbero metodi dei contenitori, mentre nella STL sono funzioni esterne che funzionano su generici iteratori (che possono essere qualunque cosa, purché forniscano una serie di operatori).
    hmm.... se non sbaglio sono dei metodi... cioè esiste il metodo myVector.sort();


    Ma non hai il check a compile-time che stai passando un tipo che è adatto all'algoritmo in questione.
    bhèèè forse perchè non è un linguaggio compilato?

    non l'abbatti il php!!

    No, dice che l'overloading è un tipo particolare di polimorfismo
    ah ok più chiaro cosi

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.