7 poin oleh GN⁺ 2024-09-18 | 2 komentar | Bagikan ke WhatsApp
  • Rilis ini memperluas Swift ke lebih banyak platform dan domain
  • Swift dikenal luas sebagai bahasa untuk pengembangan aplikasi, tetapi juga sangat baik untuk berbagai penggunaan lain seperti library, layanan berskala internet, dan kode yang kritis terhadap performa
  • Swift 6 semakin diperluas melalui fitur pemrograman low-level baru, subset bahasa Embedded Swift, dukungan Linux dan Windows yang diperluas, API lintas platform baru, dan lainnya

Bahasa dan pustaka standar

Konkurensi

  • Swift 6 menyediakan keamanan yang mencegah data race dalam kode konkurensi melalui mode bahasa baru.
  • Menyediakan peringatan keamanan data race melalui flag kompiler -strict-concurrency=complete.
  • Menyertakan API konkurensi low-level melalui library sinkronisasi baru.

Typed throws

  • Kini tipe error yang dilempar fungsi dapat dinyatakan secara eksplisit dalam signaturenya.
  • Berguna untuk meneruskan tipe error dalam kode generik atau di lingkungan dengan alokasi memori terbatas.

Ownership

  • Meningkatkan performa dengan mengintegrasikan tipe non-copyable yang diperkenalkan di Swift 5.9 ke dalam sistem generik.
  • Menggunakan sintaks ~Copyable untuk memodelkan resource dan mengoptimalkan performa.

Interoperabilitas C++

  • Swift 6 mendukung tipe move-only C++, metode virtual, default argument, dan lainnya.
  • Melalui anotasi SWIFT_NONCOPYABLE, tipe C++ dapat diekspos sebagai tipe non-copyable.

Embedded Swift

  • Menyertakan subset bahasa dan mode kompilasi untuk pengembangan software embedded.
  • Mendukung target bare-metal ARM dan RISC-V.

Integer 128-bit

  • Menambahkan tipe integer 128-bit bertanda dan tanpa tanda.

Peningkatan produktivitas

  • Memperkenalkan berbagai fitur untuk meningkatkan produktivitas, seperti count(where:).

Debugging

Ringkasan LLDB kustom melalui @DebugDescription

  • Dengan macro @DebugDescription, cara objek ditampilkan di LLDB dapat dikustomisasi.

Peningkatan performa startup melalui explicit modules

  • Secara signifikan meningkatkan performa startup debugger dengan menggunakan build explicit modules.

Library

Foundation

  • Menyatukan implementasi Foundation di semua platform.
  • Memperluas implementasi Swift yang digunakan di macOS dan iOS ke Linux dan Windows.

Swift Testing

  • Memperkenalkan library pengujian baru bernama Swift Testing.
  • Membantu menulis dan mengorganisasi pengujian dengan menggunakan macro.

Dukungan platform

SDK fully static untuk Linux

  • Kini dapat membangun executable dengan fully static linking untuk Linux.

Distribusi Linux baru

  • Menambahkan dukungan resmi untuk Debian, Fedora, dan Ubuntu 24.04.

Performa build Windows

  • Menyediakan toolchain pra-build untuk arsitektur arm64.
  • Swift Package Manager secara default memparalelkan build di Windows.

Langkah berikutnya

Unduh Swift 6

  • Toolchain resmi Swift 6 dapat diinstal di Swift.org/install.

Mulai menggunakan Swift

  • Buku bahasa pemrograman Swift telah diperbarui agar mencerminkan sintaks dan fitur terbaru Swift 6.

Jelajahi ekosistem paket

  • Berbagai paket dapat dijelajahi di Swift.org/packages.

Ikut berpartisipasi

  • Dengan membagikan feedback dan pengalaman tentang Swift 6, Anda dapat berkontribusi pada pengembangan masa depan bahasa, tool, ekosistem paket, dan komunitas.

Ringkasan GN⁺

  • Swift 6 adalah rilis besar yang memperluas jangkauannya ke berbagai platform dan domain.
  • Mencakup banyak fitur baru seperti konkurensi, interoperabilitas C++, dan Embedded Swift.
  • Memperkenalkan library baru seperti Swift Testing serta fitur-fitur peningkatan produktivitas.
  • Memperluas dukungan untuk Linux dan Windows sekaligus meningkatkan performa.
  • Swift 6 memberi developer lebih banyak kemungkinan dan efisiensi.

