Az önce Esra'nın sorduğu bu soruya kısa bir yanıt yazdım. Sanırım insanlar bu gibi soruların düz ve açıklayıcı yanıtlarına ihtiyaç duyuyorlar. İşte burada:
Klasik programlama öğretisine göre yapısal (structured) programlama dilleri ile geliştirilen yazılımlarda belirli ve bir tek amaçları yerine getiren prosedürler, bu prosedürleri belirli ve düzenli bir sıra ile çağıran bir ana program ve prosedürlerin üzerinde işlem yaptıkları veri vardır. Bu metod yıllar boyu kullanılagelmiş ve işe yaradığını ispatlamıştır. Buna karşın, zaman içerisinde bilgisayar sistemleri geliştikçe ve insanların bilgisayarlardan beklentileri daha karmaşık hale geldikçe bu yazılım geliştirme modeli; yazılım sürecini zorlaştırmaya başlamıştır.
Alternatif bir metod olarak ortaya çıkan nesneye dayalı programlama modelinde, prosedürleri (metodlar) ve veriyi mantıksal gruplar halinde bir araya toplayan; birbirinden türeyen ve birbirinin özelliklerine sahip olarak gelişen nesneler vardır. Basit bir örnekle bir bitki sınıfı tanımlanır, bu sınıfın kendi özellikleri (rengi, şekli) ve yapabildikleri vardır (fotosentez). Daha sonra bu bitki sınıfından örneğin çiçek sınıfı türetilir; bu yeni sınıf bitkinin de özelliklerine sahiptir ve kendine has bazı özellikleri olabilir (yerde yetişmek, ışığa duyarlı olmak vb.) ve kendi yapabildikleri vardır (çiçeközü üretmek gibi). Bu şekilde gerçekleştirilen bir kalıtım ile tekrar tekrar kullanılabilen ve genel amaçlı kapsamlı bir nesne kütüphanesi elde edilir. Bu nesne kütüphanesi de yazılım geliştirme sürecini basitleştirir ve kısaltır.
Belki basitliği korunarak birazcık daha geliştirilebilir, yorumlara açığım :)

