Kısa cevap
OO günlerinden önce yazılım projelerinin karmaşası olduğunu düşünüyorum. OO, temel olarak kritik konsepti ekleyerek yardımcı oldu - Gerçek dünyayı modelleyin .
İlk nesne yönelimli programlama dili 1967'de Simula idi . Ancak, o zamanlar genel olarak yazılım geliştirme hala laboratuvarlarda daha fazlaydı ve çoğu paradigma hala donanım durumuna daha yakındı .
Kurumsal uygulamalar için bir başka on yıllık yazılım geliştirme süreci boyunca, diğer ticari uygulamalar büyüdü ve yazılım geliştirme, 1970'lerin tamamında genişledi. Bugün (1980 öncesi) günümüzde hayatta kalan diller C, Cobol, Fortran ve benzerleri idi. Bu dillerin çoğu prosedüreldir. Lisp de o günden beri varlığını sürdürdü - ancak, bunun ticari gelişim için önemli bir genel dil olup olmadığından emin değilim. Ünlü Şelale modeli de 1970'lerin başında üretildi.
Çoğu ticari ortamda yazılım geliştirmede ortaya çıkan en önemli unsur proje yönetimi olmuştur. Sıkı ve en azından öngörülebilir bütçelere ve projenin bitiş çizgisine sırayla ulaşmasını sağlamak için dondurulması gereken yönetmeliklere ciddi bir ihtiyaç vardı. Bu dönemde 1975'te Efsanevi Manmonlardan biri de vardı .
Sanırım 70'in sonunda insanlar yanmıştı - prosedürel diller bu vaatlere uymadığı için. Ve o zamandan beri var olan yeni bir paradigma Nesne yöneldi . Her ne kadar insanlar aynı fikirde olmasa da, 1983'te tanıdık ve kanıtlanmış deneyime ve C'ye yardımcı olan C ++ ve Nesne Yönlendirme Sözü'nü (başlangıçta Sınıflarla C adıyla), Nesne yönelimli programlamanın başarısının köşe taşı olduğunu düşünüyorum.
Daha fazla perspektif için bazı referanslar - http://journal.thedacs.com/issue/43/88
Öyleyse neden OO?
Bence o günler (eğer proje başarı bakış açısına bakarsanız) - daha iyi anlayabileceğiniz şeyin daha iyi yönetilebilir olacağı mantıklıydı. "Hayattaki her şey bir nesnedir" vaadiyle nesne yönelimli metodoloji, anlamlı olduğu kanıtlanmadan bile daha mantıklı görünüyordu. Bu faktörün pratik başarısı , silahı atmadan önce gerçek dünyayı ve problemi yeterince modelleme fikriydi - bu, OO'nun o tarihe kadar başka bir paradigmanın sunmadığı temelde yeni bir şey olduğunu düşünüyorum. Ve kesinlikle bu paradigmanın sizi prosedürel dillerden daha fazla kodlamadan önce düşünmeye zorladığı göz önüne alındığında, kullanılan yazılım projelerinde görünür başarı gösterdi ve o zamandan beri yakalandı!
EDIT
Ayrıca, programlama dillerinin bu gibi temel kavramlara (OO paradigması, Aspect, Sanal makineler,) paralel olarak aynı anda geliştiğini de ekleyeceğim. çekirdek! Aynı zamanda - bu yeni konsept ve yeni diller sadece yeni iş sorunları nedeniyle ortaya çıktı. 1980'ler - Büyük ölçekli yazılımlar için OO, 1990 İnternet çağında Java, PHP / ASP ve web için birçok. Programlama dillerindeki yenilikler daha çok süreksiz pazar ihtiyacından kaynaklanmıştır.
Özetle, 80'li yılların başları daha büyük ölçekli ticari yazılımların kalktığı yaştı - prosedürel dilleri olan projelerin sorunları vardı, OO daha iyi ışık gösterdi ve projeleri daha başarılı hale getirdi.