Swift (programlama dili)

Vikipedi, özgür ansiklopedi
Şuraya atla: kullan, ara
Swift
Swift logo.svg
Paradigması çok paradigmalı: nesne yönelimli, fonksiyonel, zorunlu
İlk çıkışı 2 Haziran 2014 (2 yıl önce) (2014-06-02)[1]
Tasarımcı Chris Lattner and Apple Inc.
Geliştirici Apple Inc.
Kararlı sürüm 3.0.2
Tip sistemi Statik, güçlü, çıkarım
Etkilendikleri Objective-C, Rust, Haskell, Ruby, Python, Scala, C#, CLU,[2] D[3]
Etkiledikleri Rust[4]
İşletim sistemi iOS, OS X, tvOS, watchOS
Lisans Apache Lisansı sürüm 2.0 (Swift 2.2 ve sonrası)
Sahipli yazılım (2.2 sürümüne kadar)[5][6]
Olağan dosya uzantıları .swift
Web sitesi developer.apple.com/swift/

Swift, Apple tarafından iOS ve OS X platformlarına iOS ve Mac uygulamaları geliştirmek için oluşturulan, derlenerek çalışan güçlü ve kullanımı kolay, nesne yönelimli bir programlama dili.

İlk olarak WWDC 2014[7] konferansında duyrulmuştur. Swift Apple'ın Cocoa ve Cocoa Touch geliştirme çatıları ve Objective C ile yazılmış çoğu Apple ürünüyle beraber çalışabilecek şekilde tasarlanmıştır.

Swift, TIOBE indexininin Mart 2017 verilerine göre dünyada en çok kullanılan 10 programlama dilinden birisi halina gelmiştir. Mevcut Objective-C koduna sorunsuz entegre edilebilmesi sayesinde, yazılım geliştiriciler için zamandan tasarruf sağlamaktadır.

Swift programlama dili Xcode programı kullanılarak yazılabilir.

Geçmiş[değiştir | kaynağı değiştir]

Swift dilinin geliştirilmesi, Chriss Lattner ve birçok Apple yazılımcısının işbirliği ile 2010 yılında başlamıştır. Swift Objective-C, Rust, Haskell, Ruby, Python, C#, CLU gibi birçok programlama dilinden esinlenilerek yazılmıştır.

2 Haziran 2014'te Swift ile yazılmış ilk WWDC uygulaması tanıtıldı. Dilin beta sürümü konferansa katılan kayıtlı Apple geliştiricilerine tanıtıldı fakat şirket Swift'in test sürümüyle son sürümünün kaynak uyumluluğunun sözünü vermedi. Apple gerektiği durumda nihai sürüm için bir kaynak kod dönüştürücü yapmayı planlamaktadır.

500 sayfalık ve ücretsiz Swift Programming Language el kitabı WWDC’de yayınlandı. Kitap iBooks Store ve resmi web sayfasından ulaşılabilir durumda.[8]

Swift ilk olarak iOS için olan Xcode 6.0’ın Gold Master versiyonuyla 1.0 milestone sürümünü 9 Eylül 2014 tarihinde çıkardı.[9] Swift 1.1 versiyonu Xcode 6.1 güncellemesiyle beraber 22 Ekim 2014 tarihinde geldi.[10] Swift 1.2 versiyonu 8 Nisan 2015 tarihinde Xcode 6.3 güncellemesiyle geldi.[11] Swift 2.0 WWDC 2015 tarihinde tanıtıldı ve 21 Eylül tarihi itibarıyla App Store’a bu dil ile yazılmış uygulamaların gönderilebileceği duyuruldu.[12] Swift 3.0 versiyonu ise 13 Eylül 2016 tarihinde geldi.[13]

Swift Stack Overflow Developer Survey 2015’in En Çok Sevilen Programlama Dili kategorisinde birinci sırayı[14], 2016 tarihinde ise ikinci sırayı kazandı.[15]

WWDC 2016’da Apple, Swift ile kodlama nasıl öğretilir amacını taşıyan iPad özel uygulaması olan Swift Playgrounds’u tanıttı. Belirli sırada yerleştirilmiş ve çalıştırılan kodlar ile geri bildirim sağlayan bu uygulama 3 boyutlu video oyununu andıran bir arayüz içinde sunuldu.

2017 tarihinde Chris Lattner Apple içerinde Tesla Motors’da yeni bir pozisyona geçtiğini duyurdu ve Swift projesindeki rolünü Ted Kremenek üstlendi.[16][17]

Özellikler[değiştir | kaynağı değiştir]

Swift modern programlama dilleri teori konseptine sahip ve mevcut sözdizimini basitleştirmeye çalışan Objective-C alternatifi bir dildir. Bu tanıtım boyunca Swift kısaca "C’siz Objective-C" olarak tarif edildi.[18][19]

