7 puan yazan GN⁺ 2024-09-18 | 2 yorum | WhatsApp'ta paylaş
  • Bu sürüm, Swift'i daha fazla platforma ve alana genişletiyor
  • Swift uygulama geliştirme dili olarak iyi bilinse de kütüphaneler, internet ölçeğinde servisler, performansın kritik olduğu kodlar ve daha birçok kullanım için de son derece uygun
  • Swift 6; yeni düşük seviyeli programlama özellikleri, gömülü Swift dil alt kümesi, genişletilmiş Linux ve Windows desteği, yeni çapraz platform API'leri ve daha fazlasıyla kapsamını genişletiyor

Dil ve standart kütüphane

Eşzamanlılık

  • Swift 6, yeni bir dil modu aracılığıyla eşzamanlılık kodunda veri yarışlarını önleyen güvenlik sağlıyor.
  • -strict-concurrency=complete derleyici bayrağıyla veri yarışı güvenliği uyarıları sunuyor.
  • Yeni bir senkronizasyon kütüphanesiyle düşük seviyeli eşzamanlılık API'leri içeriyor.

Typed throws

  • Bir fonksiyonun fırlattığı hata türünü imzada açıkça belirtmek artık mümkün.
  • Hata türünü jenerik kod boyunca taşımada veya bellek tahsisinin kısıtlı olduğu ortamlarda faydalı.

Sahiplik

  • Swift 5.9'da sunulan kopyalanamayan türler, performansı artırmak için jenerik sistemle entegre ediliyor.
  • ~Copyable sözdizimi kullanılarak kaynaklar modellenebiliyor ve performans optimize edilebiliyor.

C++ birlikte çalışabilirliği

  • Swift 6, C++'ın yalnızca taşınabilir türlerini, sanal metotlarını, varsayılan argümanlarını ve daha fazlasını destekliyor.
  • SWIFT_NONCOPYABLE anotasyonu sayesinde C++ türleri kopyalanamayan türler olarak açığa çıkarılabiliyor.

Gömülü Swift

  • Gömülü yazılım geliştirme için bir dil alt kümesi ve derleme modu içeriyor.
  • ARM ve RISC-V bare-metal hedeflerini destekliyor.

128 bit tamsayılar

  • İşaretli ve işaretsiz 128 bit tamsayı türleri ekleniyor.

Verimlilik iyileştirmeleri

  • count(where:) gibi verimliliği artıran çeşitli özellikler sunuluyor.

Hata ayıklama

@DebugDescription ile özelleştirilebilir LLDB özetleri

  • @DebugDescription makrosu kullanılarak nesnelerin LLDB'de nasıl gösterileceği özelleştirilebiliyor.

Açık modüllerle daha iyi başlangıç performansı

  • Açık modül derlemeleri kullanılarak hata ayıklayıcının başlangıç performansı büyük ölçüde iyileştiriliyor.

Kütüphaneler

Foundation

  • Foundation'ın uygulaması tüm platformlarda birleştiriliyor.
  • macOS ve iOS'ta kullanılan Swift uygulaması Linux ve Windows'a da genişletiliyor.

Swift Testing

  • Swift Testing adlı yeni bir test kütüphanesi sunuluyor.
  • Makrolar kullanılarak testlerin yazılması ve düzenlenmesi kolaylaştırılıyor.

Platform desteği

Linux için tam statik SDK

  • Linux için tam statik bağlı çalıştırılabilir dosyalar oluşturmak mümkün.

Yeni Linux dağıtımları

  • Debian, Fedora ve Ubuntu 24.04 için resmi destek ekleniyor.

Windows derleme performansı

  • arm64 mimarisi için önceden derlenmiş toolchain sağlanıyor.
  • Swift paket yöneticisi, Windows'ta derlemeleri varsayılan olarak paralelleştiriyor.

Sonraki adımlar

Swift 6'yı indirin

  • Resmi Swift 6 toolchain'i Swift.org/install adresinden yüklenebiliyor.

Swift'e başlayın

  • Swift Programming Language kitabı, en güncel Swift 6 sözdizimini ve özelliklerini yansıtacak şekilde güncellendi.

Paket ekosistemini keşfedin

  • Swift.org/packages adresinde çeşitli paketler keşfedilebiliyor.

Katılın

  • Swift 6 hakkındaki geri bildirimlerinizi ve deneyimlerinizi paylaşarak dilin, araçların, paket ekosisteminin ve topluluğun gelecekteki gelişimine katkıda bulunabilirsiniz.

GN⁺ özeti

  • Swift 6, farklı platformlara ve alanlara genişleyen büyük bir sürüm.
  • Eşzamanlılık, C++ birlikte çalışabilirliği ve gömülü Swift gibi birçok yeni özellik içeriyor.
  • Swift Testing gibi yeni kütüphaneler ve verimlilik iyileştirmeleri sunuyor.
  • Linux ve Windows desteğini genişletirken performansı da artırıyor.
  • Swift 6, geliştiricilere daha fazla imkan ve verimlilik sağlıyor.

