De ce programarea orientată obiect a eșuat 1
Am decis să ne întoarcem la acest subiect fierbinte și doar pentru a reaminti actuala generație de „bine așezat pe un OOP minunat“ despre unele dintre ideile care au fost exprimate în această controversă celebru. Bătălia a Conferinței ordinare
OOP place. Dezvoltarea metodologiei Mythology
Oamenii își amintesc că am avut cu toții impresia puternică că argumentele Lisp'erov au fost mai convingătoare și coerente decât suporterii PLO (este curios faptul că vorbitorul principal pentru OEP a fost creatorul limbii Schema - principalul dialect modern al Lisp).
Pol Grem, a susținut că jumătate din toate conceptele OOP sunt mai rele decât bine, în legătură cu care el compătimește sincer cu programatori OOP.
În timp ce a doua jumătate a conceptelor rămase - și nu au avut nici o legătură cu OEP, cu care într-un fel asociază întotdeauna
De exemplu, el spune:
„În anii optzeci, metoda de reutilizare într-un fel obscur am asociat cu programarea orientată pe obiecte, și în mod arbitrar multe dovezi disponibile contrare, pare a fi nu mai scuti metoda de acest stigmat.
Deși, uneori, codul orientat-obiect este foarte potrivit pentru re-utilizare, astfel încât să nu orientate-obiect, și programarea în stilul „bottom-up“. Să luăm, de exemplu, biblioteca: ele pot încărca și reutilizați la fel de mult cât este necesar, pentru că, de fapt, ele sunt o limbă separată. Și totuși, nu contează dacă acestea sunt scrise într-un stil orientat-obiect sau nu. "
programare clasic Dijkstra, extrem de sensibil place nu doar două lucruri: OEP și California
Un alt critic major al OEP - un expert de renume pe programare - Alexander Stepanov, care a lucrat la Bell Labs a fost implicat în crearea de C ++ cu c Bjarne Stroustrup, iar mai târziu, la invitația deja în HP Labs, a scris Biblioteca de șabloane standard (STL).
Aleksandr Aleksandrovich a dat complet pe OOP paradigmă, în special, el a scris:
„Sunt încrezător că OEP este greșită metodologic. Acesta începe cu clasele de construcție. Este ca și cum matematicieni ar începe cu axiome. Dar realist, nimeni nu începe cu axiome, toate încep cu dovezile. Numai atunci când setul găsit de dovezi corespunzătoare, numai axiomă este afișat pe această bază. Ie în matematică ai axiomă completă.
Același lucru este valabil și cu programare: trebuie mai întâi să înceapă să se dezvolte algoritmi, și numai la sfârșitul acestei lucrări vin la faptul că sunt capabili să articuleze interfețe clare și coerente. Este din cauza acestei mizerie în PLO refactorizarii la fel de popular - din cauza paradigmei de inferioritate esti doar destinat pentru a rescrie programul, deja chiar în momentul în care a conceput doar un design în stil OEP ".
Richard Stallman este cunoscut pentru atitudinea sa critică față de OEP, în special îi place să glumească despre mitul obektnikov că OEP „accelera dezvoltarea de programe“:
„De îndată ce spui cuvântul“ obiect „puteți uita imediat despre modularitate“
„PLO de dragul OEP sa transformat într-un cerc mult timp vicios. Desigur, putem presupune C # în .NET 3.5, cu mai mult de 50.000 de clase vândute, „Coroana de evoluție.“ Adăugați în următoarea versiune de .NET milioane mai multe clase - ceea ce ar putea fi mai adecvat și mai râvnit, din punctul de vedere al programator OOP? Spune că este foarte complexitatea zborului? „(In acest moment interviu, Richard pauze de la tușește și ostentativ un atac de râs).
Java / C # nu sunt nici dezvoltare, nici „gradul de conștientizare a erorilor» C ++. Ei au luat cea mai proastă paradigma a limbajului și a construit-o în amploarea acestei dogme. Și anume - ideea de succesiune.
Moștenirea - aceasta este cea mai mare provocare din industrie. În orice simulare a succesiunii nu există (și nu există în viața reală, de asemenea) - fie în format electronic, fie în contabilitate sau în politică sau oriunde altundeva. Există doar o singură zonă în care moștenirea se găsește teoretic - Genealogie (hei, băieți, e mai bine să nu fie confundat cu ginecolog). Dar nu are nici o legătură cu ceea ce se numește moștenire în programare. Toate aceste mare creștere ierarhie de clasă decât să complice viața programator, în loc de a simplifica concepția sa.
fluxul de Thomas de la MIT a avut loc chiar și o scară largă de cercetare aplicată, care a arătat că nu a existat nici o diferență semnificativă între performanțele programatori care lucrează în OEP și în stilul obișnuit de programare procedurală. „Este doar un mit care funcționează perfect împreună cu ignoranța maselor? - dacă nu ați mai văzut nimic altceva decât OEP, cum îndoiesc“.
Niklaus Wirth, limbi creatorul Pascal și Modula, unul dintre creatorii de programare structurate, susține că OEP - nu mai mult decât o banală programare structurată add-on, și exagerat importanța sa, care se exprimă, printre altele, să includă în limbajele de programare a tuturor „obiect nou la modă orientate spre „înseamnă, desigur, dăuna calității software-ului dezvoltat. Nicklaus surprins de atenția acum fiind acordată OEP.
Dezvoltarea ideală din perspectiva OEP.
Despre același discurs.
Sectarismul în mediul academic
Pentru a expune rădăcinile acestui „cult al tehnologiei separat-luate,“ Richard Gabriel compară în mod neașteptat situația actuală cu eșecul aetherodynamics PLO în fizica secolului al 20-lea, atunci când, de fapt, a existat o „revoluție liniștită.“ Tinerii susținători ai teoriei relativității, masa a venit în gama de universități, apoi, treptat, a preluat puterea în predarea fizicii impune sale puțin cunoscute, dar la fel de iubit de intelectuali din acea vreme teoria relativității a maselor de fizicieni.
De fapt, în timp ce au existat experiențe pozitive și experimente, ceea ce confirmă existența eterului, precum și negativ. Primul au fost complet ignorate și excluse din toate manualele de fizică măsuri administrative
După aceea, eterul a fost nedrept „închis“ și a respins, și că deja actuala generație de studenți de fizică nici măcar nu știu despre experimentele de mare succes pentru a detecta vântul Aether.
„Deci, în cazul în care suntem acum, cu această teorie ta frumoasă a relativității, oricine poate-mi un telefon cel puțin unele rezultate reale și practice ale utilizării sale în viața de zi cu zi, după un secol de cules și plantări în masă?“ - ca întotdeauna întreabă sarcastic Gabriel .
Potrivit lui Richard, cu absolut exact același lucru sa întâmplat cu OEP, care în anii '80 a fost declarat un „glont de argint“ în „lupta cu complexitatea de programare fiind“ a fost artificială și fără alternativă a impus în lumea academică și miturile care colindau manual OOP manual - „este de multe ori amuzant și literalmente supt din deget.“
Numai timpul va spune cine în cele din urmă este drept, și care se află în această discuție metodologică fierbinte - sincer greșit. Dar, în orice caz, eu personal pentru faptul că am fost întotdeauna oportunități pentru puncte de vedere alternative, chiar dacă este diferită de alegerea majorității (ca americanii provocatoare observa in astfel de cazuri - „Lemmings nu poate fi greșit“).