- Mitchell Hashimoto dan istrinya berjanji menyumbang $300 ribu kepada Zig Software Foundation, sebagai dukungan terbuka terhadap pengembangan independen Zig dan operasional yayasan
- Donasi akan dibayarkan selama 2 tahun, masing-masing sebesar $150 ribu per tahun, dan cicilan pertama sudah diserahkan
- Hashimoto telah mengikuti Zig sejak 2019, mulai menggunakannya pada 2021, dan sejak 2022 terus menulis serta berkontribusi pada compiler
- Proyek terminal Ghostty yang ia perkenalkan pada 2023 juga ditulis dengan Zig, dan saat ini sebagian besar waktu coding-nya digunakan untuk Zig
- Zig masih perlu menempuh jalan menuju stabilitas dan adopsi industri yang lebih luas, tetapi Hashimoto menilai proyek ini memiliki komunitas yang kuat dan model pendanaan yang berkelanjutan, serta mendorong orang untuk berdonasi
Janji donasi $300 ribu
- Mitchell Hashimoto dan istrinya berjanji akan menyumbang $300 ribu kepada Zig Software Foundation
- Pembayaran akan dilakukan selama 2 tahun, masing-masing $150 ribu per tahun
- Cicilan pertama sudah diserahkan
- Dalam pengumuman terpisah, ZSF membahas misi yayasan dan penggunaan dana secara rinci
Alasan Hashimoto mendukung Zig
- Hashimoto telah mengikuti proyek Zig sejak sekitar 2019, dan pada 2021 secara terbuka membagikan antusiasmenya terhadap proyek tersebut
- Ia mulai menggunakan Zig pada paruh akhir 2021, lalu sejak awal 2022 mulai menulis artikel terkait Zig dan berkontribusi pada compiler
- Setelah itu, ia terus melanjutkan puluhan kontribusi kode ke repositori Zig
- Proyek terminal Ghostty yang ia perkenalkan pada 2023 ditulis dengan Zig, dan saat ini Hashimoto menghabiskan sebagian besar waktu coding-nya untuk Zig
Penilaian terhadap Zig dan ZSF
- Hashimoto memandang Zig sebagai proyek perangkat lunak independen yang dapat menciptakan perubahan dan dampak
- Zig dimulai sebagai proyek penuh semangat dan hingga kini tetap mempertahankan karakter tersebut, dengan operasional proyek dan komunitas yang dinilainya kuat
- Model pendanaannya transparan dan berkelanjutan, sementara secara teknis dinilai ambisius dan inovatif, tetapi tetap praktis dan realistis
- Meski masih memerlukan waktu untuk mencapai stabilitas dan adopsi industri yang lebih luas, ia menilai jalur dan peluang untuk mencapainya sudah jelas
- Sekitar sepertiga pendanaan ZSF berasal dari donasi individu, dan ia mendorong orang yang mampu untuk berdonasi
1 komentar
Komentar Hacker News
Kalimat, “Kegiatan amal kami biasanya dilakukan secara tertutup, tetapi mengingat latar belakang saya, saya membuat pengecualian karena saya pikir dukungan publik terhadap Zig bisa benar-benar membantu proyek ini,” terasa cukup membekas
Sulit dijelaskan dengan tepat, tetapi ada kepantasan dasar di dalamnya yang layak diapresiasi
Apakah itu berarti dukungan publik tidak membantu untuk kegiatan amal lainnya? Kalau begitu, saya jadi penasaran kegiatan-kegiatan itu seperti apa. Tentu saja kalau itu amal dengan uang sendiri, pada akhirnya bebas saja mau dilakukan bagaimana, tetapi ungkapannya terdengar agak aneh
Dalam kasus ini, dukungan publik tersebut bahkan bisa menarik kontribusi tambahan yang lebih besar daripada nilai donasinya sendiri
Jika ada orang dari Zig Foundation yang membaca ini, saya sangat menyarankan untuk membuat papan lowongan kerja
Di tempat yang punya pembaca untuk bidang tertentu, itu nyaris seperti sumber pemasukan gratis
Mungkin ini pertanyaan bodoh, tetapi saya seorang pengembang web jadi biasanya hanya bersinggungan dengan pemrograman sistem/tingkat rendah karena rasa ingin tahu
Orang-orang sering mengatakan agar semua hal yang memungkinkan dipindahkan ke bahasa yang aman terhadap memori, tetapi Zig tampaknya tidak memiliki jaminan seperti itu. Jika Zig adalah bahasa baru, maka penggunaan utamanya kemungkinan untuk proyek baru; kalau begitu bukankah seharusnya mulai dengan bahasa yang aman terhadap memori? Jika keunggulan Zig adalah “lebih modern daripada C dan lebih sederhana daripada Rust”, saya paham daya tariknya, tetapi kalau keamanan memorinya kurang, bukankah itu melemahkan keunggulan tersebut?
Jika tujuan akhirnya hanya keamanan, JavaScript pun sudah cukup. Rust yang aman memang menjamin keamanan memori, jadi itu perbaikan besar dalam pemrograman sistem, tetapi tidak selalu menjadi jawaban akhir. Bergantung pada aplikasinya, selalu ada kompromi, dan secara pribadi saya merasa yang lebih penting adalah apakah keamanan bisa dicapai dengan mudah, bukan sekadar keamanan yang terjamin. Masalah C dan C++ adalah membuatnya aman itu terlalu sulit
unsafe, jadi pada praktiknya fitur keamanan memori Rust pun dimatikanApakah Zig benar-benar kurang aman dibanding Rust masih perlu dilihat lagi. Apa pun pilihannya, untuk membuat program aman tetap perlu banyak pengujian, dan Rust juga tidak secara ajaib menghilangkan semua bug. Di Zig, jika diuji cukup banyak dalam mode debug, sebagian besar bug keamanan memori kemungkinan bisa tertangkap. Meski begitu, kalau saya membuat sesuatu seperti browser web, saya mungkin akan memakai Rust
Lihat saja industri game, atau industri perangkat lunak secara umum pada masa ketika perangkat lunak harus dibakar ke disk untuk didistribusikan. Masalah saat ini adalah kompleksitas bahasa telah membesar, dan tingkat keahlian rata-rata pengembang perangkat lunak menurun. Google membuat Go sebagian untuk membantu mengatasi masalah ini, dan Rust adalah bahasa lain yang menempatkan keamanan memori sebagai inti desainnya. Alasan lain Rust lebih cocok untuk menulis program yang lebih aman adalah karena Rust jauh kurang kompleks daripada C++. Memang Rust juga makin kompleks, tetapi untungnya komunitas Rust sudah sangat menanamkan konsep keamanan memori, jadi meskipun bahasanya bertambah rumit, keunggulan itu dan kebiasaan para pengembangnya akan tetap bertahan
Zig juga pilihan yang baik jika menekankan keamanan. Ia menyederhanakan banyak hal lewat sintaks seperti
defer, dan menyediakan berbagai target eksekusi serta alat untuk menangkap masalah keamanan memori selama pengembangan. Itu bukan sesuatu yang dipaksakan kompilator, melainkan ditangkap saat runtime pada build pengembangan/non-ReleaseFast, tetapi tetap merupakan perbaikan dibanding C/C++Zig punya cukup banyak alat dan pemeriksaan keamanan memori yang tidak dimiliki C. Keamanan itu sebuah spektrum. C kurang aman daripada C++, C++ kurang aman daripada Zig, Zig kurang aman daripada Rust, Rust kurang aman daripada Java, dan Java kurang aman daripada Python. Perilaku tak terdefinisi dan kerusakan memori tetap mungkin terjadi di semuanya; perbedaannya adalah seberapa mudah hal itu terjadi
Namun Zig juga belum merupakan bahasa yang selesai, jadi sulit menyimpulkannya sekarang. Zig punya fitur keamanan memori yang bagus, dan meskipun tidak setara JavaScript atau Rust, juga tidak sama dengan C. Saat terakhir saya cek, use-after-free adalah masalah besar, dan jika ini tidak bisa diselesaikan, saya rasa Zig tidak punya masa depan
JavaScript memang bahasa yang benar-benar aman terhadap memori, tetapi runtime dan tingkat abstraksinya tidak cocok untuk pemrograman sistem. Untuk pemrograman sistem, menurut saya dibutuhkan sesuatu yang pada dasarnya aman terhadap memori tetapi punya jalan keluar, dan berada pada tingkat abstraksi rendah kira-kira satu tingkat di atas PDP-11 virtual yang selama ini menjadi target implisit kompilator dan CPU. Bahasanya harus memungkinkan programmer berpikir sesuai model eksekusi CPU tanpa tenggelam dalam detail, dan juga harus sangat baik dalam interoperabilitas dengan C
Menurut saya Rust berhasil dalam hal pertama. Kelemahannya ada pada yang kedua. Fitur tingkat rendah memang ada, tetapi tertimbun di bawah tumpukan kompleksitas fitur bahasa. Selain itu, Rust tidak mengizinkan sebagian pola manajemen memori yang sepenuhnya aman, sehingga
unsafejadi terlalu sering digunakan, atau kodenya harus dipelintir agar sesuai dengan ruang solusi, bukan ruang masalahZig lemah pada yang pertama. Ada fitur yang bagus, tetapi juga ada celah besar. Sebaliknya, ia cukup kuat pada yang kedua. Arah yang saya harapkan adalah Zig menyediakan keamanan memori bawaan, tetapi dengan fleksibilitas yang jauh lebih tinggi daripada Rust, sambil tetap mempertahankan keunggulannya dalam abstraksi rendah dan interoperabilitas dengan C
Setelah melihat kabar bahwa mereka baru-baru ini beralih ke self-hosting, saya merasa ini proyek yang sangat efisien dan terutama tidak akan membuang-buang dana donasi
[1] https://kristoff.it/blog/zig-self-hosted-now-what/
[2] https://ziglang.org/news/migrate-to-self-hosting/
“Sayang, ada bahasa pemrograman yang benar-benar aku suka dan ingin aku ceritakan”
“Hah?…”
“Aku benar-benar, benar-benar suka bahasa itu, jadi aku ingin berdonasi sedikit…”
“……mulai lagi……”
“Bagus! Ayo naik Cirrus SF50 Vision kita dan antar langsung ke Andrew Kelley”
Jelas ini kabar baik, tetapi kalau mau dilihat dari perspektif lain, jumlah ini kira-kira setara dengan gaji tahunan 0,75–1 orang pengembang berpengalaman yang menangani compiler
Ini cuma perkiraan, tetapi Microsoft mungkin menghabiskan 10–20 kali lipat jumlah itu setiap tahun hanya untuk TypeScript, dan jauh lebih banyak lagi untuk C++/C# dan sebagainya
Tentu saja biaya pengembang tidak berhenti di gaji saja. Namun, untuk pekerjaan yang mirip dengan pengembang compiler yang menangani compiler standar ANSI di perusahaan teknologi besar, rasanya pekerjaan nyata itu cukup tidak menyenangkan dibanding pekerjaan yang lebih bebas, sehingga terasa ada banyak unsur tunjangan risiko di dalamnya
Jika ada pendanaan yang memadai, itu bisa menjadi katalis yang memungkinkan mereka tidak perlu lagi kerja sampingan atau hanya bekerja malam dan akhir pekan
Sejujurnya, aku sangat menantikan Zig
Bahasa ini ramping tanpa embel-embel, dan bukan bahasa yang dibuat oleh penghuni menara gading yang tidak peduli pada kegunaan nyata. Ini juga bukan bahasa yang dirancang oleh tim doktor seperti Haskell, tetapi jelas tampak terinspirasi oleh ide-ide berguna dari Rust, Haskell, dan lainnya. Menulis kode dengan Zig sepertinya akan cukup menarik
Jaminan keamanan memorinya mungkin tidak selengkap Rust, tetapi suatu hari akan menyenangkan jika bisa melihat Zig di Linux Kernel. Para programmer kernel C lama mungkin akan lebih mudah beradaptasi dengan Zig daripada Rust
zig fmtKalau preferensi gaya dipaksakan, rasanya jadi pahit. Itu terasa seperti sikap yang tidak menghormati pengembang yang memakai bahasa sebagai alat. Bisa juga itu menjadi sinyal adanya masalah yang lebih dalam terkait partisipasi komunitas dan keterbukaan terhadap sudut pandang lain, dan Zig memang tampak memiliki masalah seperti itu[0]
Perusahaan yang butuh konsistensi kode cukup menjalankan linter, dan untuk proyek akhir pekan aku sama sekali tidak peduli pada apa pun selain preferensi gayaku sendiri. Ini soal apakah Zig adalah bahasa untuk orang dewasa atau bukan. Kalau toh akan dipaksa menulis dengan cara tertentu, tidak ada alasan untuk tidak memakai Rust yang sekaligus memberi keamanan memori secara gratis
[0] https://github.com/ziglang/zig/issues/16270