Pengembang Swift sedang memperdebatkan kelebihan Pledge, sebuah framework pemrograman reaktif baru, dengan banyak yang mempertanyakan keunggulannya dibandingkan solusi yang sudah mapan seperti Combine milik Apple dan manajemen state bawaan SwiftUI. Framework ini, yang bertujuan untuk menyederhanakan manajemen state dan propagasi event dalam aplikasi Swift, telah memicu diskusi tentang perkembangan lanskap pemrograman reaktif di ekosistem Apple.
Penerimaan Komunitas Menunjukkan Reaksi Beragam
Komunitas pengembang telah mengekspresikan skeptisisme tentang nilai proposisi Pledge dibandingkan dengan solusi yang sudah ada. Meskipun Pledge menawarkan fitur seperti implementasi thread-safe, notifikasi berbasis prioritas, dan pembatasan rate, beberapa pengembang mempertanyakan apakah kemampuan ini cukup menjustifikasi pengadopsian framework baru ketika alternatif yang kuat sudah tersedia.
Ini tampaknya seperti bagian subjek dari RxSwift/Combine tanpa bagian-bagian yang berguna. Misalnya, contoh networking memerlukan properti eksplisit sedangkan kode yang akan saya gunakan untuk sesuatu seperti ini adalah mengembalikan Observable secara langsung.
Sentimen ini mencerminkan kekhawatiran yang lebih luas bahwa Pledge mungkin sedang menemukan kembali roda tanpa menambahkan manfaat substansial dibandingkan framework yang sudah mapan. Beberapa pengembang menunjukkan bahwa Apple sendiri tampaknya bergerak menjauh dari pola pemrograman reaktif fungsional (FRP) tradisional dengan framework Observable berbasis makro yang lebih baru, menunjukkan bahwa pendekatan yang lebih sederhana mungkin semakin disukai.
Kompatibilitas Platform Bisa Menjadi Pembeda
Satu keunggulan potensial yang disorot dalam diskusi adalah kompatibilitas Pledge dengan lingkungan di mana framework Combine milik Apple tidak tersedia. Seorang komentator mencatat bahwa Pledge bisa berharga untuk Swift di Linux, di mana Combine tidak didukung secara resmi. Namun, yang lain dengan cepat menunjuk pada alternatif yang sudah ada seperti OpenCombine dan CombineX yang sudah mengatasi kesenjangan ini.
Pembuat framework tersebut menjelaskan bahwa Pledge terutama menargetkan pengembangan UIKit, di mana manajemen state reaktif tidak built-in, tidak seperti pendekatan terintegrasi SwiftUI. Posisi ini menunjukkan Pledge bertujuan untuk melayani pengembang yang bekerja dengan framework UI yang lebih lama atau mereka yang tidak dapat beralih ke SwiftUI karena berbagai alasan.
Fitur Utama Pledge
- Implementasi thread-safe
- Notifikasi berbasis prioritas
- Antrian pengiriman yang dapat disesuaikan
- Pembaruan batch
- Pembatasan rate (throttling dan debouncing)
- Operator fungsional (map, filter, dll.)
- Manajemen state global
Framework Reaktif Alternatif yang Disebutkan
- Apple's Combine
- RxSwift
- OpenCombine
- CombineX
- Property wrapper @Published dari SwiftUI
- Framework Observable berbasis macro baru dari Apple
Kekhawatiran Tentang Kompleksitas dalam Pemrograman Reaktif
Beberapa komentar menyinggung kekhawatiran yang lebih luas tentang pendekatan pemrograman reaktif di Swift. Seorang pengembang menyebutkan memiliki PTSD dari basis kode yang terlalu kompleks yang dibangun dengan pemrograman reaktif fungsional, secara khusus mereferensikan pendekatan MVVM Kickstarter. Ini menyoroti ketegangan yang sedang berlangsung di komunitas Swift antara pola reaktif yang kuat tetapi berpotensi kompleks dan pendekatan yang lebih sederhana dan lebih langsung.
Diskusi ini mencerminkan ekosistem yang semakin matang di mana pengembang menjadi lebih selektif tentang menambahkan dependensi baru, terutama ketika mereka tumpang tindih secara signifikan dengan solusi yang sudah ada. Seiring Swift terus berkembang, dengan Apple memperkenalkan pola baru seperti framework Observable berbasis makro, komunitas tampaknya mencari keseimbangan antara reaktivitas dan kesederhanaan.
Menariknya, ada beberapa kebingungan dalam diskusi, dengan satu komentator tampaknya keliru mengira Pledge sebagai framework autentikasi daripada solusi pemrograman reaktif, menyoroti tantangan dalam mengkomunikasikan tujuan framework baru dengan jelas dalam ekosistem yang padat.
Referensi: Pledge