Gerçek dünyadaki nesnelere ve mesajlaşmaya da odaklanmam. Daha ziyade kullandığım bir örnek, "kendilerini nasıl çizeceğini bilen" nesnelerin olmasını istediğiniz grafiklerde.
Örneğin, OO yerleşik olmayan C'de çalışıyorsanız, işaretçileri veri nesnelerinin içindeki işlevlere depolamayı uygun bulabilirsiniz. Bunu yaparsanız, OOP'a giriyorsunuz.
Alan Kay'a Musa'nın tabletleri teslim ediyormuş gibi bahsetmekten hoşlanmıyorum. Aksine, matematik ve biyoloji eğitimi almış olduğuna inanıyorum. Bir matematikçi olarak, muhtemelen oldukça soyut olan ve donanımla ilgili olmayan Lambda Calculus'a aşinalığa sahipti. LC'de her şeyin bir "nesne" olduğunu söyleyebilirsiniz - 0 sayısı ve 1 sayısı gibi, bir argüman verildiğinde farklı şeyleri değerlendiren nesnelerdir. Bu Smalltalk'a oldukça hoş bir şekilde yol açar. "Mesaj" fikri donanım hakkında konuşmaktan kaçınabilmemizdir. Bir işlevi (veya bir nesnenin yöntemini) çağırdığınızda ona bir mesaj gönderdiğinizi ve geri döndüğünde size (veya devamınıza) bir mesaj gönderdiğini söyleyebilirsiniz. Bu, ayrı bir donanımda eşzamansız olarak çalışan programlar arasında iletişim kurma yollarını açıklamanın bir yolu olarak kilitlendi. Bu iyi, ama sıradan programlama için bu işlem ortadan kalkıyor. OOP fikrinin değerini elde etmek için, yapmaya çalıştığınız somut görevin önemini ya da üzerinde çalıştığınız donanımın somutluğunu reddetmeniz gerekmez. OOP hakkında tartışmalı analojiler açısından öğretmenin, veri tasarımı açısından yazılım tasarımını çok fazla düşünmesine yol açtığını düşünüyorum, aşırı tasarımına yol açıyor, kod patlamasına ve büyük performans sorunlarına yol açıyor. yeterince kötüleşiyor.