Photo by Daniel Tong on Unsplash

JS ILE FONKSIYONEL PROGRAMLAMA

Object-Oriented Programlamanın Unutulmuş Tarihi — 2

Object Oriented Programlama acaba ilk başta bu programlama paradigmasını kuran kişilerin kafasında ki yapımı, yoksa şu anda bambaşka bir şekilde anlaşılmış farklı bir şekilde OOP uygulanıyor. Acaba Java, C++ veya .NET Object Oriented Programlamayı farklı mı yorumladılar ?

Bu yazıyı daha önceden yazmış olduğum Object-Oriented Programlamanın Unutulmuş Tarihi-1 yazısının devamıdır.

Büyük Fikir

object-oriented” terimini ortaya atarken hiç C++ düşüncesinde değildim~ Alan Kay, OOPSLA ‘97

Alan Kay Object-Oriented Programlama terminolojisini ortaya 1966/67 yüksek lisans dönemininde ortaya atıyor. Burada ki büyük fikir mini-computers bulunan yazılımların encapsulated(dışarıdan soyutlanmış biçimde) birbirlerine mesaj aktarımları ile iletişim kurması ve veriyi paylaşması olarak düşünmüştür. Bu sayede programı veri yapıları (data-structures) ve procedürler (procedures) olarak bölme zorunlulu ortadan kalkacaktı.

Recursive tasarımın temel ilkesi, parçaların bütün olarak aynı güce sahip olmasını sağlamaktır.~ Bob Barto

Smalltalk Alan Kay, Dan Ingalls, Adele Goldberg ve diğerleri tarafından Xerox PARC kullanılmak için geliştirildi. Smalltalk Simula göre daha Object-Oriented özellikler içeriyordu. Smalltalk herşey objeydi. sınıf yapıları, integer ve block(closures). 1972 yılındaki original Smalltalk subclassing içermiyordu. Subclassing 1976 yılında Dan Ingalls tarafından Smalltalk içerisine eklendi.

Not: Eric Elliott yukarıda subclassing olayına özellikle atıfta bulunmuş. 1972'de ilk Smalltalk içerisinde yoktu diye. Ben bunu şöyle algılıyorum. Bu programlama dili Xerox UI için geliştirildiği için React, Vue ve yeni nesil UI Framework Sınıf ve Sınıf hiyerarşilerinden kurtulma çabaları, Inheritance yerine → Composition kullanmaları. Bu subclassing konusunda aşağıdaki yazıları inceleyebilirsiniz.

Smalltalk sınıf ve alt-sınıfları desteklerken bile temel konusu bu sınıf olgusu ve hiyerarşik alt-sınıflar kavramları değildi. Lisp ve Simula’dan ilham alarak ortaya çıkan fonksiyonel bir dildi. Alan Kay burada Endüstri’nin subclassing odaklanmasını OOP ana faydalarından uzaklaşması olarak görüyor.

OOP , Objects kelimesini icat ettiği için üzgün olduğunu buradaki asıl konu ve büyük fikrin Messaging olduğunu söylüyor. ~ Alan Kay

2003 yılında Email-Exchange Alan Kay Object-Oriented Programming neyi kastettiğini daha açıkça belirtmiş.

“OOP benim için sadece messaging , process state saklayan — local retention ,protection ve extreme late-binding
~ Alan Kay

Not: Eskiden iOS Programla yaparken ObjectiveC Late-Binding özellikli olduğunu biliyorum. ObjectiveC DynamicTyping yazısını okuyabilirsiniz.

Bir başka deyişle Alan Kay göre Object-Oriented Programlamanın temel bileşenleri;

  • Message Passing (Mesaj ile Veri aktarımı)
  • Encapsulation
  • Dynamic Binding

Özetle sektörün üzerinde çok durduğu ve ilk öğretilmeye başlatılan inheritance, subclass, polymorphism Alan Kay’a göre OOP temel bileşenleri değil.

Referanslar

Okumaya Devam Et 😃

Bu yazının devamı veya yazı grubundaki diğer yazılara erişmek için bu linke tıklayabilirsiniz.

--

--