Kütüphaneler, çalışma zamanı ve geliştirme[değiştir | kaynağı değiştir]

Swift Objective-C ile aynı çalışma zamanı sistemini kullanır fakat iOS 7 veya macOS 10.9 ve üstü versiyonları gerektirir.[20] Swift ve Objective-C kodları uzantı ile C ve C++ da dahil aynı program içinde kullanılabilir. C’nin aksine C++ kodları doğrudan Swift içinde kullanılamaz. Bir Objective-C veya C wrapper Swift ile C++ arasında oluşturulmuş olmalıdır.[21]

Bellek yönetimi[değiştir | kaynağı değiştir]

Swift bellek yönetimi için Otomatik Referans Sayıcı (ARC) kullanır. Apple Objective-C’de elle bellek yönetimi yapmayı gerektiriyordu. 2011 yılında bellek tahsis etme ve serbest bırakma işlemlerini baistleştirmek için ARC tanıtıldı.[22] ARC’nin olası sorunlarından biri İki farklı örneğin birbirine güçlü referans çevrimi ile bağlandığı bir durumda birbirlerinin referanslarını hiçbir zaman bırakmayacak olmalarıdır. Swift bu durumdan kaçınmak için weak ve unowned anahtar kelimelerini sağlar.

C ile benzerlikleri[değiştir | kaynağı değiştir]

  • Birçok C operatörü Swift içinde kullanıldı. Bunun yanında yeni operatörler eklendi.
  • Köşeli parantez grup ifadelerinde kullanıldı.

Objective-C ile benzerlikleri[değiştir | kaynağı değiştir]

  • Basit sayısal türler (Int, UInt, Float, Double)
  • Benzer forin numaralandırma sözdizimi.

Objective-C'den farkları[değiştir | kaynağı değiştir]

  • İfadeler noktalı virgül (;) ile bitmek zorunda değil. Bir satırda birden çok ifade için kullanmaya izin verir.
  • Başlık dosyaları yok.
  • Otomatik tür algılama kullanır.
  • Jenerik programlama.
  • Fonksiyonlar birinci sınıf nesnelerdir.
  • Stringler Unicode’u tamamiyle destekler. Birçok Unicode karakteri tanımlama ve operatör için kullanılabilir.

Örnek kod[değiştir | kaynağı değiştir]

print("Merhaba, dünya!")

let kisi = ["Aygül": 67, "Can": 8, "Burçak": 33, "Zeki": 25]
for (isim, yas) in kisi {
    print("\(isim), \(yas) yaşında.")
}

func merhaba(isim: String) -> String {
    let value = "Merhaba, " + isim + "!"
    return value
}

print(merhaba("Aygül"))
//çıktı: Merhaba, Aygül!

Ayrıca bakınız[değiştir | kaynağı değiştir]

