- Swift forumlarında, Swift’i OS’ye dahil etmenin geliştiriciler için daha kötü bir durum yarattığı yönünde şikayetler dile getirildi
- Buna karşılık, OS ile birlikte sunulan kütüphaneler dünyasına hoş geldiniz diyen alaycı yorumlar da yapıldı
- Bu yazı, Apple’da Swift geliştirilirken edinilen deneyime dayanarak, Swift’in neden OS’nin bir parçası haline geldiğini ve bunun doğurduğu sorunları açıklıyor
OS bağımlılığı
- Geçmişte kişisel bilgisayarlar, çalışan süreçlerin tüm makineyi kontrol etmesine izin verirdi; bugün ise işletim sistemi çekirdeği her zaman çalışır ve temel OS hizmetlerini sağlar
- Modern OS’lerin çoğu, sistem çağrısı arayüzü üzerinden belirli ayrıcalıklı işleri talep edebilen programlar oluşturulmasına imkan tanır
- Günümüzdeki Apple OS’lerinde sistem çağrısı arayüzü OS sürümüne göre kararlı olmadığından, temel işleri yapmak için C/POSIX standart kütüphanesi ve onun uzantıları kullanılmak zorundadır
Apple’ın modeli (Swift öncesi)
- Swift’ten önce Apple’ın kamuya açık API’lerinin çoğu C veya Objective-C ile yazılıyor ve yerel kod biçiminde sunuluyordu
- Yeni OS sürümleri, mevcut kütüphanelerin yeni ikili uyumlu sürümlerini içererek önceki API sürümlerini kapsayan bir üst küme sunuyordu
- Bu modelin başlıca dezavantajı, yeni özellikler ve API’lerin yeni OS sürümlerine bağlı olmasıydı
Swift "beta" 1 ~ 5
- Swift 1’den Swift 5’e kadar çok sayıda değişiklik yaşandı ve ABI kararlılığı her zaman Swift’in hedeflerinden biriydi
- Swift 5’e geçilirken sorunların büyük kısmı çözüldü ve Swift OS’ye dahil edildiğinde mevcut uygulamaların ve projelerin etkilenmemesini sağlayacak bir yol bulunması gerekiyordu
Geçiş
- Swift’i OS’ye dahil etme sürecinde, mevcut uygulamaları ve projeleri bozmadan bunun nasıl yapılacağı bulunmalıydı
rpath adlı bir özellik kullanılarak, çalıştırılabilir dosyanın dinamik kütüphaneleri sabit kodlanmış bir yol yerine bir dizi dizin içinde arayarak bulması sağlandı
Kaybettiklerimiz
- Swift OS’ye dahil edilince uygulamaların artık Swift’i ayrıca paketlemesine gerek kalmadı ve Swift ile Objective-C runtime’ının birlikte sunulması sayesinde performans iyileştirmeleri mümkün hale geldi
- Ancak dışarıdan Swift’e katkı yapanlar, yeni API’lerin yalnızca yeni OS’lerde bulunması sorunuyla karşı karşıya kaldı
Alternatifler
- Geliştiriciler için daha iyi bir durum yaratmak adına Apple’ın atabileceği bazı makul adımlar var, ancak Apple’ın bunları uygulayıp uygulamayacağı belirsiz
Sonuç
- Swift’in OS’ye dahil edilmesi uygulama geliştiricileri için kötü bir anlaşma olmuş olabilir, ancak Apple sistem kütüphanelerini Swift ile yazabilme seçeneğinden vazgeçemezdi
Swift ile ilgili yeni bir şey değil
- Swift’le ilgili pek çok sorun, OS ile birlikte gelen kütüphanelerin bir sonucu
- Swift’teki hem teknik hem de toplumsal değişimler bu sorunları etkiliyor
GN⁺ görüşü
- Swift’in OS’nin bir parçası haline gelmesi geliştiricilere daha fazla kısıtlama getiriyor, ancak bu Apple’ın kütüphane dağıtım modelinin kaçınılmaz bir sonucu
- Bu yazı, Swift’in OS’ye entegre edilmesi sürecinde ortaya çıkan teknik ve operasyonel zorlukları ve bunlara yönelik çözümleri inceleyerek yazılım geliştirmenin karmaşıklığını ve kütüphane yönetiminin önemini vurguluyor
- Swift’in OS entegrasyonu, uygulama geliştiricilerine daha büyük dosya boyutları ve uyumluluk sorunları getirmiş olsa da, Apple’a sistem kütüphanelerini Swift ile yazma ve güncelleme yeteneği kazandırarak tüm sistemin tutarlılığını ve güvenliğini korumaya yardımcı oluyor.
Henüz yorum yok.