Objective-C

Vikipedi, özgür ansiklopedi
Atla: kullan, ara
Objective-C
Paradigması yansıtıcı, sınıf tabanlı, nesne yönelimli
İlk çıkışı 1983
Tasarımcı Brad Cox ve Tom Love
Geliştirici Apple
Kararlı sürüm 2.0 (26 Ekim 2007 (7 yıl önce) (2007-10-26))
Tip sistemi statik, dinamik, zayıf
Önemli uygulamaları Clang, GCC
Etkilendikleri C, Smalltalk
Etkiledikleri Java, Objective-J, TOM
İşletim sistemi Çapraz platform
Olağan dosya uzantıları .h, .m, .mm
Web sitesi Apple Developer — Objective-C

Objective-C, C'nin üzerine yazılmış, yansımalı, nesne yönelimli bir programlama dilidir. ObjC, Objective C ve Obj-C olarak da anılır.

Günümüzde OpenStep standardı üzerine kurulu olan Mac OS X ve GNUstep işletim sistemlerinde kullanılmaktadır. Objective-C'nin en yaygın olarak kullanıldığı alan Cocoa çatısının kullanıldığı yazılımlardır. Bu özel kütüphanelere erişime ihtiyaç duymayan bir Objective-C programı Objective-C derleyicisi içeren gcc ile derlenebilir.

1980'li yıllarda yazılım mühendisliğindeki genel eğilim yapısal programlamaya yönelikti. Bu yaklaşım sayesinde karmaşık problemler ufak parçalara bölünüp ufak parçaların çözülmesiyle büyük çözüme ulaşılıyordu. Fakat problemler büyüyüp daha da karmaşık hale gelmeye başlayınca bu yaklaşım yetersiz kalmaya başladı.

Bu noktada çoğu geliştirici nesne yönelimli programlamayı bir çözüm olarak görmeye başladı. Smalltalk tarafından öncülüğü yapılmış bu akım, programları fonksiyonel nesnelerin birleşimi olarak yorumlamaya dayalıydı. Smalltalk nesneye yönelik programlama ile zamanında yapısal programlamanın zayıf kaldığı noktaların çoğunda başarılıydı. Bu avantajdan dolayı zamanın en gelişmiş sistemleri Smalltalk ile yazılmıştı. Yalnız Smalltalk'ın en büyük sorunu bir sanal makine üzerinde çalışıyor olmasıydı. Bu gereksinimden dolayı ya çok bellek gerektiren sistemler gerektiriyordu ya da yavaş çalışmasını göze almak gerekiyordu.

Objective-C 1980'lerde Brad Cox tarafından Stepstone adlı şirkette geliştirildi. Cox'un takıldığı sorun yazılımlardaki bileşenlerin tekrar kullanılabilmesiydi. Bir başka deyişle, bir problem nesneye yönelik yöntemlerle parçalarına ayrılmış ve bu parçaların bazıları çalışır duruma getirilmiş ise, bu parçaları sorunsuzca başka çözümlerde de kullanmayı kolaylaştırmak lazımdı. Her ne kadar nesne yönelimli yazılım teorik olarak bunu öngörse de, zamanın araçları ile bunu başarmak emek isteyen bir işti. Cox hayal ettiği kolaylığı sağlamak için aslında bir iki ufak değişikliğin yeterli olacağını düşündü. Programlama dili her şeyden önce nesneleri esnek bir şekilde desteklemeli, kullanışlı ve zaman kazandıran kütüphanelerle gelmeli ve kod ve kaynakların ortamlar arası kullanımını kolaylaştırmalıydı.

Cox'un temel tasarımı 1986 yılında Nesne Yönelimli Programlama, Evrimsel bir yaklaşım (Object-oriented Programming, An Evolutionary Approach) adlı kitabında yayınlandı. Kitapta bileşenlerin yeniden kullanımı konusunun sadece programlama dilinden oluşmadığını vurgulamasına rağmen okuyucuların dikkatlerini sadece dile odaklamalarına, Objective-C'yi sunduğu önerilerden ayrı olarak algılamalarına engel olamadı.