2 yorum

 
GN⁺ 2024-09-18
Hacker News görüşleri
  • Swift, yönetişimdeki yapısal çatışmalar nedeniyle yavaş yavaş ölüyor

    • Swift Working Group™ açık kaynak topluluğu ile Apple şirketi arasında bir gerilim var
    • Maaşların büyük kısmını Apple ödediği için daha fazla etkiye sahip olan taraf Apple
    • Hardcoded derleyici istisnaları gibi teknik borçlar derleyici kod tabanında kalıcı olarak varlığını sürdürüyor
    • Apple, SwiftUI sözdizimini daha şık göstermek için yarım kalmış kavramları tartışmadan dayatıyor
    • Hâlâ harika bir dil, ancak Apple bırakmazsa önümüzdeki 10 yılda iyi şekilde ayakta kalması zor görünüyor
  • Swift’i yeni öğreniyorum ve şu ana kadar fena bulmadım

    • SwiftUI kullanırken sık sık şu hatayla karşılaşıyorum: "derleme başarısız: derleyici bu ifadeyi makul bir süre içinde tür denetiminden geçiremiyor; ifadeyi daha küçük alt ifadelere bölmeyi deneyin"
    • Derleyicinin yardım istemesi sarsıcı
  • Güvenli eşzamanlılık ve typed throws sayesinde Swift, daha kullanıcı dostu bir Rust gibi görünmeye başlıyor

    • Paket ekosistemi küçük olduğu için muhtemelen günlük olarak kullanmam
    • Cross-platform Foundation’ın bunu iyileştirecek yönde ilerlemesini umuyorum
  • Swift 6, cross-platform battery-included geliştirme açısından büyük bir sıçrama

    • Foundation’ın varsayılan olarak pek çok şey sunması büyük avantaj
    • Swift 6, düşük seviye iyileştirmeler ve cross-platform özellikler açısından yeterince güçlü; uzun vadede C, C++, Rust, Zig ve benzerlerinin yerini alma girişimi gibi görünüyor
  • Kısa süre önce Swift ve SwiftUI öğrenmeye başladım ve dilin ne kadar karmaşık olduğuna şaşırdım

    • Özellikle reaktif instance değişkenleri konusunda karmaşık
    • @observableObject gibi kavramları anlamıyorum
    • Birden fazla yol olduğu için sonunda çalışana kadar deneme yapıyorum
  • Swift’in yalnızca macOS’ta kalacağını düşünüyordum ama oldukça ilginç

    • Ubuntu paketindeki Swift derleyicisini Debian’a dönüştürürken sorun yaşadım
    • Çoğu özellik çalışıyor ama sigterm sinyali gibi basit şeyler çalışmıyor
    • Swift bence olağanüstü bir dil ve bugün mevcut en gelişmiş, en akıllı dillerden biri
    • SwiftUI’nin nasıl uygulandığına bakınca insan gerçekten etkileniyor
    • Dil kullanımı kolay ve geliştiricilerin gerçek kullanımını dikkate alan ileri düzey özellikler ve fikirlerle dolu
    • Ancak derleyici hata mesajları ve dokümantasyon çok kullanıcı dostu değil
    • Kütüphanelerin çoğu hâlâ Linux’ta iyi çalışmıyor, ama güvenlik, hız ve geliştirme keyfi arasındaki denge sağlanırsa geleceği parlak
  • Swift, ne yapmak istediğine karar vermeli ve buna bağlı kalmalı

    • Fazla miktarda sözdizimsel şeker ve yarım kalmış kavram var
  • SwiftGodot’u denedim; oyun geliştirmede Swift kullanmak, C#’ın GC gecikmelerine kıyasla daha ilgi çekici

    • Henüz Windows geliştirme kütüphanelerini paylaşmayı desteklemiyor
    • Derleme süreleri uzun
    • Değişiklik günlüğünde Windows’ta çok iş parçacıklı Swift paket yöneticisi iyileştirmelerinden bahsediliyor
  • Kademeli geçiş yapılabilmesi gerçekten çok iyi

    • Swift-6 moduna geçmek, veri yarışı güvenliği denetimleri de dahil olmak üzere göz korkutucu olabilir
    • Yeni araçlar kullanılabiliyor ama dilin 5.10 sürümü kullanılmaya devam edilebiliyor
    • Aynı paket iki farklı dil modunda derlenebiliyor; böylece kütüphaneler sürüm yükseltirken henüz hazır olmayan istemcileri de destekleyebiliyor
  • Swift dili bir canavara dönüştü

 
bus710 2024-09-19

Swift gibi harika bir dile başlamak için oldukça pahalı Apple ekosistemine girmek zorunda olmak, geliştiriciler için azımsanmayacak bir engel gibi görünüyor.