Kaynakça[değiştir | kaynağı değiştir]

  1. ^ "Swift Has Reached 1.0". Apple. September 9, 2014. 9 Nisan 2016 tarihinde kaynağından arşivlendi. http://web.archive.org/web/20160409014051/https://developer.apple.com/swift/blog/?id=14. Erişim tarihi: March 8, 2015. 
  2. ^ Lattner, Chris (June 3, 2014). "Chris Lattner's Homepage". Chris Lattner. 22 Aralık 2015 tarihinde kaynağından arşivlendi. http://web.archive.org/web/20151222150510/http://nondot.org:80/sabre/. Erişim tarihi: June 3, 2014. "I started work on the Swift Programming Language in July of 2010. I implemented much of the basic language structure, with only a few people knowing of its existence. A few other (amazing) people started contributing in earnest late in 2011, and it became a major focus for the Apple Developer Tools group in July 2013 [...] drawing ideas from Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others to list." 
  3. 3,0 3,1 "Building assert() in Swift, Part 2: __FILE__ and __LINE__ - Swift Blog -". Apple Developer. 8 Nisan 2016 tarihinde kaynağından arşivlendi. http://web.archive.org/web/20160408234648/https://developer.apple.com/swift/blog/?id=15. Erişim tarihi: September 26, 2014. "Swift borrows a clever feature from the D language: these identifiers expand to the location of the caller when evaluated in a default argument list." 
  4. ^ "RFC for `if let` expression". 4 Mart 2016 tarihinde kaynağından arşivlendi. http://web.archive.org/web/20160304192327/https://github.com/rust-lang/rfcs/pull/160. Erişim tarihi: December 4, 2014. "The `if let` construct is based on the precedent set by Swift, which introduced its own `if let` statement." 
  5. ^ "Swift, Objectively". 31 Mart 2016 tarihinde kaynağından arşivlendi. http://web.archive.org/web/20160331081053/http://www.drdobbs.com/architecture-and-design/swift-objectively/240168424. "Swift is proprietary and closed: It is entirely controlled by Apple and there is no open source implementation." 
  6. ^ Lattner, Chris (June 11, 2014). "Re: [LLVMdev [cfe-dev] [ADVERTISEMENT] open positions in Apple's Swift compiler team"]. 27 Ağustos 2015 tarihinde kaynağından arşivlendi. http://web.archive.org/web/20150827063059/http://lists.cs.uiuc.edu:80/pipermail/llvmdev/2014-June/073698.html. Erişim tarihi: June 12, 2014. "You can imagine that many of us want it to be open source and part of llvm, but the discussion hasn't happened yet, and won't for some time." 
  7. ^ "Apple announces Swift, a new programming language for iOS". 26 Aralık 2015 tarihinde kaynağından arşivlendi. http://web.archive.org/web/20151226022456/http://thenextweb.com:80/apple/2014/06/02/apple-announces-swift-new-programming-language-ios/. 
  8. ^ The Swift Programming Language. Apple. June 2, 2014. https://itunes.apple.com/book/swift-programming-language/id881256329?mt=11. Erişim tarihi: June 2, 2014. 
  9. ^ "Swift Has Reached 1.0". September 9, 2014. 11 Temmuz 2016 tarihinde kaynağından arşivlendi. http://web.archive.org/web/20160711064518/https://developer.apple.com/swift/blog/?id=14. Erişim tarihi: September 10, 2014. 
  10. ^ "Xcode 6.1 Release Notes". October 22, 2014. 18 Mart 2016 tarihinde kaynağından arşivlendi. http://web.archive.org/web/20160318213407/https://developer.apple.com/library/ios/releasenotes/DeveloperTools/RN-Xcode/Chapters/xc6_release_notes.html. Erişim tarihi: January 23, 2015. 
  11. ^ "Xcode 6.3 Release Notes". April 8, 2015. 18 Mart 2016 tarihinde kaynağından arşivlendi. http://web.archive.org/web/20160318213407/https://developer.apple.com/library/ios/releasenotes/DeveloperTools/RN-Xcode/Chapters/xc6_release_notes.html. Erişim tarihi: April 8, 2015. 
  12. ^ "Swift 2 Apps in the App Store - Swift Blog". 26 Ağustos 2016 tarihinde kaynağından arşivlendi. http://web.archive.org/web/20160826002034/https://developer.apple.com/swift/blog/?id=32. Erişim tarihi: 2016-03-13. 
  13. ^ Inc., Apple (2016-09-13). "Swift 3.0 Released!". Swift.org. https://swift.org/blog/swift-3-0-released/. 
  14. ^ "Stack Overflow Developer Survey Results 2015". 31 Aralık 2016 tarihinde kaynağından arşivlendi. http://web.archive.org/web/20161231012855/https://stackoverflow.com/research/developer-survey-2015. 
  15. ^ "Stack Overflow Developer Survey Results 2016". 11 Ocak 2017 tarihinde kaynağından arşivlendi. http://web.archive.org/web/20170111103408/http://stackoverflow.com/research/developer-survey-2016. 
  16. ^ http://arstechnica.com/apple/2017/01/longtime-apple-programmer-and-swift-creator-leaves-apple-for-tesla/
  17. ^ http://appleinsider.com/articles/17/01/13/new-swift-project-head-ted-kremenek-said-to-be-running-the-show-behind-the-scenes-for-some-time
  18. ^ Metz, Rachel (June 3, 2014). "Apple Seeks a Swift Way to Lure More Developers". Technology Review. http://www.technologyreview.com/news/527821/apple-seeks-a-swift-way-to-lure-more-developers. 
  19. ^ Weber, Harrison (June 2, 2014). "Apple announces 'Swift,' a new programming language for macOS & iOS". VentureBeat. 17 Kasım 2016 tarihinde kaynağından arşivlendi. http://web.archive.org/web/20161117150025/http://venturebeat.com/2014/06/02/apple-introduces-a-new-programming-language-swift-objective-c-without-the-c/. 
  20. ^ "Do Swift-based apps work on macOS 10.9/iOS 7 and lower?", StackOverflow
  21. ^ "Using Swift with Cocoa and Objective-C: Basic Setup". apple.com. January 6, 2015. 14 Mart 2016 tarihinde kaynağından arşivlendi. http://web.archive.org/web/20160314233230/https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/BuildingCocoaApps/index.html. 
  22. ^ "Automatic Reference Counting", Apple Inc.

Dış bağlantılar[değiştir | kaynağı değiştir]