19 Temmuz 2012 Perşembe

Nesne Tabanlı Dillerin Evrimi


 Microsoft'un C# eğitimi veren Açık Akademi eğitimleri sırasında karşıma çıkan "Nesne Tabanlı Programlama Dilleri" nin tarihi süreç içerisinde nasıl geliştiği ve değiştiğiyle ilgili yazısı, bu konu hakkında bilgi sahibi olma ihtiyacı doğurdu.

Nesne tabanlı programlama, temel olarak, programcının kendi sınıfını ve nesnesini oluşturup, üzerinde çalışabilmesine olanak sağlayan bir mimaridir. 

Nesne tabanlı programlama, büyüyen yazılım dünyasının ihtiyaçlarını çözemeyen prosedürel programlamaya bir çözüm olarak ortaya çıkmıştır. 

Gittikçe büyüyen uygulamalar yazılmaya başlanması, bu uygulamaların bakım maliyetlerinin artması ve kolayca modifiye edilememeleri gibi durumlar nesne yönelimli programlamaya geçiş sürecinde yaşanılan temel sorunlar olarak gösterilebilir.



ALGOL - 1950'lerin ortasında Fortran dilindeki problemleri gidermek için dizayn edilen bir dildir. Bunun yanında Algol, Pascal gibi bazı dillerin ortaya çıkmasında rol oynamıştır. ALGOL köşeli parantezli ifade bloklarını kullanır. Ayrıca onları sınırlandırmak için BEGIN END bloklarını kullanan ilk programlama dilidir.





Simula - Hemen hemen bütün nesne tabanlı ve nesne yönelimli dillerin atası 1960'larda geliştirilen Simula dilidir. Simula, ALGOl fikri üzerine inşa edilmiş bir dildir; ancak üzerine kapsülleme(encapsulation) ve kalıtım(inheritance) konseptlerini eklemiştir. Belki daha da önemlisi, karmaşık sistemleri tanımlama ve simülasyon geliştirme dili olarak kullanılan Simula'nın, programlama dünyasını spesifik problem alanına özel kod yazma disiplini ile tanıştırmasıdır.(nesne taslaklarını hazırlayan kod kümelerinin yazılıp daha sonra kullanılması.)


Smalltalk -  Simula, Smalltalk dilinin birincil esin kaynağıdır. Bu fikir sonraları farklı geliştirmelerle desteklenmiştir. Smalltalk hem bir dili hem de bir uygulama geliştirme ortamını temsil eder. Saf nesne yönelimli bir dil olan Smalltalk dilinde her şey bir nesne olarak ele alınır, integer bile bir sınftır. Smalltalk, günümüzde yaygın olmasa da kendisini takip eden bütün nesne yönelimli diller onun konseptinden etkilenmiştir. Bu yüzden önemli bir kilometre taşıdır.


 
C with classes(C++) : Orijinal adı C with Classes olan C++ dili, Bjarne Stroustrup adlı bir akademisyen tarafından, doktora tezinde uygulama geliştirirken karşılaştığı sorunlardan yola çıkarak 1979’da geliştirilmeye başlanmış, 1985’de ilk versiyonu yayınlanmıştır. Bu yeni dilin geliştirilme aşamasında başta C ve Simula olmak üzere ALGOL 68, Ada gibi dillerden esinlenilmiştir. Genellikle C dilinin daha gelişmiş hali olarak nitelendirilir.(Tip kontrolü, aşırı yüklenmiş fonksiyonlar, statik fonksiyonlar, abstract sınıf, protected üyeler gibi dil yenilikleri getirmiştir). Ancak en önemlisi C++, C diline nesne yönelimli programlama özelliğini eklemiştir. C++ dili, donanım seviyesinde uygulama geliştirirken(işletim sistemi, sürücü vb.) alt seviye bir dil olması sebebiyle halen tercih edilmektedir.


OAK: Doksanlı yılların hemen başında, Sun Microsystems çalışanlarından James Gosling ve grubu; eğlence platformları, mikrodalga fırınlar vb. dijital olarak kontrol edilen tüketici aletleri için ileri seviye uygulamalar geliştiriyorlardı. Bu programları C++ ile yazmak zor olduğu için 1991 yılında OAK adı verilen bir dil oluşturdular.






 

Java: Geliştirme aşamasında OAK, genel amaçlı bir programlama dili haline geldi ve 1995 yılında adı değiştirilerek Java 1.0 sürümü ile duyuruldu. “Write once, Run Anywhere” yani platform bağımsız uygulama geliştirmek hedefine olan Java dilinin esas hedefi, yaygınlaşan internet erişimine ayak uydurarak web uygulamalarının kolay geliştirileceği bir platform haline gelmekti. Java, günümüzde halen yaygın olarak kullanılmaktadır. Bir programlama dilinden öte Smalltalk gibi bir uygulama geliştirme ortamı ve çalışma zamanıdır. Java teknolojisi ile uygulama geliştirmek ve çalıştırmak için Java Virtual Machine kullanılması gereklidir ve derlenen kaynak kodlar, platform bağımsızlık hedefi için Java Byte Code adında ortak bir ara dile dönüştürülmektedir. Ayrıca Java platformu, zengin ve genişletilebilen bir kod kütüphanesi içermektedir.

Yararlanılan kaynak: Açık Akademi

Hiç yorum yok:

Yorum Gönder