OOP, kuruluşundan bu yana pek değişmedi. Birkaç yeni açı keşfedildi, ancak temel ilkeler hala aynı. Bir şey olursa, yıllar boyunca toplanan toplu bilgi, programcının hayatını zorlaştırmaktan daha kolay hale getirir. Tasarım desenleri bir engel değildir; Yıllar ve yıllar süren deneyimlerden arındırılmış standart sorunlara bir araç kutusu çözümleri sunarlar.
Peki neden bugün OOP'yi kullanmaya başladığınızdan daha karmaşık olarak algılıyorsunuz?
Bunun bir nedeni, maruz kaldığınız kodun daha karmaşık hale gelmesi olabilir - OOP daha karmaşık hale geldiği için değil, öğrenme basamaklarında ilerlemiş olduğunuz ve daha büyük ve daha karmaşık kod tabanları okuduğunuz için.
Diğer bir sebep, karmaşıklık paradigması değişmese de, ortalama bir yazılım projesinin boyutunun ve karmaşıklığının çok iyi olması olabilir. Yirmi yıldan daha kısa bir süre önce bir sunucuda bir geliştiricinin ıslak rüyası olacak müşteri sınıfı cep telefonlarında işlem gücü mevcutken , genel kamuoyu temelde kaygan animasyonlu GUI'leri en ucuz fırlatma uygulaması ve giriş seviyesi masaüstü bilgisayarın daha güçlü olması için bekliyor 1980'lerin bir "süper bilgisayarı" ndan, çubuğun Smalltalk ve C ++ 'ın ilk günlerinden beri kaldırılmış olması doğaldır.
Ve sonra, modern uygulamalarda, eşzamanlılık ve paralelliğin istisnadan ziyade norm olduğu ve uygulamaların sık sık farklı makineler arasında iletişim kurmaya, bir protokol protokolünün tamamını çıkarmaya ve ayrıştırmaya ihtiyaç duyduğu gerçeği var. OOP örgütsel bir paradigma olarak harika olsa da, diğer paradigmalarda olduğu gibi sınırlamaları vardır: örneğin, eşzamanlılık için çok fazla soyutlama sağlamamaktadır (çoğu uygulama tamamen ya da sonradan düşünülmüş, ya da tamamen kütüphanelere dış kaynaklı) ve ayrıştırıcı oluşturmak ve verileri dönüştürmek için mümkün olan en iyi yaklaşım değildir. Modern programlama sık sık OOP paradigmasının sınırlarını zorlamaktadır ve tasarım desenleri yalnızca sizi o kadar uzağa götürebilir. (Şahsen, Tasarım desenlerine ihtiyacımız olduğunu bunun bir işareti olarak görüyorum - paradigma bu çözümü kullanıma sunmuş olsaydı, bu sorunlar için daha anlamlı olurdu ve standart çözümler açık olurdu. Metod kalıtımını tanımlayacak bir tasarım deseni yoktur, çünkü OOP'nin temel bir özelliğidir; ancak bir Fabrika Deseni var, çünkü OOP polimorfik ve şeffaf bir şekilde nesneler oluşturmak için açık bir doğal yol sağlamaz.)
Bu nedenle, çoğu modern OOP dili, onları daha etkileyici ve daha güçlü, aynı zamanda daha karmaşık kılan diğer paradigmaların özelliklerini içerir. Bunun için en önemli örnek C # 'dır: belirgin OOP köklerine sahiptir, ancak delegeler, olaylar, tür çıkarımları, değişken veri türleri, özellikler, adsız işlevler, lambda ifadeleri, jenerikler, vb. Gibi özellikler en çok Fonksiyonel Programlama .