- Dil, standart kütüphane, derleme sistemi ve platform desteği genelinde genişlemeler sunarak geliştirici deneyimini iyileştiriyor
- Başlıca değişiklikler arasında güçlendirilmiş C birlikte çalışabilirliği, resmî Android SDK’sının eklenmesi, gömülü ortam iyileştirmeleri ve DocC belgelendirme aracının genişletilmesi yer alıyor
- Swift Package Manager, birleşik derleme motoru ve önceden derlenmiş Swift Syntax desteği ile platformlar arası derleme tutarlılığını artırıyor
- Swift Testing, uyarı düzeyinde sorun kaydı, test iptali ve görsel ekleme gibi yeni özelliklerle test esnekliğini güçlendiriyor
- Android SDK’nın resmî olarak yayımlanması, Swift’in platformlar arası geliştirme alanını genişletiyor ve Kotlin/Java uygulamalarıyla entegrasyonu mümkün kılıyor
Swift 6.3’teki başlıca güncellemeler
- Swift 6.3, dil, standart kütüphane, derleme sistemi ve platform desteği genelinde genişletilmiş yetenekler sunuyor
- Güçlendirilmiş C birlikte çalışabilirliği, resmî Android SDK’sının eklenmesi, gömülü ortam iyileştirmeleri ve DocC belgelendirme aracının genişletilmesi temel değişiklikler arasında
- Hedef, geliştirici deneyimini iyileştirmek ve platformlar arası geliştirme entegrasyonunu güçlendirmek
Dil ve standart kütüphane
-
C birlikte çalışabilirliği
- Yeni
@c özniteliği sayesinde Swift fonksiyonları veya enum’lar C koduna açılabiliyor
@c(MyLibrary_callFromC) biçimiyle özel C bildirim adı belirtilebiliyor
@c ile @implementation birlikte kullanıldığında, C header’ında bildirilen fonksiyonlar Swift içinde uygulanabiliyor
- Bu kombinasyonda Swift, mevcut C bildirimiyle eşleşmeyi doğruluyor
-
Modül ad seçicileri (Module Name Selectors)
- Aynı adlı API’ler birden fazla modülden içe aktarıldığında,
ModuleA::getValue() biçiminde modülü açıkça belirterek çağrı yapılabiliyor
Swift::Task sözdizimiyle eşzamanlılık (concurrency) ve string işleme API’lerine erişilebiliyor
-
Kütüphane API performans kontrolü
- @specialize: Generic API’lerde belirli tipler için önceden özelleştirilmiş uygulama sağlıyor
- @inline(always): Inlining’i zorlayarak fonksiyon gövdesini çağrı noktasında genişletiyor
- @export(implementation): ABI kararlı kütüphanelerde fonksiyon uygulamasını dışa açarak ek optimizasyonlara izin veriyor
- İlgili öneriler Swift Evolution panosunda incelenebilir
Paket ve derleme iyileştirmeleri
- Swift Package Manager’a Swift Build birleşik önizlemesi eklendi; bu sayede tüm platformlarda tutarlı bir derleme deneyimi sunuluyor
- Birleşik derleme motoru ile platformlar arası geliştirme tutarlılığı güçleniyor
- Kullanıcılar paketlerinde doğrudan test yapıp sorun bildirebiliyor
- SwiftPM 6.3’ün başlıca iyileştirmeleri
- Prebuilt Swift Syntax desteği: Yalnızca makrolara yönelik kütüphanelerde önceden derlenmiş
swift-syntax binary’leri kullanılabiliyor
- Esnek belge devralma kontrolü: Sembol grafiği üreten komut tabanlı eklentilerde devralınan belgelerin dahil edilip edilmeyeceği kontrol edilebiliyor
- Paket özelliklerini keşfetme:
swift package show-traits komutuyla bir paketin desteklediği özellikler görülebiliyor
- Ayrıntılar SwiftPM 6.3 sürüm notlarında yer alıyor
Çekirdek kütüphane güncellemeleri
-
Swift Testing
- Uyarı düzeyinde sorun kaydı:
Issue.record(..., severity: .warning) ile testi başarısız saymadan yalnızca uyarı gösterilebiliyor
- Test iptal özelliği:
try Test.cancel() ile çalışan testler ve alt görevler durdurulabiliyor
- Görsel ek desteği: Apple ve Windows platformlarında testlere görsel eklenebiliyor
- İlgili öneriler: ST-0012, ST-0013, ST-0014, ST-0015, ST-0016, ST-0017, ST-0020
-
DocC
- Markdown çıktı desteği:
--enable-experimental-markdown-output seçeneğiyle Markdown belgeleri üretilebiliyor
- Sayfa başına statik HTML içerik: `` içine özet HTML eklenerek arama motoru görünürlüğü ve erişilebilirlik iyileştiriliyor
- Kod bloğu açıklamalarının genişletilmesi:
nocopy, highlight, showLineNumbers, wrap gibi yeni biçim seçenekleri eklendi
--enable-experimental-code-block-annotations seçeneğiyle etkinleştirilebiliyor
Platformlar ve ortam
-
Embedded Swift
- Güçlendirilmiş C birlikte çalışabilirliği, iyileştirilmiş hata ayıklama, linkage modelinin olgunlaşmasında ilerleme gibi çok sayıda iyileştirme içeriyor
- Ayrıntılar “Embedded Swift Improvements coming in Swift 6.3” blog yazısında bulunabilir
-
Android
- İlk resmî Swift SDK for Android yayımlandı
- Swift ile yerel Android uygulamaları geliştirmek ve Swift paketlerini Android için derlemek mümkün hale geliyor
- Swift Java ve Swift Java JNI Core aracılığıyla Kotlin/Java uygulamalarıyla entegrasyon sağlanabiliyor
- Bu adım, Swift’in platformlar arası geliştirme kapsamını genişletmesi açısından önemli bir kilometre taşı olarak değerlendiriliyor
- Başlangıç kılavuzu “Getting Started with the Swift SDK for Android” belgesinde sunuluyor
Sonraki adımlar
- Swift 6.3 toolchain’i Install Swift sayfasından kurulabiliyor
- Geliştiriciler yeni özellikleri hemen deneyip geri bildirim verebilir
1 yorum
Hacker News görüşleri
Swift için böyle harika bir sürüm görmek sevindirici
v3'ten sonra kullanmadım ama 2015~17 civarında Swift'in Python'ın yerini alması mümkün görünüyordu
Çünkü basit, hızlıydı ve C/C++ ekosistemiyle de iyi uyum sağlıyordu. IBM'in sunucu tarafını zorladığı dönemde gerçekten potansiyeli vardı
Ama Apple topluluğu yeterince içine çekemedi ve sonuçta Swift Apple'a özel bir dil olarak kaldı. Şimdi karmaşıklığı da C++ seviyesine çıkmış durumda
Swift'i seviyorum ama Apple ekosisteminin dışında hâlâ kritik eşiği aşamamış gibi geliyor. Sonunda geçen yıl TypeScript'e geçtim
Her şeyden önce, yığına Apple gibi bir kapı bekçisini gönüllü olarak dahil etmek isteyen çok az kişi vardır diye düşünüyorum
TensorFlow Swift projesi
CircuitPython da gömülü prototipleme için faydalıydı. Swift bu alanları tam olarak yakalayamadı
Üstelik Swift Linux'a 2016'da, Windows'a 2020'de, FreeBSD'ye ise ancak 2025'te gelebildi
2010'ların ortasında Go, Julia, Rust, TypeScript, Solidity gibi yeni diller sel gibi geliyordu; herkesin en fazla bir iki tanesini öğrenmeye vakti vardı
Swift'in tüm stack'i kapsayan bir dil olmasını umuyordum ama gerçek öyle olmadı
Apple'ın fırsatı boşa harcadığı hissi var
Örneğin ClearSurgery, Linux'tan gerçek zamanlı bileşenlere kadar tamamen Swift ile yazılmış durumda
Geçen hafta xv6-riscv işletim sistemini Zig, Nim, LISP ve Swift'e port ettim
Embedded Swift'teki ilerleme sayesinde yüksek üretkenlik sunan bir dil gibi hissettirdi. Bellek erişimini saran soyutlamalar da temizdi
Ama derleme hızı o kadar yavaştı ki sonunda Nim'e odaklandım
Swift'in derleme hızı iyileştirmelerinden bahsedilmemesi üzücü
Rust'tan bile yavaş derleme, geliştirme deneyimini ciddi biçimde düşürüyor
Go'nun hızlı build'lerine alıştıysan Swift'te iteratif geliştirme işkenceye dönüşüyor. Dilin kendisi harika ama geri bildirim döngüsü çok yavaş
Swift 6.3 ile ilk kez Android için resmi SDK dahil edildi
Windows için 5 yıl önceki blog yazısı,
Linux için de GNOME rehberi var
Eski OpenSTEP gibi, tek sefer geliştirip birden çok platforma dağıtmak mümkün olsa güzel olurdu
noncopyable türlerdeki iyileştirmeler bu sürümün en az değer verilen kısmı
Artık Swift'te benzersiz sahiplik modellemesini çok daha gerçekçi biçimde yapmak mümkün
Swift 6.3'teki
@cniteliği sayesinde Swift fonksiyonlarını C koduna açmak mümkün olduAma bunun neden bu kadar geç eklendiği soru işareti. Önce C++ birlikte çalışabilirliğinin gelmesi garip bir önceliklendirme gibi duruyor
Buna karşılık Swift'i C'ye açmak FFI spagettisi yaratıyor ve enum, sahiplik, null işleme gibi alanlarda ABI hataları üretmeye açık oluyor
Özellikle işin içine closure girerse çağrı kuralı bozulabiliyor ve bir günü debug'a gömebiliyorsun
Eskiden Swift ile C programları için dylib üretirken
@cdeclkullanmak gerekiyordu; artık bunun resmi olarak desteklenmesi sevindiriciPazarlama dışındaki gerçek değişiklikler CHANGELOG ve
Swift Evolution öneri listesi içinde görülebilir
6.3 daha çok entegrasyon işleri odaklı bir sürümdü — stdlib, C/C++, swift-java birlikte çalışabilirliği, build sistemi vb.
SPM giderek Xcode özelliklerini içine alıyor; yeni swift-build motoru ve prebuilt modüller de deneysel durumda
Ama SPM ile Xcode etkileşimi hâlâ dengesiz ve iç karmaşıklık büyüyor
Dilin kendisindeki ilerleme daha sessiz olsa da yaşam süresi denetimi ve concurrency renklendirmesi gibi derin yapısal çalışmalar sürüyor
Birden çok OS, cihaz ve CI ortamı birbirine dolanmış durumda; bu yüzden Swift geliştiricileri sürekli değişim içinde denge kurmak zorunda kalıyor
swift-buildvarsayılan olacakresmi forum gönderisine göre,
Xcode bunu zaten içeride kullanıyor ama performans sorunları ciddi
ilgili tartışma da var.
SPM ile Xcode aynı motoru kullanırsa iyileşebilir ama büyük beklentim yok
Güncel Swift sürümünde toolchain durumunun nasıl olduğunu merak ediyorum. Swift Lint ve Swift Format destekleniyor mu, bilmek istiyorum
Modern bir dilde yerleşik formatter ve önerilen lint kuralları olmalı. Sadece dil değil, tüm ekosistem önemli
swift formatveswift format lintile kullanılabiliyor