Loading AI tools
Vikipedi'den, özgür ansiklopediden
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.
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 | ) )
Ö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 |
Günümüzde OpenStep standardı üzerine kurulu olan macOS 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ı.
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool
{
NSLog(@"Merhaba Dünya!");
}
return 0;
}
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.