Sapphire, sebuah pengelola paket eksperimental baru yang ditulis dengan Rust, telah muncul sebagai alternatif potensial untuk pengelola paket populer Homebrew di macOS. Meskipun masih dalam tahap alfa, proyek ini telah memicu diskusi signifikan di kalangan komunitas pengembang tentang masa depan pengelolaan paket di platform Apple dan manfaat menulis ulang alat-alat yang sudah mapan dengan bahasa yang lebih berperforma.
Motivasi di Balik Sapphire
Pencipta Sapphire, yang dikenal dengan nama alexykn dalam diskusi, awalnya mulai membangun alat ini untuk penggunaan pribadi. Tujuan utama mereka tidak selalu untuk bersaing dengan Homebrew tetapi untuk menciptakan fondasi bagi solusi pengelolaan paket dan sistem yang deklaratif untuk macOS. Pengembang tersebut mengungkapkan frustrasi dengan performa Homebrew ketika membungkus perintah-perintahnya, yang mendorong mereka untuk membangun Sapphire dari awal menggunakan Rust.
Saya ingin dan masih ingin, membangun solusi pengelolaan paket + sistem yang deklaratif di atasnya. Idenya adalah untuk mengenal Rust dengan itu. Memiliki basis yang ditulis dalam bahasa yang sama alih-alih membungkus perintah juga memberikan fleksibilitas lebih di sana.
Hal ini menyoroti pola umum dalam komunitas open-source, di mana pengembang sering membuat alat untuk memenuhi kebutuhan spesifik mereka sebelum alat tersebut berkembang menjadi solusi yang lebih luas.
Pertimbangan Performa dan Pendekatan Teknis
Banyak komentator berfokus pada perbandingan performa antara Sapphire dan Homebrew. Meskipun operasi Homebrew terkadang terasa lambat, beberapa pengguna dan bahkan pengelola Homebrew menunjukkan bahwa hambatan tersebut tidak selalu terkait dengan Ruby sebagai bahasa implementasi. Sebaliknya, mereka berasal dari keputusan arsitektur dan batasan kesopanan.
Salah satu pengelola Homebrew menjelaskan bahwa unduhan paralel tidak diimplementasikan di Homebrew bukan karena keterbatasan teknis tetapi karena kekhawatiran tentang membebani sumber unduhan dengan terlalu banyak permintaan bersamaan. Pertimbangan ini menjadi semakin penting seiring bertambahnya basis pengguna pengelola paket.
Sapphire saat ini mengimplementasikan unduhan dan instalasi paralel, yang berkontribusi pada keunggulan kecepatannya yang dirasakan. Proyek ini terutama berfokus pada dukungan instalasi bottle (paket yang telah dikompilasi sebelumnya) dan casks (aplikasi), yang mencakup mayoritas kasus penggunaan untuk pengguna macOS.
Resepsi Komunitas dan Permintaan Fitur
Respons komunitas terhadap Sapphire adalah campuran antusiasme dan skeptisisme. Banyak pengguna mengungkapkan frustrasi dengan terminologi Homebrew, yang menggunakan istilah terkait pembuatan bir seperti casks, kegs, dan cellars alih-alih terminologi pengelolaan paket yang lebih standar. Beberapa komentator mendesak pengembang Sapphire untuk mengadopsi konvensi penamaan yang lebih jelas.
Panjang nama perintah adalah poin perdebatan lainnya, dengan beberapa pengguna menyarankan bahwa sapphire terlalu panjang dibandingkan dengan brew dan merekomendasikan alternatif yang lebih pendek untuk meningkatkan pengalaman pengguna.
Beberapa pengguna juga meminta fitur yang saat ini tidak dimiliki Homebrew, seperti dukungan multi-pengguna yang lebih baik, instalasi per pengguna, dan pendekatan yang lebih deklaratif untuk pengelolaan paket. Permintaan ini menyoroti area di mana pengelola paket baru berpotensi membedakan dirinya dari Homebrew.
Status Pengembangan dan Peta Jalan
Sapphire secara eksplisit diberi label sebagai perangkat lunak alfa, dengan pengembang memperingatkan bahwa itu eksperimental, dalam pengembangan berat, dan mungkin tidak stabil. Kemampuan proyek saat ini termasuk instalasi dan penghapusan bottle, pengelolaan cask, unduhan dan instalasi paralel, resolusi dependensi otomatis, dan implementasi awal untuk membangun formula dari sumber.
Peta jalan mencakup implementasi perintah upgrade dan cleanup, menambahkan fitur reinstall, mendukung isolasi prefix, dan membuat pembantu inisialisasi. Pengembang telah transparan tentang kecepatan proyek, mencatat bahwa kemajuan mungkin lambat karena mereka bekerja pada proyek ini terutama selama akhir pekan di samping pekerjaan penuh waktu.
Meskipun Sapphire saat ini dapat menangani banyak tugas instalasi paket, proyek ini menghadapi tantangan signifikan dalam mereplikasi sepenuhnya fungsionalitas Homebrew, terutama seputar membangun paket dari sumber. Pengembang mengakui bahwa transpiler Ruby-ke-Rust lengkap akan berada di luar cakupan, menyarankan mereka mungkin akan menetap untuk deteksi sistem build otomatis berdasarkan struktur arsip sebagai gantinya.
Status Terkini dari Sapphire
- Pemasangan dan penghapusan instalasi botol
- Pemasangan dan penghapusan instalasi tong
- Unduhan dan instalasi paralel untuk kecepatan
- Resolusi dan instalasi dependensi otomatis
- Implementasi awal untuk membangun formula dari sumber
- Hanya mendukung ARM (dukungan x86 mungkin akan ditambahkan nantinya)
Struktur Proyek
sapphire-core
: Pustaka inti untuk pengambilan, resolusi dependensi, ekstraksi arsip, dll.sapphire-cli
: Antarmuka baris perintah yang membungkus pustaka inti
Peta Jalan
- Perintah
Upgrade
untuk memperbarui paket yang terinstal Cleanup
untuk unduhan lama, versi, dan cache- Perintah
Reinstall
untuk penuangan ulang yang cepat - Isolasi awalan: dukungan untuk
/opt/sapphire
sebagai tata letak mandiri - Pembantu
sapphire init
untuk memulai lingkungan - Perbaikan bug dan peningkatan stabilitas yang berkelanjutan
Konteks Lebih Luas dari Pengelolaan Paket
Diskusi seputar Sapphire menyoroti evolusi berkelanjutan dari pengelolaan paket di macOS. Homebrew sendiri menggantikan solusi sebelumnya seperti MacPorts dan Fink dengan menawarkan apa yang banyak dianggap sebagai pengalaman pengguna yang lebih baik, meskipun ada trade-off teknis.
Beberapa komentator mencatat bahwa pengelola paket ideal akan menggabungkan manfaat performa dari bahasa yang dikompilasi seperti Rust dengan fleksibilitas dan kemudahan kontribusi yang disediakan oleh sistem formula berbasis Ruby dari Homebrew. Yang lain menunjuk pada pendekatan alternatif seperti Nix atau pkgx (pengelola paket berbasis Rust lain yang sedang dikembangkan oleh pencipta asli Homebrew).
Seiring macOS terus berkembang, terutama dengan transisi ke Apple Silicon, jelas ada keinginan untuk solusi pengelolaan paket yang dapat beradaptasi dengan perubahan ini sambil mengatasi titik-titik masalah yang sudah lama ada.
Meskipun Sapphire masih dalam tahap awal dan menghadapi tantangan signifikan sebelum benar-benar dapat menggantikan Homebrew, pengembangannya mewakili ekosistem inovasi yang sehat yang membuat alat pengembang terus berkembang. Entah itu akhirnya berhasil sebagai pengganti Homebrew atau hanya memperkenalkan ide-ide yang meningkatkan lanskap pengelolaan paket yang lebih luas, proyek seperti Sapphire memainkan peran penting dalam mendorong kemajuan teknologi.
Referensi: Sapphire