"Paul Graham'ın 2002’de yazdığı bu makale, nesne yönelimli programlama hakkındaki kişisel görüşlerini paylaşıyor. Graham, nesne yönelimli programlamanın bazı durumlarda faydalı olduğunu kabul ederken, her programın nesne yönelimli olması gerektiğini reddediyor. Nesne yönelimli programlamanın popülerliğinin çeşitli sebeplerinin olduğunu belirtiyor ve bu sebepleri beş maddede topluyor. Graham, kendi deneyimlerine dayanarak, nesne yönelimli programlama tekniklerine genellikle ihtiyaç duymadığını ve bunun yerine farklı tekniklere başvurduğunu belirtiyor.
---
# Neden Arc Özellikle Nesne Tabanlı Programlama Üzerine Kurulu Değil? (Why Arc Isn't Especially Object-Oriented)
Şubat 2002
Şu sıralar nesne yönelimli programlama konusunda çılgın bir heves var. Ancak tanıdığım bazı akıllı programcılar bu konuda pek de coşkulu değil.
Ben de onlara katılıyorum. Nesne yönelimli programlama bazı durumlarda işe yarayan bir teknik olabilir, ama yazdığınız her programın her yanını sarması gereken bir şey değil bence. Yeni türler tanımlayabilmelisiniz, ama her programı yeni türlerin tanımı olarak ifade etmek zorunda olmamalısınız.
Bence, insanların nesne yönelimli programlamayı sevmesinin beş nedeni var ve bunların üç buçuk tanesi kötü:
1. Statik-tipli bir dilin varsa ve leksiksel kapanışlar veya makrolar olmadan, nesne yönelimli programlama heyecan verici olabilir. Bir dereceye kadar, bu sınırlamaların etrafında bir yol sunar.
2. Nesne yönelimli programlama büyük şirketlerde popülerdir, çünkü onların yazılım yazma şekline uyar. Büyük şirketlerde, yazılım genellikle büyük ekipler tarafından yazılır. Nesne yönelimli programlama, bu programcılara, hiçbirinin çok fazla zarar vermesini engelliyor. Ama sonuçta oluşan kod gereksiz protokollerle şişirilmiş ve tekrarlarla dolu oluyor.
3. Nesne yönelimli programlama, çalışıyormuş gibi görünen birçok şeyi üretir. Bir Lisp hacker'ının bir listeye bir sembol itmesi gereken bir şey, bir dizi sınıf ve yöntemlerin tam bir dosyası olur. Bu yüzden, kendinizi veya başkasını, çok fazla çalışma yaptığınıza ikna etmek istiyorsanız iyi bir araçtır.
4. Bir dilin kendisi bir nesne yönelimli program ise, kullanıcılar tarafından genişletilebilir. Eh, belki. Ya da belki nesne yönelimli programlamanın alt kavramlarını a la carte sunarak daha iyisini yapabilirsiniz.
5. Nesne yönelimli soyutlamalar, simülasyonlar ve CAD sistemleri gibi belirli tür programların alanlarına düzgün bir şekilde haritalanır.
Ben kişisel olarak hiç nesne yönelimli soyutlamalara ihtiyaç duymadım. Daha zayıf dillerde nesne yönelimli teknikler gerektirecek birçok şey yaptım, ama hiç CLOS kullanmak zorunda kalmadım.
Belki ben sadece aptalım ya da bazı sınırlı uygulamalar üzerinde çalışıyorum. Bir dili kendi programlama deneyimine dayanarak tasarlamanın tehlikesi vardır. Ancak, iyi bir fikir olduğu düşünüldüğü için ihtiyaç duymadığınız bir şeyi eklemek daha tehlikeli görünüyor.""
---
İlişkili Konseptler: nesne yönelimli programlama, nesne yönelimli programlamanın artıları ve eksileri, nesne yönelimli programlamayı anlama, Arc dil, Lisp dil, büyük şirketlerde nesne yönelimli programlama, nesne yönelimli programlamanın sınırlamaları, nesne yönelimli programlamaya alternatifler, nesne yönelimli programlama ve yazılım geliştirme, Greenspun'un Onuncu Kuralı, nesne yönelimli programlama eleştirisi."