OOP'nin yazılım karmaşıklığını yönetmedeki etkinliği üzerine çalışmalar var mı? [kapalı]


14

OOP genellikle OOP olmayan prosedürel programlamanın aksine, yazılımdaki karmaşıklığı yönetmede etkili bir strateji olarak kabul edilir.

Bu kavramı test eden herhangi bir çalışma var mı? OOP'un büyük projelerde karmaşıklığın yönetilmesine sıklıkla yardımcı olduğu kanıtlanmış mı?


4
Çok ilginç olmasına rağmen IMHO, paradigmaların "karmaşıklığını" ve "etkinliğini" ölçmek zor ve önyargılı bir çabadır. Her program benzersizdir, her geliştirici benzersizdir ve karşılaştırması zordur. Dahası, üretkenlik bir paradigmadan daha fazlasına değil, araçlara, ekosisteme, öğrenme materyallerine bağlıdır. Tarafsız bir çalışma, tüm öğrenci gruplarının her iki dilde de aynı gereksinimleri programlamasına ve sonuçları görmesine izin vermelidir. Ancak, önyargılı olmaları için önceden bilgi sahibi olmaları muhtemeldir. Böyle bir çalışma bilmiyorum.
dagnelies

Çalışmalar değil, ancak bazı akademik rant: en.wikipedia.org/wiki/Object-oriented_programming#Criticism
Den

1
Bu biraz hileli bir sorudur çünkü endüstride uygulandığı gibi OOP oldukça zorunludur. Bu yüzden globallere dokunan prosedürlerden, diğer nesneleri değiştiren diğer nesneleri değiştiren nesneleri değiştiren yöntemlere geçtik; yan etkiler biraz daha açıktır, ancak hala bir mesafeden hala çok fazla hareket vardır. Öte yandan, yan etkileri en aza indirdiğinizde ve işleri değişmez hale getirdiğinizde, bazıları fonksiyonel programlama yaptığınızı iddia eder.
Doval

2
Bunu gerçekten ölçmenin bir yolu yoktur - ölçmenin sonucu etkilediği bir kuantum etkisidir.
DeadMG

1
Bir karşılaştırma yapmak için, sıradan becerilere sahip programcılar (yani bir uzmanlar ekibi veya en son teknolojiye sahip akademisyenler tarafından değil) tarafından inşa edilen çok büyük programlama sistemleri için geçerli olan alternatif bir paradigmaya sahip olmalıdır. Büyük sistemler, diğer şeylerin yanı sıra ağ oluşturma, veritabanı, yük dengeleme ve artıklığı (yani güvenilmez makineler) içerir. İkinci konu listesi, dil paradigmalarını programlamak için olabilecek tartışmalara hâkimdir.
rwong

Yanıtlar:


10

Ölçülebilir ölçümlerle yapılan herhangi bir çalışmanın farkında değilim. Diğerleri sorunuzun yorumlarında belirttiği gibi, bunu başarmak neredeyse imkansızdır. Ancak buna cevap vermeye çalışan biraz felsefi yazılar var.

Bu konuda en sevdiğim yazı Ben Moseley ve Peter Marks'ın Tar of Out Pit . Karmaşık sistem tasarımı ile ilgili saygın kaynaklardan oldukça ilginç sonuçlara kadar çeşitli açıklamalara neden olur.

Tar Pit dışında fonksiyon programlamanın aslında önerdikleri çözümleri desteklemek için en iyi paradigma olduğu sonucuna varılıyor. Bu mantıklı, çünkü benim tecrübelerime göre, karmaşık OOP sistemleri zaman içinde prosedürlere çok yakınlaşıyor ve prosedür OOP gibi görünmeye başlıyor (sözdizimi ve diğer nitelikleri yok, ancak bir yürütme akışı oldukça benzer hale gelebilir). Gerçek fark, farklı bir paradigma ile veya onu OOP ile birleştirerek gelir. Şu anda, bu paradigma, nihayet ortak programcılar tarafından ortak iş uygulamalarında kullanılabilir hale gelen fonksiyonel programlamadır (oraya hala var).


5

Evet, bazı çalışmalar var. İşte bir tane: http://www.csm.ornl.gov/~v8q/Homepage/Papers%20Old/spetep-%20printable.pdf

Temel olarak, prosedürel kod üretkenliği ile OO dili üretkenliği arasında ölçülebilir bir fark olmadığı sonucuna varır ... ancak gerçek şu ki, bu tür sorular o kadar bağlamsaldır, hiçbir çalışma size belirli bir durumda ne yapmanız gerektiğini söyleyemez. .


Uzun zamandır masaüstü bilgisayarları bir ofis ortamına sokmanın üretkenliği artırdığını gösteren çalışmalar vardı.

@nocomprende Bu çalışmaların yanlış sonuç verdiğine inanmak için herhangi bir nedeniniz var mı? 1989'da ortalama ofis çalışanı tarafından kullanılan 1989 tarihli bir bilgisayar, modern bir çalışan tarafından kullanılan modern bir makineden tamamen farklıdır. Benzer şekilde, nesne teknolojisinin uygulanması zaman içinde gelişebilir veya gelişmeyebilir.
Jørgen Fogh

1
@ JørgenFogh Sanırım çalışmaların her zaman sağduyulu görünen şeyleri göstermediğini söylüyorum. İşletmeler, işleri daha da kötüleştirirlerse, bilgisayarları ofislerde kullanmaya başlamazdı. İnsanlar, eğer işe yaramazsa, OO yaklaşımını geliştirmek için onlarca yıl geçirmezdi. Onlar mı? İnsanlar yanlış olabilir, ama bunu kesin bir şekilde nasıl kanıtlarsınız? Aşağıdakiler geliyor: "Bu sizin için uygun mu ?"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.