- Penulis yang mengembangkan editor kode pribadi Boo menjelaskan alasan menghentikan proyek itu untuk sementara dan membuat bahasa pemrograman baru
- Boo adalah editor berbasis Rust dengan navigasi keyboard berpusat pada manusia dan sistem pengganti LSP, ditujukan untuk penggunaan pribadi alih-alih komersialisasi
- Ia menilai proses pengembangan yang berulang menurunkan kreativitas, dan lebih mengutamakan kesenangan membuat perangkat lunak yang menginspirasi
- Dengan contoh merakit balok Lego dan The Legend of Zelda: Breath of the Wild, ia menekankan pentingnya karya yang membekas dalam ingatan
- Alih-alih mengikuti rumus sukses, ia mempertahankan filosofi pengembangan yang berpusat pada minat dan pembelajaran pribadi, dan berencana menulis ulang Boo di masa depan dengan bahasa yang ia buat sendiri
Proyek Boo dan motivasi pengembangannya
- Boo adalah proyek yang dibuat penulis sebagai editor kode untuk dirinya sendiri, dengan fokus pada kegunaan pribadi ketimbang keberhasilan populer
- Boo memiliki fitur navigasi keyboard manusia dan menggunakan sistem yang lebih cepat serta lebih ringan bagi OS dibanding LSP (Language Server Protocol)
- Saat ini Boo sudah berjalan cukup baik untuk dipakai dalam pekerjaan sehari-hari, tetapi tidak ada rencana untuk merilisnya sebagai sumber terbuka
- Boo dan Rio Terminal sama-sama ditulis dalam Rust, serta memiliki struktur dan proses distribusi yang serupa
- Kemiripan ini terasa seperti pekerjaan berulang dan mengurangi kesenangan dalam pengembangan
Hubungan antara penciptaan dan inspirasi
- Dengan contoh bermain balok Lego, ia menjelaskan bahwa kebebasan untuk membuat bentuk berbeda setiap kali adalah inti dari kesenangan berkreasi
- Bukan sekadar memakai komponen yang sama berulang kali, melainkan menambahkan elemen luar untuk menghasilkan sesuatu yang baru itulah inti ketertarikan
- Semakin repetitif pemrograman, semakin kecil kemungkinan lahir karya yang memberi efek “wow”
- Ia menekankan bahwa untuk membuat perangkat lunak yang menginspirasi, seseorang juga harus terinspirasi
Contoh perangkat lunak yang membekas dalam ingatan
- Dengan contoh The Legend of Zelda: Breath of the Wild, ia menyebut tingkat penyelesaian game itu begitu tinggi hingga membuat orang yang bahkan tidak bermain game ikut membeli konsol
- Ia menekankan kekuatan karya yang tetap memberi pengalaman membekas lama setelah dimainkan
- Ia menjelaskan bahwa perangkat lunak yang dibuat dengan tingkat ketekunan seperti ini meninggalkan kesan emosional pada orang
Penghentian sementara Boo dan pengembangan bahasa baru
- Boo adalah proyek hobi, bukan untuk bisnis, sehingga tidak ada target pendapatan maupun tenggat waktu
- Ia juga tidak berniat membuat proyek besar seperti VS Code, dan tidak akan memaksakan kelanjutannya
- Agar bisa melanjutkannya lagi saat inspirasi kembali, ia menghentikan sementara Boo dan saat ini sedang mengembangkan bahasa pemrogramannya sendiri
- Dalam jangka panjang, ia berencana menulis ulang Boo dengan bahasa ini
Filosofi dan sikap pengembangan
- Mengembangkan bahasa baru memang pekerjaan besar, tetapi penulis memandangnya sebagai proses belajar yang menyenangkan
- Sambil memperluas pemahamannya tentang binary dan compiler, ia melanjutkannya dengan ritmenya sendiri
- Alih-alih mengikuti rumus sukses atau nasihat dari luar, ia terus mengembangkan berdasarkan cara berpikir dan minatnya sendiri
- Tulisan ini sendiri juga ditulis menggunakan Boo
1 komentar
Komentar Hacker News
Setelah bangun hari ini, minum kopi, lalu membaca tulisan bahwa keluarganya sudah tidur sehingga sore harinya jadi bebas, saya jadi penasaran bagaimana zona waktunya bisa berbeda dengan keluarganya. Saya sampai membayangkan mungkin keluarganya tidur di sore hari, atau justru bangun malam untuk memulai hari
Kalimat “editor ini ada untuk membuat saya senang” terasa menyegarkan. Belakangan ini ada tekanan bahwa setiap proyek sampingan harus berkembang menjadi open source atau SaaS, dan itu sering kali justru mematikan kreativitas. Proyek eksperimental seperti Boo atau Rio tampaknya lahir dari kebebasan seperti ini
Kalimat “saya membuatnya untuk diri sendiri” adalah cara kerja banyak seniman. Tolkien juga begitu, dan kebanyakan orang membuat sesuatu untuk dirinya sendiri dulu lalu baru menunjukkannya ke dunia. Namun biasanya tidak ada yang peduli, atau baru mendapat perhatian setelah pembuatnya meninggal. Itu pun tidak masalah. Yang penting adalah naluri manusia untuk mengekspresikan imajinasi ke luar
Jika pemrograman bersifat repetitif, elemen ‘wow’-nya berkurang. Namun proyek seperti yt-dlp yang mendukung berbagai situs adalah pengecualian. Membuat begitu banyak parser data memang membosankan, tetapi hasil akhirnya memberi rasa “berfungsi di mana saja”
Saya membuat perangkat lunak yang membuat orang merasakan emosi — kebanyakan kemarahan. Pada akhirnya, hanya ada dua jenis software: yang diabaikan, dan yang dipakai cukup banyak sampai orang mau mengeluh tentangnya
Emacs dan Emacspeak memberi saya emosi yang luar biasa besar. Semuanya terasa seperti satu manual utuh, dan cukup tekan C-h m maka semua perintah langsung muncul. Tidak ada yang tersembunyi, dan tidak perlu mengubek dokumen HTML. Kalau ada yang tidak bisa, saya bahkan akan memperbaikinya dengan Codex agar tetap bisa melakukan yang saya inginkan
Dalam keadaan ideal, pengembangan software harus diperlakukan sebagai craft. Seperti pertukangan kayu, ini bisa berguna sekaligus menjadi seni. Namun banyak proyek memperlakukan developer seperti buruh pabrik. Budaya yang lebih mementingkan kuantitas daripada kualitas adalah masalahnya.
Pada saat yang sama, melihat software semata-mata sebagai seni juga tidak praktis. Tujuan kode adalah bekerja, bukan untuk dinikmati. Meski begitu, tetap disayangkan bahwa ungkapan “software yang dibuat dengan craft” terdengar janggal
FAANG seperti Meta dan Google juga sudah membuat software yang membuat orang merasakan emosi — kemarahan, depresi, kadang bahkan kebahagiaan. Tapi itu menunjukkan bagaimana teknologi yang dimulai dengan niat baik bisa terdistorsi. Seperti pepatah “jalan menuju neraka dipenuhi niat baik”, mengejar kebaikan sering kali justru menghasilkan keburukan.
Mengutip Knuth, penggerak kemajuan adalah “biarkan ribuan ilmuwan komputer bebas melakukan apa yang ingin mereka lakukan”. Seperti di Bell Labs, kebebasan untuk bereksplorasi itu penting.
Sekarang kita terobsesi dengan optimisasi tetapi lemah secara matematis, dan pada akhirnya menjadi masyarakat yang berhenti menjelajah. Karena itu saya rasa kemajuan melambat
Ini kebiasaan yang saya pelajari dari Casey Muratori dan Jonathan Blow; saya juga suka membuat dunia kecil saya sendiri. Proyek-proyek yang saya satu-satunya pengguna sekaligus sasarannya. Tanpa tenggat, tanpa permintaan, tanpa runtime, sebuah ruang kesenangan yang murni
Belakangan ini sebagian besar software membangkitkan emosi yang kuat dalam diri saya