- Zig bertujuan menjadi bahasa sistem yang mempertahankan performa dan kontrol ala C sambil mengurangi footgun dan kelemahan dalam debugging, serta tetap sadar langsung terhadap CPU dan memori
- Pembeda utamanya adalah toolchain, dengan tujuan agar cukup menggunakan
zig build untuk membangun dari OS mana pun ke target OS mana pun tanpa ketergantungan pada sistem
- Penundaan versi 1.0 adalah pilihan untuk tidak tergesa-gesa menjanjikan kompatibilitas mundur, dan berkat struktur nirlaba 501(c)(3), proyek ini bisa fokus pada perbaikan jangka panjang
- Zig Software Foundation memiliki pemasukan 670 ribu dolar pada 2024 serta beragam struktur dukungan, dan memprioritaskan jalannya CI saat berpindah dari GitHub ke Codeberg
- Untuk issue dan pull request diterapkan kebijakan no LLM, no AI, karena kontribusi AI dianggap merusak waktu review dan mentoring sehingga bernilai negatif
Titik awal Zig dan desain bahasa
-
Latar belakang kelahiran
- Andrew Kelley mencoba JavaScript, Go, Rust, dan C++ secara berurutan untuk membuat digital audio workstation, tetapi menilai masing-masing memiliki keterbatasan untuk menghasilkan pengalaman pengguna yang diinginkan
- Ia menilai JavaScript terlalu high-level di dalam browser sehingga sulit memanfaatkan kemampuan komputer secara penuh
- Go dinilai kurang baik dalam interoperabilitas dengan pustaka C, dan untuk pekerjaan real-time seperti audio yang harus selesai diproses dalam waktu tertentu, garbage collector dapat menimbulkan glitch atau skip sehingga dianggap tidak cocok
- Pada Rust sebelum 1.0, ia merasa sulit memenuhi aturan-aturannya, perubahan kecil pun bisa memicu rangkaian error kompilasi, dan setelah sebulan menyesuaikan font rendering pun terasa sulit untuk melangkah lebih jauh
- C++ awalnya produktif, tetapi typo atau kesalahan kecil bisa berujung pada bug korupsi memori yang perlu debug selama berminggu-minggu, dan bahkan dalam “C-style C++” yang memakai compiler C++ dan linker C, masalah footgun tetap ada
- Titik awal Zig adalah sudut pandang untuk tidak mengompromikan pengalaman pengguna berdasarkan batas yang diizinkan toolchain, melainkan berdasarkan apa yang secara mendasar bisa dilakukan komputer
-
Alasan dinilai bisa menggantikan C
- Zig dianggap lebih baik daripada C karena memperbaiki cacat dan kelemahan C tanpa melepaskan kekuatan C
- Upaya lain untuk menggantikan C biasanya mengorbankan sesuatu yang dimiliki C, tetapi Zig tetap bisa melakukan semua yang bisa dilakukan C sambil mengurangi footgun dan meningkatkan kemampuan debugging
- C hanya memiliki integer optimalisasi untuk signed integer dan makna wraparound untuk unsigned integer, sedangkan Zig memungkinkan memilih wraparound atau jaminan tanpa overflow baik untuk signed maupun unsigned, sehingga digambarkan lebih “C” daripada C
- Agar bisa menggantikan C, kode harus dapat ditulis untuk dipakai ulang di mana saja seperti kernel sistem operasi, perangkat embedded, video game, dan WebAssembly; bila Zig memberi kemampuan dan keandalan setingkat C, orang akan cenderung memilih yang performanya lebih baik dan bug-nya lebih sedikit
-
Perbedaan dengan Rust
- Perbedaan inti antara Rust dan Zig adalah sistem tipe
- Di Rust, aturan seperti apakah parameter fungsi mendukung clone, mendukung antarmuka tertentu, atau tipe apa yang bisa diteruskan, harus dideskripsikan dalam meta-bahasa
- Zig tidak memakai mekanisme seperti itu; Anda cukup meneruskan tipe konkret atau tipe generik yang bekerja seperti template C++
- Ada trade-off: kode Rust memiliki lebih banyak jaminan dari sistem tipe, sedangkan kode Zig lebih sederhana untuk dibaca
- Rust berlanjut ke gaya RAII yang mirip C++, dan secara alami mengarah ke pola di mana objek mereferensikan objek lain lalu dihancurkan otomatis ketika jumlah referensinya menjadi 0
- Zig membuat allocator jauh lebih eksplisit; reference counting tetap mungkin, tetapi kodenya harus ditulis secara eksplisit
- Di Zig, pendekatan alokasi memori yang disesuaikan dengan aplikasi sering digunakan: alokasi bisa dikelompokkan dengan arena allocator lalu dibuang sekaligus, general-purpose allocator bisa dipakai untuk pendekatan berorientasi objek, atau dibuat pendekatan campuran untuk kebutuhan tertentu
- Cara menulis kode dengan memikirkan apa yang ingin dilakukan CPU lalu membuatnya menjalankan itu apa adanya dianggap lebih alami di Zig daripada di Rust
-
Fitur killer dan toolchain
- Fitur killer Zig adalah toolchain
- Ini adalah rangkaian perangkat lunak tanpa ketergantungan pada sistem, yang berjalan di sistem operasi mana pun dan dapat membangun kode untuk target sistem operasi mana pun
- Tingkat kesulitan untuk mengutak-atik sebuah proyek bisa dinilai dari README: apakah perlu memasang banyak paket sistem, apakah prosedurnya berbeda per sistem operasi, berapa banyak perintah yang harus dijalankan untuk menyiapkan lingkungan, dan apakah perlu Docker atau perangkat keras tertentu
- Standar terbaik adalah satu baris, satu dependensi, selalu berjalan untuk semua orang, dan langkah build dalam README proyek Zig seharusnya cukup dengan
zig build
-
Aturan bahasa dan antarmuka IO
- Aturan yang memperlakukan variabel tak terpakai sebagai error kompilasi dianggap menghemat waktu dengan menangkap bug saat refactoring skala besar, dan biaya menambahkan komentar untuk membuang variabel dinilai tidak besar
- Berkat dukungan editor dari tim ZLS, bila pengaturan diaktifkan, variabel yang tidak terpakai dapat otomatis di-discard, lalu discard itu bisa dihapus lagi ketika variabel dipakai kembali
- Antarmuka baru IO reader / IO writer adalah abstraksi untuk menulis sekali kode yang dapat dipakai ulang, seperti pustaka pemuatan gambar atau kode serialisasi format data
- Tujuannya adalah memisahkan sebagai paket dengan menerima reader untuk data yang dikonsumsi dan writer untuk data yang dihasilkan, sehingga logika yang sama dapat dipakai di banyak aplikasi
- Jika pembacaan dan penulisan terjadi di bawah layer abstraksi, compiler bisa kesulitan memahami logika untuk mengoptimalkannya sehingga performa dapat hilang
- Desain yang memasukkan buffer ke dalam antarmuka dipandang sebagai titik optimal untuk tetap memungkinkan compiler menghasilkan kode yang baik sekaligus mencapai keterpakaiulangan
Kasus penggunaan, 1.0, dan arah setelah LLVM
-
Kasus penggunaan nyata
- Zig diperkenalkan sebagai bahasa yang digunakan ketika ingin mengendalikan komputer sepenuhnya, memaksimalkan performa dan penggunaan memori, serta menciptakan pengalaman pengguna yang meyakinkan
- Ghostty adalah emulator terminal buatan Mitchell Hashimoto, dan dinilai sebagai proyek yang baik dari sisi kualitas kode, pengelolaan komunitas, dan fuzz testing
- TigerBeetle adalah basis data transaksi keuangan yang, alih-alih menumpangkan OLTP di atas basis data relasional seperti PostgreSQL, membangun basis data tujuan khusus, dan digambarkan “seribu kali lebih cepat” daripada strategi semacam itu
- TigerBeetle mengalokasikan terlebih dahulu seluruh memori yang akan digunakan saat berjalan lalu tidak melakukan alokasi dinamis, sehingga latensi tetap dapat diprediksi dan konsisten
- Bun adalah mesin JavaScript yang menggunakan JavaScriptCore dan berbagai pustaka C++, sementara kode perekatnya ditulis dengan Zig
- Ia mengetahui bahwa Bun baru-baru ini diakuisisi oleh Anthropic, dan melihat akibatnya semakin banyak orang yang ingin menggunakan Zig untuk keperluan AI
- Uber menggunakan Zigcc sebagai kompiler C untuk melakukan cross-compile kode C yang menjadi dependensi kode Go, dan memakainya untuk build target ARM64
-
Mengapa 1.0 tertunda
- Zig belum memiliki 1.0 meski sudah lebih dari 10 tahun, tetapi 1.0 pada dasarnya adalah janji kompatibilitas ke belakang, dan maknanya berbeda untuk tiap proyek
- Sebagai perbandingan, Go lama tidak banyak menyentuh bahasa setelah 1.0, sementara Rust memberi label 1.0 relatif lebih awal tetapi tetap bisa banyak mengubah bahasa sambil menjaga kompatibilitas melalui edition
- Zig Software Foundation bukan startup melainkan organisasi nirlaba 501(c)(3), sehingga tidak ada tekanan investor, penjualan, atau rencana exit, dan ada waktu untuk melakukan perbaikan jangka panjang
- Saat merilis 1.0, mereka ingin itu menjadi “hasil karya penuh kasih tanpa kompromi” yang tidak terjebak pada keputusan buruk yang dikunci karena tergesa-gesa
- Mengenai “worse is better”, ia menilai ungkapan itu sendiri tidak masuk akal secara bahasa, dan Zig mengejar more with less
- Mereka mengarah pada toolchain yang memberi manfaat besar dari fitur
comptime dengan kompleksitas rendah, serta dapat mengompilasi untuk sistem operasi dan arsitektur yang sepenuhnya berbeda hanya dengan satu flag
- Ia yakin adopsi akan melonjak saat 1.0 keluar, tetapi tujuannya adalah membuat bahasa untuk 50 tahun ke depan
- Ia melihat hasil dari pilihan-pilihan ini akan mulai tampak pada rilis
0.16 mendatang
-
Mengapa meninggalkan LLVM
- Alasan meninggalkan LLVM adalah keyakinan bahwa dependensi inti terhadap produk inti harus dihindari
- Ia memberi contoh game arcade kompetitif 10 pemain Killer Queen, di mana pengembang memakai Unity untuk mesin fisika, sehingga perubahan kecil atau perbaikan bug pada mesin fisika saja sudah mengubah nuansa permainan kompetitif dan membuat mereka tidak bisa memperbarui ke versi Unity baru
- Ia menilai menjadikan itu sebagai dependensi untuk produk inti adalah kesalahan, dan melihat Zig kini sedang memperbaiki hal yang sama terkait LLVM
- LLVM diibaratkan seperti “roda bantu sepeda”; setelah lebih dari 10 tahun membuat Zig, mereka telah belajar lebih banyak tentang pengembangan kompiler dan kini merasa bisa melepas roda bantu itu serta bersaing dengan LLVM
- Pada backend x86 buatan sendiri, kompilasi inkremental yang menghasilkan biner baru dalam kurang dari 50 ms setelah perubahan dimungkinkan bahkan pada codebase besar berjuta baris
-
Nama dan jalur belajar
- Nama Zig dipilih saat mencari kata pendek yang memberikan 0 hasil untuk pencarian “Zig programming language”, ketika sebuah skrip Python sedang mencetak kata-kata acak
- Maskot iguananya disebut “ziguana”
- Untuk pemula, Ziglings sangat direkomendasikan
- Ziglings terdiri dari serangkaian latihan berisi kode yang hampir berfungsi tetapi memiliki masalah, sehingga pengguna mempelajari fitur bahasa baru sambil memperbaiki program yang rusak
- Transisi dari C ke Zig sangat mulus, khususnya karena semua yang bisa dilakukan di C juga bisa dilakukan di Zig, dengan footgun yang lebih sedikit
- Jika terjadi segmentation fault di C, biasanya tidak ada keluaran selain “segmentation fault” dan pengguna harus bergantung pada kemampuan memakai debugger, tetapi di Zig pengguna bisa mendapatkan stack trace lengkap yang menunjuk ke setiap baris kode
- Apakah Zig cocok dipelajari sebagai bahasa pemrograman pertama bergantung pada orangnya, tetapi bagi yang ingin belajar cara kerja komputer, ini dinilai sebagai bahasa yang baik karena mengajarkan CPU dan memori
Operasi yayasan, tata kelola, dan pemilihan platform
-
Struktur keuangan dan sponsor
- Total pemasukan Zig Software Foundation pada 2024 adalah 670 ribu dolar
- Sumber pemasukan beragam, mulai dari sponsor individu hingga donasi dari berbagai perusahaan, dengan struktur yang tidak memungkinkan satu pihak memaksakan arah pengembangan
- Jika ada sponsor tertentu yang menuntut “lakukan ini”, permintaan itu bisa ditolak, dan menurutnya yayasan tetap bisa bertahan meski sponsor tersebut menghentikan dananya
- Sponsor hanya bisa memberi pengaruh dengan cara yang sama seperti orang lain, seperti berpartisipasi di bug tracker, mengirim pull request, atau berdiskusi di kanal pengembangan; tidak ada kanal rahasia terpisah dengan prioritas tinggi
- Gaji tahunan Andrew Kelley adalah 154 ribu dolar, dan ditetapkan oleh dewan pertama berdasarkan gaji median senior software engineer di kota tempat organisasi nirlaba itu didirikan
- Yayasan memiliki 1 karyawan dan sekitar 5 kontraktor penuh waktu yang dibayar, dan 91% pemasukan tahun sebelumnya dibayarkan kepada kontraktor yang mengerjakan proyek
- Untuk tawaran 100 juta dolar tanpa syarat, ia menjawab bahwa uang itu bisa diterima, tetapi tidak akan dipakai untuk ekspansi dan akan disimpan di bank agar tidak perlu menggalang dana selama 100 tahun
- Saat ini ia mengelola tim beranggotakan 5 orang, dan menyatakan bahwa mengelola lebih dari 10 orang bisa menjadi beban besar, serta ia tidak berniat menjadi manajer organisasi berisi 100 orang
-
501(c)(3) dan transparansi
- Ia membedakan bahwa 501(c)(3) berbeda dari 501(c)(6)
- 501(c)(6) adalah business league, dan Rust Foundation disebut sebagai bentuk di mana perusahaan seperti Amazon, Netflix, Microsoft, dan Meta menyumbang karena memiliki kepentingan bersama atas keberhasilan Rust
- 501(c)(3) tidak mengizinkan lobi pemerintah dan ada semata-mata untuk pernyataan misi, bukan untuk kepentingan para pelaku bisnis
- Tulisan blog yang mempublikasikan detail pemasukan dan pengeluaran bukan kewajiban, melainkan transparansi sukarela, dan ia menilai hal itu membantu membangun kepercayaan serta penggalangan dana karena metriknya baik
-
Alasan meninggalkan GitHub dan media sosial
- Alasan meninggalkan Reddit dan Twitter adalah karena memposting di situs-situs tersebut semakin kurang relevan, seperti memposting di Slashdot atau Digg, dan ia ingin meminimalkan waktu yang dihabiskan untuk pemasaran sebagai software engineer
- Ia menilai bahwa lebih fokus pada acara tatap muka dan meetup adalah investasi yang lebih baik untuk pertumbuhan komunitas dibanding media sosial, tempat algoritme mengontrol apa yang terlihat atau memaksa interaksi dengan troll
- Alasan repositori utama Zig dipindahkan dari GitHub ke Codeberg pada akhir 2025 adalah karena GitHub tidak lagi menyediakan hasil continuous integration dengan benar, sehingga “memang tidak berfungsi”
- Setelah pindah ke Codeberg, server continuous integration kembali berfungsi
- Meninggalkan GitHub Sponsors adalah keputusan sulit karena bisa kehilangan sumber pemasukan, tetapi ia menilai prioritas utama untuk menulis software adalah memastikan CI berfungsi
- Setelah meninggalkan GitHub, secara finansial ia menyebut kondisinya “sepenuhnya baik-baik saja”
- Zig adalah software berlisensi MIT, sebuah donasi tanpa syarat kepada dunia software, dan sponsor juga dipandang sebagai donasi tanpa syarat
- Alasan memilih Codeberg adalah karena pada dasarnya mirip dengan GitHub sehingga transisinya mudah, serta karena itu adalah organisasi nirlaba Jerman
- Code forge bukan sarana pemasaran proyek, dan ia menilai orang menemukan bahasa tersebut bukan lewat GitHub atau Codeberg, melainkan lewat presentasi, meetup, video YouTube, atau grup meetup Zigday
-
BDFL dan tata kelola jangka panjang
- Proyek software sering kali harus memilih antara kontrol hierarkis dan proses demokratis, dan banyak proyek memilih model BDFL karena lebih sederhana
- Jika satu orang memegang kendali, orang itu memikul tanggung jawab untuk memahami segalanya dan memiliki visi yang konsisten terhadap proyek
- Dalam komite, berbagai use case dan visi yang sama-sama valid bisa berbenturan, dan ketika tidak ada satu desain tunggal yang bisa memuaskan dua use case sekaligus, kompromi bisa menghasilkan produk yang lebih buruk
- Bahkan jika Andrew Kelley pergi, dari sudut pandang software engineering ia menilai rekan-rekannya sangat kompeten dan dapat melanjutkan pengelolaan proyek
- Dari sudut pandang politik organisasi dan yayasan, menurutnya masih ada pekerjaan yang harus dilakukan, dan dengan pandangan bahwa sistem tempat uang mengalir akan mengalami korupsi, saat ini masih dibutuhkan kepemimpinan hierarkis yang kuat untuk menahan pengaruh uang
- Cara satu pemimpin kuat mengendalikan segalanya tidak berkelanjutan, sehingga untuk keberlanjutan jangka panjang dibutuhkan demokrasi, tetapi tantangannya adalah merancangnya agar tidak rusak seiring waktu akibat pengaruh uang
-
Tolok ukur keberhasilan
- Dari satu sudut pandang, keberhasilan Zig sudah tercapai
- Zig memiliki sumber pemasukan yang beragam sehingga mandiri secara finansial dari satu pihak tertentu, memiliki pengguna yang puas dan terus memakainya, serta merilis sekitar dua kali setahun sambil terus melakukan perbaikan
- Dari sudut pandang lain, mereka menginginkan adopsi yang lebih luas, dan salah satu ukuran keberhasilan adalah adopsi setingkat Go dan Rust
- Adopsi komersial berguna karena memungkinkan penerimaan donasi perusahaan, tetapi donasi perusahaan juga harus dijaga agar tetap beragam
- Ia menilai bahwa jika membuat sesuatu yang berguna secara umum, itu juga akan berguna bagi perusahaan, dan hal itu juga terlihat dari orang-orang yang menggunakan Zig untuk AI
Kebijakan AI, alat pengembang, dan masa depan pemrograman
-
Kebijakan no LLM, no AI untuk kontribusi
- Zig menerapkan kebijakan no LLM, no AI yang ketat untuk issue dan pull request
- Kontribusi AI dianggap “tetap saja sampah” dan bukan hanya tidak bernilai, tetapi juga menciptakan nilai negatif karena menyita waktu review
- Saat ini ada lebih dari 200 pull request terbuka, dan waktu review menjadi bottleneck di antara tim pengembang kecil dan banyak kontributor
- Ia melihat ada pola pada kontribusi yang dibuat AI: setelah beberapa kali review, kontributornya tidak memahami isi perubahan, lalu menempelkan umpan balik review ke chat dan mencuci jawaban yang diterima kembali seolah itu kata-katanya sendiri
- Alasan inti menerima code review dan kontribusi adalah mentorship, dengan tujuan membantu kontributor berkembang agar nantinya menjadi anggota tim inti atau kontributor yang lebih bernilai
- “contributor poker” adalah proses menilai kepada siapa waktu yang terbatas sebaiknya diinvestasikan agar mereka menjadi programmer dan kontributor yang lebih baik
- Orang yang memakai AI selalu dianggap masuk kategori kontributor sekali lewat dengan nilai investasi rendah, tidak belajar, dan tidak punya peluang menjadi tim inti
- Proyek Zig juga merupakan proyek pendidikan, dan menyediakan bimbingan serta pendidikan kepada pelajar adalah bagian dari misinya
- Jika hanya “PR AI yang bagus” yang diizinkan, maka dibutuhkan penilai, sedangkan larangan total adalah kebijakan yang mudah ditegakkan
- Ia mengakui mendeteksi apakah sesuatu dihasilkan AI tidak selalu mudah dan mungkin ada beberapa yang lolos, tetapi saat meninjau banyak pull request, kadang menjadi jelas dari cara respons terhadap umpan balik bahwa itu bukan perilaku manusia
-
Lisensi MIT dan pelatihan AI
- Codebase Zig berlisensi MIT, dan bagi orang yang tidak akrab dengan lisensi perangkat lunak, ini pada dasarnya mendekati domain publik
- Hampir bisa dipakai untuk tujuan apa pun, lisensi harus disertakan saat menyalin kode, tidak ada garansi, dan Zig tidak bisa dimintai tanggung jawab atas masalah apa pun
- Ada ironi bahwa perusahaan besar boleh memakai kode Zig untuk pelatihan AI, tetapi kontribusi AI ke Zig dilarang
- Ia sangat yakin bahwa Zig adalah hadiah tanpa syarat bagi dunia, jadi penggunaan untuk pelatihan AI pun dianggap tidak masalah
- Ia sendiri tidak banyak mencoba apakah LLM lebih kesulitan pada kode Zig dibanding Python atau JavaScript, tetapi Mitchell Hashimoto disebut banyak menggunakan AI coding di Ghostty
- Seseorang dengan nama layar
Rocker membuat alat agar AI bekerja lebih baik di Zig dan dikatakan berhasil
-
Vibe coding dan masa depan pemrograman
- Membaca tentang orang yang mengerjakan proyek dalam waktu lama, mempelajari keterampilan, dan memecahkan masalah dapat memicu imajinasi, membuat orang berpikir apa yang bisa mereka buat sendiri, serta mengajarkan sesuatu dan membangun keterhubungan emosional
- Menurutnya, blog vibe coding yang mengatakan hal seperti “saya mencoba versi Claude ini atau versi OpenAI itu dan hasilnya mengejutkan bagus” tidak memberi inspirasi
- Ia menekankan bahwa standar kualitas perangkat lunak seharusnya bukan “mengejutkan karena tidak ada bug”, melainkan kesempurnaan tanpa kompromi
- Dalam panggilan pribadi dengan Richard Feldman, ia pernah mencoba vibe coding dan menganggap teknologinya sendiri pada dasarnya menarik
- Namun, ia merasa sangat menolak fakta bahwa sekitar empat perusahaan mengendalikannya secara terpusat dan memiliki kendali penuh atas model serta perilakunya
- Ia tidak ingin berpindah dari cara menulis kode dengan komputer dan listrik miliknya sendiri ke cara memakai pemrograman closed source di komputer orang lain lewat jaringan dengan langganan bulanan
- Ada orang yang membayar 300 dolar per bulan, dan ia menggambarkan tawaran seperti itu sebagai sesuatu yang gila baginya
- Ia menilai bahwa 10 atau 20 tahun lagi manusia akan tetap menulis kode, dan coding itu menyenangkan sehingga setidaknya akan selalu bertahan sebagai hobi
- Menurutnya, aplikasi terbaik di ponsel dan komputer adalah aplikasi yang dibuat orang sebagai hobi di waktu luang mereka, dan kebebasan, perangkat lunak open source, serta keinginan menjadi pemilik perangkat sendiri tidak akan hilang
-
Lingkungan editing dan alat refactoring
- Diperlukan lingkungan kerja yang tangguh agar kode tetap bisa diedit meskipun sintaks Zig berubah
- Alat tingkat lanjut seperti tree-sitter dan language server berasumsi ada pohon sintaks atau bahasa yang stabil, sehingga saat bahasanya rusak, alat-alat itu juga bisa ikut rusak
- Secara pribadi, saat menulis Zig ia memakai terminal dan Vim alih-alih lingkungan yang sangat canggih, dan Vim sangat tahan terhadap perubahan
- ZLS adalah singkatan dari Zig language server, implementasi Language Server Protocol untuk Zig, dan merupakan proyek pihak ketiga yang tidak dikelola oleh Zig Software Foundation
- Situs web Zig merekomendasikan produk JetBrains, tetapi Andrew Kelley tidak pernah memakainya karena produk JetBrains bersifat closed source
- Ia menyukai alat refactoring tingkat tinggi yang dulu disediakan JetBrains atau Eclipse, seperti extract function, mengatur ulang parameter fungsi, dan mengganti nama global
- Dalam jangka panjang, ia menginginkan alat refactoring semacam bahasa kueri yang dapat melakukan perubahan besar berdasarkan informasi tipe dan petunjuk lain
- Untuk pekerjaan dengan cakupan jelas seperti mengganti nama variabel, jika ditangani alat yang andal, hasilnya bisa diyakini 100% benar sampai-sampai commit dapat dibuat tanpa perlu ditinjau
- Jika meminta alat AI melakukan pekerjaan yang sama, kode tetap harus ditinjau, sehingga lebih lama dan menjadi pilihan yang lebih buruk dibanding alat refactoring yang dapat dipercaya
Motivasi pribadi dan pandangan tentang open source
-
Motivasi dan kesulitan untuk terus mengerjakan Zig
- Pengerjaan Zig berangkat dari kecintaan pada komputer dan keinginan untuk membuat komputer melayani manusia
- Zig digambarkan sebagai hadiah optimistis bahwa bahasa pemrograman dan toolchain yang hebat akan menghasilkan hal tersebut
- Memuaskan pengguna dan menciptakan pengalaman pengguna yang kuat memberikan kepuasan besar, dan perasaan membuat perangkat lunak yang baik diibaratkan seperti perasaan musisi saat tampil di panggung
- Pajak dan pekerjaan administrasi yang diperlukan untuk menjalankan organisasi nirlaba disebut sebagai bagian yang paling berat
- Hal itu mutlak diperlukan agar operasional berjalan tanpa masalah hukum dan untuk menerima donasi besar, tetapi saat ini pekerjaan itu ditangani oleh Andrew Kelley
- Pada hari tertentu ia mengerjakan akuntansi, pada hari lain ia melakukan pemrograman, dan hari-hari pemrograman dianggap sebagai hari yang baik
- Perubahan antarmuka IO reader / IO writer di Zig 0.15 merupakan hasil dari pencarian titik optimal, pembuatan API, pengujian, dan pencarian solusi baru dengan membandingkannya dengan bahasa pemrograman lain, tetapi setelah itu selama 6 bulan perlu memperbaiki pustaka standar dan proyek ekosistem
-
Burnout dan saran
- Burnout dianggap terjadi ketika seseorang mengerahkan banyak usaha tetapi tidak banyak melihat imbalan dari usaha tersebut
- Andrew Kelley mencurahkan banyak usaha, tetapi umumnya terlindungi dari burnout karena ia melihat imbalan seperti pengguna yang bahagia, rilis Zig, catatan rilis, dan berbagai perbaikan
- Pekerjaan seperti perubahan IO, yang imbalannya tertunda selama beberapa bulan, bisa terasa seperti burnout, tetapi pada akhirnya membaik ketika imbalan itu datang
- Kepada orang yang mengalami burnout, ia menyarankan untuk lebih dulu menjaga olahraga, tidur yang cukup, dan pola makan sehat
- Jika seseorang tidak menyukai pekerjaannya atau merasa perusahaannya tidak melakukan hal yang bernilai bagi dunia tetapi tetap harus bekerja keras, itu menjadi kondisi yang memicu burnout
- Dalam kasus itu, mencari pekerjaan lain atau memilih jalan sulit untuk membangun pekerjaan sendiri seperti mendirikan startup adalah salah satu opsi, dan jika bekerja di “perusahaan tanpa jiwa”, ia menyarankan untuk pulang pukul 5 sore, melakukan hal lain, dan tidak bekerja terlalu keras
-
Proyek yang dikagumi dan keberagaman browser
- Proyek pertama yang ia kagumi adalah Linux
- Ia menilai dunia yang hanya memiliki sistem operasi proprietari akan jauh lebih buruk, dan Linux bukan hanya bermanfaat bagi pengembang free/open source, tetapi juga baik bagi ekonomi karena memungkinkan negara dan perusahaan di seluruh dunia membangun bisnis secara gratis
- Yang kedua adalah Blender, dan ia sangat menghargainya sebagai proyek open source sekaligus organisasi nirlaba yang dipakai secara profesional dan tetap mampu bersaing bahkan menang melawan perusahaan dengan banyak uang dan tenaga pengembang
- Yang ketiga adalah VLC; ia mengenang bahwa ketika dulu berkontribusi ke FFmpeg, organisasi VLC menanggung biaya perjalanan ke VideoLAN Dev Days untuk orang yang berkontribusi ke VLC atau pustaka dependensinya
- Alasannya menggunakan Firefox adalah karena kekhawatiran terhadap keberagaman browser
- Setelah Microsoft menghentikan Internet Explorer, browser utama yang tersisa hanya Chromium, Safari, dan Firefox, dan ia memandang dominasi pangsa pasar Chromium sebagai masalah bagi web
- Belakangan ini ia tidak puas dengan Mozilla, dan mengatakan bahwa meski merupakan organisasi nirlaba, ada banyak korupsi dan terasa seperti ada contoh-contoh yang tidak selaras dengan pengguna
- Chromium adalah Google, Safari adalah Apple, Firefox tampak sedang menurun, sehingga alternatifnya kurang, dan ia merasa tidak tahu apa yang harus dilakukan sampai proyek-proyek browser baru menjadi matang
-
Jika kembali ke tahun 2015, apakah akan tetap memulai Zig
- Ia menjawab bahwa jika kembali ke tahun 2015, ia pasti akan memulai Zig
- Hari ketika ia keluar dari OkCupid dan memulai Zig secara penuh waktu adalah hari terbaik dalam hidupnya jika dilihat dari lintasan hidup setelahnya
- Zig memberinya rasa pemenuhan yang mendalam, kemandirian, rasa berharga bagi diri sendiri, dan perasaan telah berkontribusi pada masyarakat
- Ia merasa pada dasarnya dirinya adalah orang yang sulit untuk dipekerjakan, dan agar bisa bahagia ia harus menjadi bos bagi dirinya sendiri, dan setelah mencapai keadaan itu ia mendapatkan kebahagiaan
1 komentar
Opini di Lobste.rs
JetBrains memang tak bisa disalahkan kalau membuat wawancaranya sedikit lebih provokatif untuk mengejar viralitas, tetapi pada akhirnya pertanyaan terbaiknya bukan soal Zig vs Rust, melainkan soal Zig yang dibangun dengan semangat nirlaba, keberlanjutan, dan kecintaan
Menurut saya, wawancara ini berhasil menunjukkan dengan baik sisi manusiawi Andrew yang diam-diam menyala di balik proyek tersebut
Videonya tampak jauh lebih ditujukan kepada orang-orang yang penasaran dengan Zig dan mereka yang tertarik pada pengelolaan proyek, ketimbang orang yang sudah cukup sering memakai Zig, dan hanya mengangkat topik yang kemungkinan memang dikenal oleh audiens itu tanpa menghindarinya
Pewawancaranya juga membiarkan ucapan Andrew berbicara sendiri alih-alih menyulut perdebatan, dan untuk format wawancara seperti ini, hasilnya terasa sangat penuh pertimbangan
Meski begitu, saya sempat tertawa melihat kata-kata yang dipilih untuk dimasukkan sebagai subtitle; saya tidak yakin ada banyak orang yang tertarik pada Zig tetapi tidak tahu Linux atau definisi abstraksi
Secara keseluruhan, kesan saya sangat positif, baik terhadap cara Zig ditampilkan maupun terhadap tim marketing JetBrains
Pada dasarnya ini adalah alat untuk melihat dokumentasi Zig standard library dan dependensi yang ditemukan dalam build graph dari command line
Framing tidak terburu-buru menuju 1.0 itu menarik, tetapi Zig juga cukup beruntung karena memiliki para pengguna yang bersedia menanggung guncangan perubahan ekosistem
Bukan C++, melainkan C
Saya terus bimbang apakah proyek embedded berikutnya akan saya kerjakan dengan Zig atau Rust, tetapi sekarang saya merasa seperti “waktunya sudah tiba”
Wawancara ini bisa jadi pemicu yang menentukan bagi saya, dan ada nuansa keseluruhan di sini yang sangat saya resonansikan
Jawaban itu membahas dengan baik area-area yang merupakan fitur inti Zig dan karena itu memang perlu lebih banyak dikendalikan oleh timnya