Risposta breve
Penso che sia stata la zangata dei progetti software prima dei giorni OO. OO ha aiutato aggiungendo il concetto fondamentalmente critico - Modella il mondo reale .
Il primo linguaggio di programmazione orientato agli oggetti era Simula nel lontano 1967. Tuttavia, a quel tempo lo sviluppo del software in generale era ancora nei laboratori più e la maggior parte dei paradigmi era ancora più vicino al caso di hardware .
Nel corso di un altro decennio di sviluppo di software per applicazioni aziendali, altre applicazioni commerciali sono cresciute e lo sviluppo del software in generale è cresciuto negli anni '70. Le lingue che sopravvivono ancora oggi di quegli anni (prima del 1980) erano C, Cobol, Fortran e simili. La maggior parte di queste lingue è procedurale. Il Lisp esiste anche da quel giorno - tuttavia, non sono sicuro che si trattasse di un linguaggio generico di primo piano per lo sviluppo commerciale. Il famoso termine Modello di cascata è stato coniato anche nei primi anni '70.
Nella maggior parte degli ambienti commerciali, l'elemento più importante che emerge nello sviluppo del software è stata la gestione dei progetti. C'era un disperato bisogno di budget ristretti e almeno prevedibili e la gestione dei requisiti da congelare per garantire che il progetto raggiungesse il traguardo in modo rispettabile. Durante questo periodo è stato anche uno dei Mythical Manmonths nel 1975.
Immagino che alla fine degli anni '70 la gente fosse bruciata, poiché i linguaggi procedurali non mantenevano le promesse. E un nuovo paradigma Object oriented che esisteva da quel momento ha reso grande. Anche se le persone potrebbero non essere d'accordo, penso che il C ++ che aiuta familiarità e comprovata esperienza e di C, e l'orientamento Promise of Object (originariamente con il nome C with Classes) nel 1983 era una pietra angolare per il successo della programmazione orientata agli oggetti. / p>
Alcuni riferimenti per più prospettiva - link
Allora perché OO?
Penso che quei giorni (se guardi al punto di vista del successo del progetto) - aveva senso che ciò che puoi capire meglio sia gestibile meglio. La metodologia orientata agli oggetti con una promessa "... tutto nella vita è un oggetto" sembrava più come un buon senso anche prima che si dimostrasse significativo. Il successo pratico di questo fattore è stata la nozione stessa di model sufficientemente il mondo reale e il problema a portata di mano prima di saltare la pistola - che penso qualcosa di fondamentalmente nuovo che OO ha offerto che nessun altro paradigma ha offerto fino a quella data . E sicuramente visto che questo paradigma ti ha costretto a pensare un po ' prima di codificare più di linguaggi procedurali, ha mostrato un successo visibile sui progetti software che hanno impiegato e da allora hanno preso piede!
Modifica
Vorrei anche aggiungere che i linguaggi di programmazione si sono evoluti simultaneamente in parallelo a concetti fondamentali (paradigma OO, Aspetto, macchine virtuali). Ogni nuovo concetto e nuovo modo di pensare è emerso solo quando un nuovo linguaggio di programmazione lo ha padroneggiato - conserva solo familiarità ma cambia i fondamentali dal nucleo ! Allo stesso tempo, questi nuovi concetti e nuovi linguaggi sono emersi solo a causa di nuovi problemi di business. Anni '80 - OO per software su larga scala, 1990 Java in età Internet, PHP / ASP e molti altri per il web. Anche l'innovazione nei linguaggi di programmazione è stata guidata principalmente da esigenze di mercato discontinue.
In sintesi, i primi anni '80 erano l'epoca in cui decollava il software commerciale su larga scala, mentre i progetti con linguaggi procedurali avevano i loro problemi, OO mostrava la luce migliore e rendeva i progetti più efficaci.