2 komentar

 
GN⁺ 2024-09-18
Komentar Hacker News
  • Swift perlahan mati karena konflik yang melekat dalam tata kelolanya

    • Ada konflik antara komunitas open source Swift Working Group™ dan perusahaan Apple
    • Karena Apple membayar sebagian besar gaji, Apple memiliki pengaruh yang lebih besar
    • Utang teknis seperti pengecualian compiler yang di-hardcode tetap ada secara permanen di codebase compiler
    • Apple mendorong konsep yang setengah matang tanpa diskusi demi membuat sintaks SwiftUI terlihat lebih cantik
    • Ini tetap bahasa yang menakjubkan, tetapi jika Apple tidak melepaskannya, tampaknya akan sulit bertahan dengan baik selama 10 tahun ke depan
  • Saya sedang baru belajar Swift, dan sejauh ini saya rasa cukup oke

    • Saat menggunakan SwiftUI, error "Compilation failed: the compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions" sering muncul
    • Mengejutkan bahwa compiler seperti meminta bantuan
  • Berkat safe concurrency dan typed throws, Swift mulai terlihat seperti Rust yang lebih ramah

    • Saya rasa saya tidak akan memakainya sehari-hari karena ekosistem paketnya kecil
    • Semoga Foundation lintas platform bergerak ke arah yang memperbaiki hal ini
  • Swift 6 adalah lompatan besar untuk pengembangan lintas platform yang serba tersedia

    • Foundation menyediakan banyak hal secara bawaan, jadi ini keunggulan besar
    • Swift 6 tampak seperti upaya jangka panjang untuk menggantikan C, C++, Rust, Zig, dan lainnya, karena peningkatan level rendah dan fitur lintas platformnya sudah cukup kuat
  • Saya baru mulai belajar Swift dan SwiftUI belakangan ini, dan terkejut bahwa bahasanya rumit

    • Terutama rumit terkait variabel instans reaktif
    • Saya tidak paham konsep seperti @observableObject
    • Ada banyak cara sehingga akhirnya saya hanya mencoba-coba sampai berhasil
  • Saya kira Swift akan tetap terbatas di macOS, tetapi ternyata sangat menarik

    • Ada masalah saat mengonversi compiler Swift dari paket Ubuntu ke Debian
    • Sebagian besar fitur berfungsi, tetapi hal sederhana seperti sinyal sigterm tidak berfungsi
    • Swift adalah bahasa yang fantastis dan menurut saya bahasa paling maju dan paling cerdas saat ini
    • Cara implementasi SwiftUI sangat mengagumkan untuk dilihat
    • Bahasanya mudah digunakan dan penuh fitur serta ide tingkat tinggi yang mempertimbangkan penggunaan nyata oleh developer
    • Namun, pesan error compiler dan dokumentasinya sangat tidak ramah
    • Sebagian besar library masih belum berjalan baik di Linux, tetapi jika keseimbangan antara keamanan, kecepatan, dan kesenangan dalam pengembangan bisa dijaga, masa depannya cerah
  • Swift perlu memutuskan ingin menjadi apa lalu konsisten dengan itu

    • Terlalu banyak syntactic sugar dan konsep yang setengah matang
  • Saya mencoba SwiftGodot, dan menggunakan Swift untuk pengembangan game terasa lebih menarik daripada jeda GC di C#

    • Masih belum mendukung berbagi library pengembangan Windows
    • Waktu kompilasinya lama
    • Changelog menyebut peningkatan Swift Package Manager multithread di Windows
  • Kemampuan untuk berpindah secara bertahap itu sangat bagus

    • Beralih ke mode Swift-6 bisa terasa berat, termasuk pemeriksaan keamanan data race
    • Kita bisa memakai tool baru sambil tetap menggunakan bahasa versi 5.10
    • Paket yang sama bisa dibangun dalam dua mode bahasa, sehingga library dapat naik versi sambil tetap mendukung klien yang belum siap
  • Bahasa Swift telah berubah menjadi monster

 
bus710 2024-09-19

Sepertinya, untuk mulai menggunakan bahasa keren bernama Swift, tidak ada pilihan selain masuk ke ekosistem Apple yang cukup mahal, dan itu tampaknya menjadi hambatan yang tidak kecil bagi para developer.