- Di tengah Anthropic yang mengusung akhir dari software engineering sebagai nilai masa depan, peralihan Bun dari Zig→Rust juga dikritik karena dimanfaatkan dalam narasi promosi bahwa AI dapat menggantikan engineering
- Bun menyebut bug memori sebagai alasan peralihan, tetapi kurang menyajikan perbandingan alternatif beserta kelebihan dan kekurangannya, serta tidak mengungkap biaya seperti kompilasi Rust yang lambat, sehingga bisa terlihat sebagai pembenaran setelah kejadian
- Ada pula opsi untuk mengoperasikan Zig dengan cara berbeda, dan TigerStyle dari TigerBeetle menunjukkan contoh pencegahan use-after-free melalui alokasi memori statis dan pengujian simulasi
- Pendekatan memigrasikan per berkas ke unsafe Rust memang masuk akal karena mengurangi risiko dan memungkinkan perancangan ulang di masa depan, tetapi sikap yang menerima konversi AI berskala jutaan baris sambil mempermasalahkan beberapa baris kode manajemen pointer yang dibaca manusia terasa kurang konsisten
- Karena harness agen, borrow checker Rust, aturan keterbacaan, dan tinjauan manusia tetap diperlukan, adopsi coding agent dan penghapusan software engineering bukanlah pilihan yang sama
Akhir software engineering yang diusung Anthropic
- Anthropic secara aktif mendorong narasi bahwa setelah coding, software engineering dan sebagian besar pekerjaan manusia juga akan lenyap
- Perusahaan ini telah menggalang investasi sebesar 132 miliar dolar AS dan mendekati IPO dengan valuasi perusahaan lebih dari 1 triliun dolar AS, tetapi dalam situasi belum mampu menunjukkan profitabilitas, mereka harus menjual pengaruh masa depan yang masih hipotetis
- Karena kepentingan seperti ini, Anthropic perlu dipandang sebagai narator yang tidak dapat diandalkan (unreliable narrator), dan yang penting bukan hanya benar-tidaknya pesan mereka, tetapi juga pengaruhnya terhadap penilaian para eksekutif, pemimpin dunia, dan pengelola dana pensiun
- Narasi AI memengaruhi keputusan arsitektur, produk, dan penempatan tenaga kerja, serta membuat penilaian dingin menjadi sulit di tengah ketakutan PHK, peringatan akan tertinggal, dan Doom Trolling
- Saat menilai AI di bidang software, diperlukan tinjauan skeptis yang mempertimbangkan kepentingan dan tujuan promosi Anthropic
Peralihan Bun dari Zig→Rust dan penjelasan yang terlambat
- Anthropic/Bun baru memberi penjelasan dua bulan setelah menggabungkan keputusan memindahkan Bun yang ditulis dalam Zig ke Rust ke cabang utama
- Untuk proyek infrastruktur berskala besar, biasanya arah seperti ini dijelaskan terlebih dahulu
- Selama penjelasan itu terlambat, judul seperti Anthropic’s Bun Rust rewrite merged at speed of AI menyebarkan kesan bahwa AI menyelesaikan penulisan ulang tersebut dengan cepat
- Pencipta Zig, Andrew Kelley, menerbitkan bantahan dan, dengan nada yang luar biasa blak-blakan, mengkritik teknologi Bun serta operasional organisasinya
- Ada beban reputasi karena hal ini bisa menjadi preseden bahwa pemimpin bahasa sebelumnya menyerang sampai kekurangan pribadi hanya karena sebuah proyek berganti bahasa
- Sebagian menyebutnya “meltdown”, tetapi ada juga ruang untuk melihatnya sebagai tindakan menunjuk masalah yang memang perlu disorot secara terbuka
Kriteria untuk menilai kritik yang blak-blakan
- Ucapan benar dalam Buddhisme (right speech) memandang bahwa setiap ucapan harus memenuhi lima kriteria berikut
- Apakah itu benar
- Apakah itu membantu
- Apakah itu tepat waktu
- Apakah itu ramah
- Apakah itu berangkat dari keramahan
- Respons Andrew Kelley termasuk ucapan yang benar tetapi tidak ramah, dan pokok perdebatannya adalah apakah masalah itu memang perlu ditunjukkan secara terbuka meskipun keluar dari kesopanan lazim
Hubungan kebijakan kontribusi Bun, Zig, dan AI
- Bun adalah runtime TypeScript yang kerap dianalogikan sebagai NodeJS yang lebih cepat, sedangkan Zig adalah bahasa pemrograman sistem yang kerap dianalogikan sebagai C modern
- Hingga baru-baru ini Bun ditulis dalam Zig dan merupakan salah satu codebase Zig terbesar
- Kebijakan kontribusi AI kedua proyek ini bertolak belakang
- Bun menyatakan kontribusi kodenya hampir 100% AI
- Zig tidak mengizinkan kontribusi AI
- Setelah Anthropic mengakuisisi Bun, pendirinya Jarred Sumner menjalankan eksperimen agen berskala besar untuk memindahkan kode Zig ke unsafe Rust, dan hasilnya digabungkan beberapa hari kemudian menjadi versi resmi
- Di antara pihak terkait, tampaknya tidak ada yang menuntut Bun tetap dipertahankan dalam Zig, dan perdebatan berfokus pada alasan serta cara promosinya, bukan pada peralihan itu sendiri
- Peralihan bahasa berskala besar dengan agen adalah eksperimen teknis yang layak dicoba lagi dalam situasi yang tepat
Tiga interpretasi atas keputusan yang sama
- Bagi pengembang yang hendak memilih antara Zig dan Rust, peristiwa ketika salah satu pengguna Zig terbesar membalik keputusannya menjadi bahan pertimbangan penting
- Interpretasi Anthropic/Bun adalah bahwa mereka telah mencoba semua cara yang masuk akal, tetapi dengan Zig bug memori sulit ditangani
- Menurut interpretasi Andrew Kelley, codebase menjadi berantakan karena keputusan engineering Bun, termasuk AI agent yang terlalu banyak mengambil alih penulisan dan review kode
- Kemungkinan yang lebih biasa adalah bahwa memang ada masalah memori nyata dengan beberapa solusi, tetapi manajemen lebih mudah memilih penulisan ulang dalam Rust
- Mereka bisa mempromosikan kemampuan model Fable baru
- Anthropic sudah menggunakan Rust
- Proyek Zig secara terbuka menentang penggunaan produk Anthropic
- Peralihan ke Rust bisa saja masuk akal dari sisi bisnis, tetapi promosinya berfokus pada betapa kuatnya AI hingga mampu melakukan penulisan ulang
- Fakta bahwa AI tidak menangkap use-after-free sejak awal bertentangan dengan narasi ini
- Hiperbola melalui megafon Anthropic membuat penilaian Jarred Sumner dan Andrew Kelley dibandingkan secara langsung, dan tanpa disengaja juga dapat memengaruhi reputasi Zig
Mengapa kredibilitas pribadi masuk ke perdebatan teknis
- Pihak pertama yang harus dimintai pertanggungjawaban bukan pendiri Bun secara pribadi, melainkan Anthropic yang memanfaatkan peristiwa ini dalam narasi AI
- Karena Anthropic menggunakan kredibilitas Jarred Sumner untuk memperkuat pesannya, untuk menanggapinya mau tidak mau penilaian dan tindakannya juga harus dievaluasi
- Idealnya hanya isu teknis yang dibahas, tetapi jika pesan Anthropic lebih mengandalkan tontonan dan promosi ketimbang perbandingan teknis, kredibilitas pribadi pun ikut masuk ke perdebatan
- Jika sekadar merangkum ucapan dan tindakan publik pihak terkait tampak seperti fitnah, tindakan itu sendiri mungkin juga merupakan bagian dari masalah
Crunch permanen dan lingkungan organisasi Bun
- Pengumuman rekrutmen Bun pada 2022 memperingatkan bahwa 9 bulan pertama akan sangat berat, dan tidak cocok bagi orang yang menekankan work-life balance dalam bentuk banyak waktu tidak bekerja
- Mode crunch permanen merugikan kesehatan maupun produktivitas, dan hal ini berulang kali dikonfirmasi dalam riset empiris tentang knowledge work
- Sebagai materi terkait, bagian Human Factors dalam Empirical Software Engineering dapat dirujuk
- Manajer yang harus dipilih adalah manajer yang melindungi anggota tim agar bisa tidur pada malam hari, bukan manajer yang membanggakan kerja 90 jam per minggu
- Penilaian yang menurut Andrew Kelley ia dengar dari pihak terkait tim Bun dapat diringkas sebagai kurang komunikasi, ekspektasi tidak realistis, empati rendah, dan kurang pengalaman, tetapi ada keterbatasan karena itu bersifat kabar dari orang lain
- Meski begitu, penilaian ini juga sejalan dengan lingkungan kerja ekstrem yang diungkapkan secara publik dalam pengumuman rekrutmen
- Teknologi yang bagus tetap bisa lahir dari lingkungan kerja yang buruk, dan Bun sendiri adalah alat yang cukup berguna dan menarik
- Penilaian bahwa kodenya banyak bug dan sulit dipelihara bukan hanya kritik eksternal, melainkan juga kondisi yang Bun sendiri jadikan dasar untuk peralihan ke Rust
Nilai praktis pendekatan porting unsafe Rust
- Detail teknis proses transisi ini layak digunakan kembali dalam proyek modernisasi lain
- Bun tidak mendesain ulang dari awal dengan Rust yang aman, melainkan melakukan porting per file ke unsafe Rust
- Mempertahankan struktur yang ada untuk mengurangi risiko awal saat transisi
- Menyiapkan fondasi untuk meningkatkan keamanan dan mendesain ulang setelahnya
- Otomatisasi berbasis AI mungkin membuat pilihan bahasa lebih mudah dibalik dibanding masa lalu, tetapi penulisan ulang otomatis masih memiliki kelebihan, kekurangan, dan perbedaan makna
- Berbagai teknik penulisan ulang juga dapat dikombinasikan dan diperkuat dengan Formal Methods
- TRACTOR dari DARPA adalah program riset untuk memindahkan semua kode C ke Rust, dan laporan evaluasi yang dipublikasikan membahas kondisi terkini teknologi konversi otomatis
- Meski agen memberi lebih banyak pilihan untuk kode lama, penilaian dan komunikasi tetap diperlukan untuk menetapkan tujuan modernisasi
- Referensi terkaitnya adalah Kill It With Fire karya Marianne Bellotti
Dokumen keputusan teknis yang banyak kekurangannya
- Untuk menjelaskan keputusan teknis, setidaknya dibutuhkan tiga unsur
- Apa motivasinya
- Alternatif apa saja yang dipertimbangkan
- Apa kelebihan dan kekurangan tiap alternatif
- Dokumen Richard Feldman yang merangkum alasan memindahkan compiler Roc dari Rust ke Zig adalah contoh perbandingan yang memuat ketiga unsur tersebut
- Klarifikasi Bun menyajikan motivasi berupa bug memori, tetapi hanya membahas sebagian alternatif yang dipertimbangkan, dan perbandingan kelebihan-kekurangan pada dasarnya absen
- Terutama jika kelebihan dan kekurangan dihilangkan, keputusan itu bisa tampak seperti rasionalisasi setelah fakta, seolah jawaban sudah ditentukan sejak awal lalu dicari pembenarannya
- Tidak tertutup kemungkinan ada alasan lain yang tidak dipublikasikan, dan untuk meningkatkan kredibilitas keputusan, biaya yang merugikan pun perlu diungkap bersama
Perbandingan yang hanya mencantumkan keunggulan Rust
- Bagian “Bun is better in Rust” hanya membahas manfaat transisi ke Rust dan hampir tidak menyajikan biayanya
- Codebase Rust berskala besar umumnya membayar biaya berupa waktu kompilasi yang lambat sebagai imbalan atas keamanan
- Bun dulu menganggap kecepatan kompilasi penting dan mencoba mem-fork compiler Zig untuk meningkatkan performa 4 kali lipat
- Jika porting ke Rust membuat waktu build kontributor bertambah, hal itu perlu dipublikasikan, dan kredibilitas keputusan akan meningkat bila dijelaskan mengapa keamanan lebih penting daripada biaya tersebut
- Peningkatan lain yang terjadi setelah transisi juga bisa tercampur ke dalam daftar manfaat penulisan ulang Rust, sehingga efek langsung perubahan bahasa dapat dibesar-besarkan
Opsi style guide yang tidak dikaji
- Di Bun, bug memori bukan satu-satunya penyebab cacat, tetapi menurut penghitungan pribadi, bug itu cukup sering hingga membutuhkan 4 commit perbaikan per minggu
- Setiap bug memori berarti ada konvensi tentang cara objek dibuat, dimiliki, dan dibebaskan yang dilanggar di suatu tempat, sehingga langkah pertama yang bisa dikaji adalah memperjelas perilaku yang diharapkan untuk tiap situasi
- Manajemen memori manual memperluas cakupan konvensi, tetapi apa pun bahasanya, panduan penggunaan yang efektif tetap diperlukan; Rust pun memiliki API style guide
-
Alternatif yang ditunjukkan TigerBeetle
- Codebase Zig representatif lainnya, database transaksi finansial TigerBeetle, tidak mengalami masalah bug memori dan tampak sebagai salah satu database dengan keandalan tertinggi
- Keandalannya bertumpu pada TigerStyle dan simulation testing
- TigerStyle bukan sekadar gaya penulisan kode, melainkan filosofi engineering yang mengikat desain, memori, dan pengujian
- Semua memori dialokasikan secara statis saat startup
- Setelah inisialisasi, alokasi dinamis atau realokasi setelah pembebasan tidak diizinkan
- Ini mencegah use-after-free sambil menghindari perubahan performa yang sulit diprediksi
- Dengan mempertimbangkan pola penggunaan memori yang mungkin sejak tahap desain, pendekatan ini mendorong struktur yang lebih sederhana, lebih cepat, serta lebih mudah dinalar dan dipelihara
- Tidak semua aplikasi bisa menerapkan cara ini apa adanya, tetapi ini menunjukkan bahwa kebijakan memori terhubung dengan keputusan desain secara keseluruhan
-
Celah yang tersisa dalam klarifikasi Bun
- Setelah menyebut TigerStyle dan style guide C++ Google sepanjang 31.000 kata, Bun menyimpulkan bahwa style guide sulit ditegakkan dan secara tradisional bergantung pada code review, linter, serta static analyzer
- Namun Bun tidak membahas style guide apa yang sebenarnya digunakan, mengapa gagal, dan bagaimana itu diperbaiki selama 4 tahun
- Jika masalah memori terus terjadi dalam proyek besar, penting untuk mengetahui apakah opsi menggunakan bahasa saat ini dengan cara berbeda telah diuji secara serius, tetapi bukti yang mendukung hal itu masih kurang
- Cara operasi di mana satu orang menyimpan semua konteks di kepalanya dan tidak mengadakan rapat membuat pembuatan konvensi eksplisit dan desain bersama menjadi sulit
Kontradiksi antara review agen dan style guide
- Bun menilai style guide sulit ditegakkan, tetapi juga menyatakan bahwa mereka menulis
PORTING.mduntuk migrasi dan agen meninjau seluruh kode hasil penulisan ulang berdasarkan pedoman yang ketat - Karena
PORTING.mditu sendiri adalah style guide yang dikhususkan untuk cakupan transisi, jika review agen berhasil, maka masalah penegakan pedoman sebenarnya sudah terpecahkan - Dalam kondisi yang tepat, review agen bisa bekerja, tetapi harus didahului aturan dan metode peninjauan yang dirancang dengan cukup matang
- Upaya mental yang sama juga bisa saja dicurahkan untuk mendesain ulang kode Zig dan memperkuat konvensinya, tetapi Bun memilih penulisan ulang daripada re-arsitektur
- Karena berbagai alasan yang tidak dipublikasikan, penulisan ulang mungkin merupakan pilihan yang benar, tetapi berdasarkan klarifikasi saat ini, perbandingan alternatifnya belum memadai
Penulisan ulang sejuta baris dan tiga baris kode pointer
- Bun menilai bahwa untuk menampilkan ekspektasi ownership pada level tipe di Zig, dibutuhkan kode tambahan seperti
SharedPtr(TCPSocket)danderef(), sehingga kurang praktis dibanding penggunaan pointer yang ada - Dalam contoh ini, kira-kira tiga baris kode bertambah untuk memperjelas penerusan pointer pada batas antarmuka
- Menerima PR buatan AI berskala sejuta baris yang sulit ditinjau, tetapi menolak beberapa baris yang memperjelas ownership pointer karena alasan keterbacaan, menunjukkan sikap yang kurang konsisten
- Jarred Sumner pernah menyatakan bahwa selama berbulan-bulan manusia tidak mengetik kode secara langsung
- Jika kode bukan untuk manusia, alasan bahwa wrapper
SharedPtrtidak enak dilihat menjadi lemah; jika kode memang untuk manusia, keterbacaan, kemudahan review, dan maintainability tetap harus dipertimbangkan - Perusahaan AI enggan mengakui bahwa keterbacaan kode masih penting, tetapi menyangkalnya mungkin cocok dengan narasi bahwa software engineering sudah berakhir, namun bertabrakan dengan realitas maintenance
- Ada juga benchmark yang menunjukkan bahwa coding agent pada dasarnya dapat memperburuk maintainability
Peristiwa yang sama menunjukkan bahwa “AI saja tidak cukup”
- Penulisan ulang agen berskala besar pada Bun tidak hanya merupakan peningkatan teknis, tetapi juga menjalankan fungsi bisnis bagi Anthropic untuk mempromosikan pesan bahwa “AI saja sudah cukup”
- Namun, kasus yang sama juga bisa ditafsirkan sebaliknya
- Karena LLM saja tidak cukup, ia dibungkus dengan harness agen
- Karena AI saja tidak dapat menjamin keamanan memori, Rust borrow checker dipilih
- Karena manusia harus membacanya, keterbacaan wrapper pointer menjadi perhatian
- Karena manusia harus memeliharanya, struktur kode yang sudah ada dan familier ditekankan
- Project Bunsen menemukan 50 bug pada Bun versi Zig melalui pendekatan hibrida
- Pengelola open source sedang menghadapi beban yang ditimbulkan oleh AI slop, masalah verifikasi kontributor, kebijakan penyaringan kontribusi AI, dan penataan kebijakan AI generatif
- Dengan asumsi bahwa masalah yang dibuat oleh agen pun bisa diselesaikan dengan lebih banyak agen, praktik membeli token alih-alih alat yang lebih baik dan menempelkan
SKILL.mdalih-alih mempelajari teknologi makin meluas - Menyebut sesi agen paralel sebagai Team, alih-alih memahami psikologi tim perangkat lunak, mencampuradukkan organisasi manusia dengan sesi eksekusi otomatis
Adopsi agen coding dan pembuangan rekayasa adalah dua hal berbeda
- Kampanye Anthropic tentang berakhirnya software engineering dapat menjadi bumerang bagi pihak yang membuat maupun yang menggunakan alat AI
- Meski mengadopsi agen coding, tidak perlu menjadikan Dark Software Factory, tempat manusia tidak memahami kode, sebagai model ideal
- Tujuannya adalah membangun hal yang diinginkan orang dan membuatnya bekerja dengan benar, sementara gelembung AI dapat menekan orang untuk membuat hal yang tidak diinginkan dengan kualitas rendah
- Diperlukan arah yang memanfaatkan AI tanpa mengorbankan penilaian, pembelajaran, komunikasi, keterbacaan, dan kemudahan pemeliharaan
1 komentar
Opini Hacker News
Tulisan ini punya banyak poin bagus, tetapi mengingatkan pada proyek-proyek hasil AI yang ditinggalkan dalam beberapa bulan. Nilai sebuah proyek terletak pada seberapa banyak ia telah teruji di praktik nyata, bukan pada jumlah kode yang dihasilkan, dan kode lama yang matang lebih baik daripada penulisan ulang baru
Codebase Zig yang ada sudah teruji, sedangkan penulisan ulang Rust hampir tidak punya verifikasi selain lolos tes; jika itu terjemahan literal per berkas dengan
unsafe Rust, tidak jelas juga apa yang lebih baik dibanding titik awalnya, Zig. Setelah itu barulah bermakna jika dipindahkan ke Rust yang aman dan divalidasi oleh lingkungan produksi serta banyak penggunaPada dasarnya Bun seperti sudah di-fork, tetapi tidak penting mana yang bertahan antara versi Zig dan versi Rust, dan tidak ada alasan menganggap ini sebagai masalah kecocokan Zig
Saya, programmer biasa, juga memikirkan puluhan ide keren setiap hari, tetapi hanya sangat sedikit yang tahan ditelaah, dan beberapa hari kemudian bahkan yang sedikit itu pun tampak tidak layak diusahakan. Ide sejak dulu murah, dan sekarang proof of concept pun menjadi murah, jadi saya tidak tertarik pada Show HN yang bahkan belum diinvestasikan sebulan
Kubu Zig tampaknya khawatir Zig mungkin sejak awal adalah bahasa tanpa masa depan, karena tidak punya keunggulan yang cukup atas C sehingga tidak dipakai untuk penggunaan serius, bahkan proyek perwakilannya pun pergi. Jika mencari
segfaultdi pelacak isu Zig, Anda bisa memahami mengapa utilitas masa depannya diragukan di hadapan alternatif seperti Rustunsafeyang jelas dan terbatas cakupannya, dan itu bisa diperbaiki satu per satu; hal ini lebih baikIni bukan pengelolaan pesan untuk menggurui kubu anti-AI
Masalah yang lebih besar bukan sekadar Andrew berbicara blak-blakan, melainkan sikap bermuka dua dalam tulisan itu: jelas-jelas serangan personal tetapi mengklaim bukan demikian
Setelah membaca tulisan ini, saya jadi tidak ingin membuat apa pun dengan Zig. Apa pun keputusan teknis yang diambil, BDFL seumur hidup Zig bisa menulis tulisan seperti ini; sulit membayangkan pimpinan komunitas lain seperti Python atau Rust bertindak seperti itu
Sebagian orang melihat Andrew menyerang Bun, dan saya bisa melihat reaksi terhadap Andrew sebagai serangan personal. Jika menyingkirkan prasangka, kita harus melihat kedua pihak sama-sama salah atau tidak ada yang salah; kita perlu sadar bahwa saat menilai situasi dari jauh, prasangka pribadi memberi pengaruh yang terlalu besar
Saya ingin memihak Andrew. Dari sudut pandang seseorang yang mengikuti pekerjaan Sumner selama bertahun-tahun, kritik Kelley, walaupun tidak ramah, sebagian besar benar; meski hasilnya berguna dan keren, dari awal hingga akhir itu lebih dekat dengan penggunaan pengaruh untuk promosi diri
Saya sendiri mengembangkan dengan agen 8 jam sehari dan sudah mendorong tim memakai Rust dan Deno alih-alih Node, tetapi penulisan ulang ini punya justifikasi yang lemah dan terlihat sebagai kelanjutan dari kampanye PR panjang yang sukses dijalankan Dario dan kawan-kawan. Andai ungkapannya lebih sopan, itu akan diterima dengan baik, tetapi saya menghargai bahwa ia menyampaikan pikiran jujurnya alih-alih tulisan yang ditulis tim PR
Penjelasan bahwa interaksi dengan garbage collector JavaScript menimbulkan kesulitan unik bagi Bun itu berguna, tetapi Andrew sama sekali tidak membahasnya. Penjelasan bahwa kode baru diverifikasi dengan rangkaian tes yang ada juga menjernihkan salah paham saya yang mengira tes pun diterjemahkan dengan vibe coding sehingga tidak bisa dipercaya. Fakta bahwa tes tidak menangkap semua bug berlaku untuk semua perangkat lunak, termasuk Zig
Pada akhirnya, ini menyebar karena benturan antara pandangan bahwa bahasa yang tidak aman memori menciptakan biaya cacat yang sangat besar dan respons “tingkatkan kemampuan agar tidak menulis bug”, ditambah perdebatan AI, keterlibatan Anthropic, serta gaya bicara Andrew ala Linus
Saya ragu apakah kita membaca tulisan Anthropic dan Andrew Kelley dengan cara yang sama. Anthropic bukan perusahaan yang menjual bahasa pemrograman, dan tulisan tentang penulisan ulang Bun dengan Rust berisi banyak detail teknis yang menunjukkan bagaimana produk menjadi lebih baik bagi pengguna akhir
Sebaliknya, tanggapan dari pihak Zig lebih terasa seperti kolom tajam yang penuh serangan pribadi. Saya memakai Codex dan tidak punya kepentingan apa pun di Zig maupun Rust, jadi posisi saya hanya mengamati dari luar
Selain itu, saat mempromosikan penulisan ulang yang sukses, orang sering menyembunyikan faktor-faktor yang merugikan narasi, seperti seberapa buruk kode lama, dan kali ini pun ada aspek-aspek penting yang terlewat
Tulisan Andrew Kelley (https://andrewkelley.me/post/my-thoughts-bun-rust-rewrite.ht...) membahas standar rekayasa Jarred yang rendah, hubungan eksternal yang buruk seperti tidak hadir dalam rapat dengan Zig Foundation tanpa pemberitahuan, kerugian yang timbul karena proses perpindahan ke Rust menggambarkan Zig sebagai pilihan buruk, serta kemarahan ZSF akibat hal itu
Jika dilihat sekilas, wajar untuk khawatir bahwa pencipta bahasa sedang menyerang mantan pengguna, tetapi Kelley menjelaskan mengapa kesan yang juga saya dapatkan hanya dari membaca tulisan Bun itu tidak adil. Sebagian serangan pribadi memang jelas, dan bagian terakhir yang ditambahkan kemudian juga membahasnya
Java, JavaScript, Python, dan C# menguasai industri yang dulu berpusat pada C++ dengan menyediakan pengaman yang memungkinkan developer yang tidak perfeksionis tetap bekerja tanpa bencana besar. Keunggulan performa C dan C++ memang besar, tetapi dibutuhkan keterampilan tinggi di lingkungan yang makin tidak ramah
Rust dan Swift menawarkan prediktabilitas performa yang lebih tinggi daripada bahasa dengan garbage collection sekaligus keamanan yang mirip atau lebih kuat, dan ide-ide Rust memicu ledakan kemunculan bahasa-bahasa baru di ranah ini. Namun banyak di antaranya lebih dekat ke kriyawanisme daripada Rust, yang berangkat dari kebutuhan industri
Jika dianalogikan dengan kendaraan, Java, JavaScript, dan sejenisnya adalah mobil aman biasa, C/C++ adalah sepeda motor roda dua, Rust adalah mobil reli yang cepat tetapi melindungi penumpangnya, sedangkan Zig lebih mirip ATV atau kart open-wheel. Tidak mudah tergelincir, tetapi jika terguling sangat berbahaya
Para perajin yang mengabaikan batasan waktu dan biaya menganggap yang dibutuhkan hanyalah developer yang berhati-hati, tetapi di dunia industri, meski orang mampu menulis kode bagus, 90% pekerjaan dilakukan di bawah batasan sehingga sulit memercayai kode sendiri maupun kode orang lain. Zig punya banyak kelebihan, tetapi sejak awal ia adalah bahasa untuk orang-orang yang lebih menyukai kebebasan meretas daripada keamanan
Keamanan memori juga mungkin bisa diamankan pada tingkat serupa jika tim Zig menggunakan fuzzer terintegrasi yang mereka kuasai, bukan AI, pengujian, dan fuzzing tingkat tinggi. Meski begitu, untuk proyek seperti Bun, Rust yang lebih matang bisa saja menjadi pilihan yang lebih baik
Sudut pandang Andrew penting untuk memahami apa yang sebenarnya terjadi. Sebagian ungkapannya bisa dibuat lebih lembut, tetapi jika manajemen buruk merupakan penyebab langsung memburuknya hubungan dan hasil rekayasa yang buruk, mengungkapkannya bukan serangan pribadi melainkan konteks yang diperlukan
Terutama karena pimpinan Zig secara terbuka tidak menyukai vibe coding dan mengkritik industri, sementara proyeknya menolak permintaan kontribusi yang dibuat dengan produk tersebut
Dalam perdebatan ini justru substansi teknisnya kurang. Saya tidak peduli pada port Bun ke Rust, tulisan agresif Andrew, atau Anthropic yang menjual sekop di tengah demam emas; saya ingin melihat isi teknis yang konkret
Motivasi perpindahan ke Rust yang diajukan Jarred tampak masuk akal meski dasarnya agak kurang kuat, tetapi Andrew tidak membantah mengapa itu bukan masalah nyata atau bagaimana menyelesaikannya secara idiomatis di Zig. Saya terutama berharap ada analisis atas poin-poin itu berdasarkan kode Zig Bun yang sebenarnya
Bun dimulai oleh orang yang kurang berpengalaman dengan Zig, meski cakupan dan kompleksitasnya sangat besar, dan sejak awal proyek itu adalah penulisan ulang kode dari bahasa lain. Jika transpiler JavaScript·TypeScript milik esbuild dipindahkan baris demi baris dari Go ke Zig, lalu dalam beberapa tahun seluruh codebase dibuang dan ditulis ulang lagi ke bahasa lain, saya bertanya-tanya apa lagi yang perlu dibahas
Bun ingin merilis fitur seperti bahasa shell dan klien SQLite/PostgreSQL secepat mungkin, jadi mereka tidak ingin langsung memikirkan manajemen memori. Zig membuat orang menangani manajemen memori dan masa hidup secara langsung serta sengaja tidak menambahkan fitur seperti
Drop, sementara Rust lebih cocok berkatDropSeperti halnya orang tidak membuat database SQL dengan Python, Zig bukan alat yang cocok untuk Bun, dan ini bukan perkara bagaimana menyelesaikannya secara idiomatis di Zig, melainkan perbedaan cara Jarred ingin mengembangkan proyek dengan cepat
Saya setuju dengan sebagian pandangan Kelley, tetapi masalahnya adalah nadanya
Jika Bun ditulis ulang dari Rust ke Zig, kecil kemungkinan anggota inti tim Rust akan menulis artikel berisi serangan pribadi terhadap Sumner sambil mengklaim itu bukan serangan. Sama seperti Kelley bebas menulis artikel yang ia inginkan, orang-orang juga bebas bereaksi terhadap citra publik Zig yang dibentuk oleh BDFL dari bahasa yang sedang berkembang itu
Tulisan Bun tentang transisi ke Rust tidak menyertakan perbandingan opsi yang konkret maupun angka dampaknya, dan membahas hasilnya secara bias, sehingga tidak terasa seperti tulisan blog rekayasa
Orang-orang tampaknya lebih tertarik pada pemanfaatan agen daripada dasar teknis porting-nya, dan secara teknis tulisan itu sangat mengecewakan
Jangan meremehkan seberapa besar pengaruh pemasaran terhadap manajemen dan eksekutif, terutama betapa mudahnya orang di posisi seperti CEO terseret oleh emosi kecil
Fakta bahwa ini adalah kesempatan untuk mempromosikan model Fable baru, dan bahwa Zig secara terbuka menentang penggunaan produk Anthropic, saja mungkin sudah membuat penulisan ulang Bun ke Rust pada dasarnya menjadi keputusan yang sudah ditentukan
Saya tidak mengerti mengapa perdebatan pergantian bahasa sampai membahas ekspektasi jam kerja. Bahkan jika dia manajer yang buruk, ini terasa seperti memaksakan diri mencari bahan negatif
Fakta bahwa pihak Zig hampir tidak berfokus pada keunggulan teknis dari penulisan ulang itu sendiri juga cukup bermakna. Anthropic mengemukakan sejumlah perbaikan, tetapi sulit menemukan bahkan upaya untuk membantahnya
Jika proyek saya ditulis ulang dengan model bahasa besar dan hasilnya membaik tanpa kekurangan, saya akan sangat khawatir dan meresponsnya, tetapi di sini yang dibahas malah jam kerja
Ada konflik kepentingan yang jelas antara proyek milik Anthropic dan kepemimpinan komunitas bahasa yang secara terbuka memusuhi kode yang dihasilkan AI
Andrew Kelley sebaiknya cukup mengatakan hal ini lalu berhenti; penilaiannya tentang energi dan motivasi pendiri Bun hampir tidak menambah nilai
Kelley juga tahu hal ini, tetapi tampaknya tidak bisa menahan godaan untuk mengaburkan inti masalah. Tulisan yang keras ([0]: https://andrewkelley.me/post/my-thoughts-bun-rust-rewrite.ht...) memang berlebihan, tetapi lampiran yang mengajak untuk melangkah maju itu sehat. Menurut saya, BDFL lebih baik agak pedas daripada terlalu hambar