Bahasa Melayu
Kontak

Machikoba no Techo

Nota dari Sebuah Kilang Kecil — Arita, Saga, Jepun

Machikoba no Techo

Nobuhide Kanagawa, Pengarah Urusan

Hanya orang yang boleh menulisnya dapat melihat bahayanya.

September. Musim memancing sotong torak pada waktu malam — salah satu tanda musim panas di sini — semakin menghampiri penghujungnya. Mereka yang selama ini keluar dengan bot pada waktu malam kini beralih dengan tenang kepada apa yang kami panggil budouika, si "sotong anggur". Kami amat menghargai sokongan anda yang berterusan.

Ada satu lagi perkara tentang September: inilah musim sotong karang bersirip besar berkumpul. Apabila suhu air turun daripada kemuncak musim panasnya, ikan umpan hidup serentak. Sotong berubah bersama mereka, dan kumpulan sotong muda masuk ke perairan cetek — joran melengkung di sepanjang benteng pemecah ombak dalam tempoh singkat waktu subuh dan senja. Mungkin inilah masa paling mengujakan sepanjang tahun. Bagi sesiapa yang berfikir untuk mula bermain eging, inilah juga musim yang paling memaafkan untuk bermula.

Bulan ini, izinkan saya menulis sekali lagi tentang bahagian belakang kilang. Bulan lepas saya menulis bahawa walaupun AI yang menulisnya, berhenti untuk memeriksa tetap tugas manusia. Ini sambungannya. Sepanjang setahun kebelakangan ini, dengan menggunakan apa yang dipanggil "vibe coding" secara serius di lantai kilang, saya merasakan kekuatannya dan juga bahaya yang sama besarnya. Dan saya bertembung dengan soalan yang saya kira ramai orang sedang hadapi: bolehkah kod yang dihasilkan AI dibawa ke lantai kilang sebagai kotak hitam, tanpa melihat ke dalamnya?

■ Katakan "saya mahu sesuatu seperti ini", dan ia berfungsi

Vibe coding bermaksud melangkau spesifikasi terperinci: anda menerangkan apa yang anda mahu dalam bahasa biasa, membiarkan AI menulisnya, dan menerima kembali sesuatu yang berjalan. Sepanjang setahun ini kami telah membina beberapa alat kecil untuk lantai kilang tepat dengan cara ini. Malah, kami menghasilkan alat semudah kami bernafas.

Biar saya katakan dahulu bahawa ini benar-benar berkuasa. Apa yang dahulunya tersimpan di rak sebagai "saya mahu, tetapi tiada masa untuk menyelidiknya" kini berjalan pada hari anda memikirkannya. Apa yang dahulunya bermula dengan sebut harga daripada syarikat luar kini terbentuk dalam masa rehat tengah hari. Bagi kilang kecil seperti kami, tiada perubahan yang lebih dialu-alukan.

■ Berjalan dan betul adalah dua perkara berbeza

Namun perkara paling menakutkan tahun ini adalah tepat kerana ia memang berjalan. Apa yang keluar biasanya berfungsi. Skrinnya kemas, nombornya muncul. Kerana ia berjalan, anda tidak dapat menilai dari luar sama ada ia kukuh atau berbahaya.

Pembundaran yang berbeza sedikit di satu tempat. Kelakuan yang tidak tertakrif apabila satu nilai tiba dari luar julat yang dijangka. Ralat yang ditelan dalam diam sehingga semuanya berjalan seolah-olah tiada apa-apa berlaku. Anda tidak akan melihat semua ini dengan merenung skrin yang berfungsi. Satu-satunya orang yang nampak ialah mereka yang pernah menulis kod seperti itu sendiri dan pernah terbakar kerananya.

Pada akhirnya anda tidak boleh berasa tenang sehingga anda mengikuti keseluruhan kod yang keluar. Masa yang sepatutnya anda jimatkan dengan menyerahkannya kembali semula sebagai masa membaca. Ambang untuk membina jatuh dengan mendadak; ambang untuk menyedari bahaya tidak. Ketidakseimbangan itulah perkara paling jelas yang saya pelajari tahun ini. Dalam istilah kami, ia umpama berdiri di hadapan sebuah machining centre bernilai 40 juta yen lalu berkata "ia berjalan, jadi tidak mengapa". Itu tidak sekali-kali dibenarkan.

■ Tiada bahan kerja yang ideal di kilang kecil

Jadi adakah ia alat yang tidak boleh digunakan? Sama sekali tidak. Dalam sesetengah bahagian kerja kami, ia paling sesuai berbanding apa-apa pun. Tetapi untuk menjelaskannya saya perlu berpatah melalui realiti sebuah kilang kecil.

Dalam kes saya, saya kerap melakukan sesuatu yang agak pelik: saya menjana NC — bahasa mesin — dengan vibe coding. Untuk menulis kod yang mengeluarkan NC, Python biasanya dipilih secara automatik; dalam kebanyakan kes saya menggantikannya dengan Ruby. Itulah gaya saya.

Mesin alat NC moden amat jitu. Berikan bahan yang ideal, bentuk yang ideal dan dimensi yang ideal, dan ia akan memotong kemasan yang mengagumkan. Tetapi di bengkel kami, keadaan ideal itu hampir tidak pernah wujud. Anda terpaksa menyiapkannya dengan apa sahaja yang ada. Bahannya tidak sekata; bentuk dan saiznya berbeza setiap kali. Andaian asas "seperti dalam lukisan" itu sendiri tiada di hadapan kami.

Saya menyebutnya "semangat menyiapkan kerja dengan apa yang ada". Itulah kekuatan sebuah kilang kecil dan kebanggaan kami, tetapi dari sudut pandang orang yang menulis atur cara, ia benar-benar menyusahkan. Kerana dimensinya berbeza setiap kali, anda tidak boleh menulis prosedur dengan nombor yang ditetapkan secara tegar. Daripada "potong bentuk ini kepada dimensi ini", ia perlu ditulis semula sebagai "ukur apa yang ada di hadapan anda dan terbitkan potongannya daripada nilai itu". Dengan kata lain, tahap pengabstrakan perlu dinaikkan dengan ketara. Itulah bahagian paling sukar dalam pengaturcaraan di kilang kecil.

■ Amat sesuai untuk memadankan bahan kerja, dan untuk reverse engineering

Dan cara bekerja ini — memadankan dengan bahan sebenar — menyerupai vibe coding sehingga mengejutkan. Tiada spesifikasi sempurna terlebih dahulu; anda menghampiri objek di hadapan anda, memotong lalu mencuba padanannya, mencuba padanan lalu memotong lagi. Suruh ia menghasilkan sesuatu yang berjalan, tunjukkan apa yang salah, suruh ia dibetulkan, dan cuba lagi. Kerana anda boleh menggerakkan tangan sebelum spesifikasi dimuktamadkan, ia sangat sesuai dengan lantai kilang yang "siapkan dengan apa yang ada".

Lebih daripada segalanya, vibe coding melengkapkan bahagian yang paling sukar: menaikkan tahap pengabstrakan. Tunjukkan kepadanya satu versi yang ditetapkan secara tegar dan minta sesuatu yang tetap berfungsi apabila dimensinya berubah, dan ia akan mengenal pasti apa yang sepatutnya menjadi pemboleh ubah. Bahagian pengitlakan yang dahulunya mengambil masa berhari-hari bagi seorang manusia — mencari sudut serangan — dilapangkan sekali gus. Itulah keupayaan yang selama ini tiada pada lantai kilang kami yang "siapkan dengan apa yang ada".

Padanan baik yang satu lagi ialah reverse engineering: mencungkil satu mekanisme yang anda tidak fahami dari luar dan membina semula logik di sebaliknya. Untuk membaca format data yang asing, atau kod panjang yang ditulis seseorang lama dahulu, lalu memahami apa yang dilakukannya, ia sangat boleh diharap. Ini kawasan yang memang kami tidak fahami sejak awal, jadi kesilapan tidak menelan kos besar. Setelah sudutnya diperoleh, manusia boleh mengesahkan selebihnya.

Dekat dengan kami sendiri: atur cara NC yang dikeluarkan oleh pengeluar mesin itu sendiri. Jujurnya, saya tidak begitu menyukainya. Tiada inden, komen yang tidak membantu, tiada cara untuk membaca apa yang dilakukannya. Atur cara yang tidak boleh dibaca ialah atur cara yang tidak boleh dihentikan dan diperiksa. AI mengisi jurang itu. Minta ia menambah inden dan komen kerana kodnya sukar dibaca, dan ia kembali tepat begitu. Katakan tahap pengabstrakannya terlalu rendah dan minta ia dipecahkan kepada subrutin, dan ia membahagikan kod itu kepada blok yang bermakna. Kelakuan yang sama, disusun dalam bentuk yang boleh dibaca manusia — itu mungkin kegunaan yang paling kerap kami capai sekarang.

Apa yang paling menyusahkan kami ialah tiada di mana-mana tertulis pemboleh ubah mana yang terkena kesan sampingan sesuatu subrutin. Panggil ia dan sesuatu berubah. Tetapi apa yang berubah tidak diketahui sehingga anda membaca keseluruhannya. Suruh AI membacanya dan minta ia menyenaraikan, dalam komen di bahagian atas, pemboleh ubah yang ditulis di dalamnya — dan ia mengenal pastinya. Itu kerja yang dahulunya mengambil setengah hari bagi seorang manusia.

Satu contoh konkrit. Kami kerap menyuruh AI menyusun semula atur cara NC untuk mesin wire EDM kami. Ia begitu memudahkan sehingga hampir membuat hidung saya berdarah. Dalam dunia NC, walaupun semua orang menyebutnya "G-code", setiap pengeluar mempunyai tabiat penulisannya sendiri — dialek, pada hakikatnya. Model ini ditulis begini; model itu memerlukan arahan ini. Bagi manusia, ia soal membandingkan manual dan belajar di lantai kilang.

AI membaca perkara itu daripada gaya atur cara yang anda serahkan kepadanya. Ia mengesan konvensyen siapa yang diikuti oleh kod itu, lalu menulis tambahannya dengan konvensyen yang sama. Berikan manual pengeluar sekali, dan ia mula menggunakan makro khusus model itu tanpa diberitahu. Ia membaca bahawa "mesin ini menawarkan arahan ini" lalu menulisnya tanpa teragak-agak. Pengetahuan tersirat itu, yang terkumpul di lantai kilang selama bertahun-tahun, boleh dikeluarkan begini — jujurnya, ia membuat saya meremang.

Tetapi kami tidak pernah menghantar atur cara yang dihasilkan begitu terus ke mesin. Kami menyahpepijatnya. Ia sentiasa dijalankan pada mesin sebenar, dilangkah baris demi baris, dengan nilai pemboleh ubah dan pergerakan wayar diperiksa dengan mata. Di sinilah M01 (optional stop) yang saya tulis bulan lepas membuktikan nilainya. Sebaik mana pun hasil kerjanya kelihatan, jika anda tiada keupayaan untuk menyahpepijatnya pada mesin sebenar, anda tidak boleh menggunakan alat ini. Malah, saya percaya anda tidak sepatutnya. Digunakan sebagai alat untuk menghasilkan jawapan yang betul, ia berbahaya; digunakan sebagai alat untuk mencari sudut serangan, ia amat hebat. Tetapi mengesahkan sudut itu sentiasa di pihak manusia.

■ Patutkah ia menjadi kotak hitam?

Yang membawa kita kembali kepada soalan pembuka tadi. Bolehkah kod yang dihasilkan AI dibawa ke lantai kilang tanpa melihat ke dalamnya? Jujurnya, kami membezakan antara keadaan yang boleh dan keadaan yang tidak boleh. Buat masa ini, garis yang kami tarik ialah berdasarkan di mana ia berada. Di tempat kesilapan boleh disedari dan dibetulkan kemudian, di tempat yang hilang hanyalah masa, kami menggunakannya tanpa mengikuti keseluruhannya. Di tempat mesin bergerak, dimensi ditetapkan dan bahan digunakan — di tempat yang tiada percubaan kedua — manusia membaca kesemuanya, betapa pun jauh jalan pusingnya.

Bahagian yang menyulitkan ialah kotak hitam itu bukan sahaja bahagian yang ditulis AI. Perisian hari ini dibina dengan memanggil masuk sejumlah besar komponen — pustaka yang diterbitkan oleh seseorang, di suatu tempat, dari GitHub dan lain-lain. Baru-baru ini berlaku satu insiden besar dalam dunia JavaScript. (Sebenarnya, pintu belakang seolah-olah muncul hampir setiap hari.) Sebuah pustaka yang menjadi sandaran banyak perisian telah dirampas dan disisipkan satu mekanisme yang berjalan semasa pemasangan lalu menyebarkan dirinya ke pakej berikutnya. Ratusan pakej nampaknya tercemar dalam masa beberapa jam. Tidak lama sebelum itu terdapat kes pemintasan semasa penghantaran untuk menukar destinasi pembayaran — iaitu, mengubah bahagian yang mengendalikan wang.

Minta AI membuat "sesuatu seperti ini" dan ia secara semula jadi akan memilih dan menyertakan komponen yang mudah. Sebahagian sebab ia pantas ialah kerana ia tidak menulis komponen itu sendiri. Maka apa yang kami terima ialah struktur berlapis dua: di dalam kotak yang ditulis AI, ia memanggil kotak orang lain. Tiada tukang yang memotong bahan tanpa tahu apa yang bercampur di dalamnya. Saya rasa perisian pun sama.

Persoalan ini — sama ada anda boleh mempercayai kotak orang lain — bukanlah baharu. Pada pertengahan 1990-an, D. J. Bernstein, yang menulis atur cara pemindahan mel qmail (kami sendiri menggunakannya lebih sepuluh tahun lalu), tidak mempercayai walaupun pustaka standard C — komponen yang datang bersama bahasa itu, yang digunakan semua orang tanpa soal. Dalam nota reka bentuknya beliau menyatakan bahawa beliau sebahagian besarnya telah melepaskan pustaka standard, dan menggantikan bahagian yang paling mudah mengundang kemalangan, seperti pengendalian rentetan dan pengurusan memori, dengan komponen kecil ciptaannya sendiri yang dibangunkan selama bertahun-tahun. Beliau tidak sampai membina semula sistem pengendalian, tetapi pada satu perkara beliau amat teliti: letakkan bahagian yang berbahaya di bawah kawalan sendiri.

Apa yang mengalir sepanjang qmail ialah idea mengurangkan, seboleh mungkin, apa yang terpaksa anda percayai. Selain menulis komponennya sendiri, beliau membahagikan bahagian dalam atur cara itu kepada bahagian-bahagian kecil mengikut peranan, dibina supaya bahagian ciptaannya sendiri pun tidak saling mempercayai. Jika salah satu daripadanya dirampas, ia tidak boleh pergi lebih jauh. Ada orang yang telah memikirkan hal ini tiga puluh tahun lalu. Sudah tentu kami tidak boleh meniru menulis setiap pustaka sendiri. Tetapi ideanya — tariklah sempadan anda dengan andaian bahawa benda yang tidak boleh dipercayai akan bercampur masuk — terpakai terus pada hari ini.

Dan yang menakutkan ialah jika kotak itu terlalu besar, tiada jalan pulang. Ambil sesuatu yang anda tidak fahami jauh di dalamnya sebagai satu bongkah besar dan anda tidak akan dapat memisahkannya apabila sesuatu berlaku. Maka langkah pencegahan mesti diambil dalam reka bentuk: kekalkan ia dalam bentuk yang sentiasa boleh ditukar ganti. Bahagian ini boleh digantikan dengan yang lain; buang komponen ini dan keseluruhannya masih berjalan. Bina begitu, dan pada hari sesuatu berlaku, anda boleh membuang kotak itu sahaja.

Apa yang diperlukan untuk itu ialah kemahiran reka bentuk dalam erti kata berorientasikan objek. Apa yang anda anggap sebagai satu unit, apa yang anda dedahkan ke luar, sebanyak mana bahagian dalamnya anda sembunyikan? Di mana anda menarik sempadan? Apa yang dahulunya dianggap sebagai "menulis dengan kemas" kini menjadi keperluan praktikal untuk tidak membawa masuk benda berbahaya. Justeru kerana AI yang menulis isinya, keupayaan untuk menentukan sempadan itulah yang diperlukan.

Dan garis ini beralih jika dibiarkan. Setelah beberapa ketika semuanya berjalan lancar, orang pasti mahu membesarkan kotak itu. Lebih buruk lagi, keupayaan untuk menyedari bahaya menjadi tumpul tepat setimpal dengan betapa sedikitnya anda menulis sendiri. Alat ini mempunyai sifat bahawa semakin banyak anda menggunakannya, semakin kurang anda dapat menembusi pandangan ke dalamnya. Maka garis itu perlu ditarik semula di pihak manusia, bukan di pihak alat.

■ Kejuruteraan sistem, lebih daripada pengekodan

Mengimbas kembali sepanjang tahun ini, di sinilah tanggapan saya paling banyak berubah: apa yang benar-benar tidak boleh diketepikan mulai sekarang bukanlah pengekodan itu sendiri tetapi kejuruteraan sistem.

Menentukan apa yang hendak dibina dan apa yang tidak. Menarik garis antara apa yang diserahkan kepada mesin dan di mana pertimbangan manusia mengambil alih. Menyediakan, sebelum anda membina, bagaimana anda akan pulih apabila ia berhenti berfungsi. Menentukan di mana data itu berada dan siapa yang bertanggungjawab ke atasnya. Sepandai mana pun ia menjadi, AI tidak akan menentukan semua ini untuk anda — kerana untuk menentukannya seseorang perlu tahu kerja di lantai kilang.

Apabila masa yang dihabiskan untuk menulis kod berkurangan, kami mula menghabiskan masa pada reka bentuk, pada pengendalian, dan pada menilai bila perlu berhenti. Ironinya, hilangnya kepayahan menulis itulah yang membuatkan berat kerja yang datang sebelum menulis jauh lebih mudah dilihat.

■ Setiap proses dibuat sendiri, di Arita

Dalam syarikat kecil, orang yang membinanya itulah yang menggunakannya, dan apabila ia rosak orang yang sama juga yang membaikinya. Jadi "bolehkah kami membinanya?" jauh kurang penting berbanding "adakah ini dalam lingkungan yang boleh kami jaga sendiri?" Kekalkan ia pada skala yang boleh anda pulihkan dengan kudrat sendiri pada hari ia berhenti. Ia tidak menonjol, tetapi saya percaya inilah maksud DX yang dipotong mengikut ukuran sendiri.

Ini kisah yang sama persis dengan membuat egi. Prototaip siap jauh lebih pantas berbanding dahulu. Tetapi langkah mengesahkannya di laut tidak boleh dipendekkan dengan cara apa pun. Yang menentukan baik atau tidak, pada akhirnya, sentiasa laut. Semakin pantas kami boleh membina, semakin banyak masa kami curahkan untuk mengesahkan — itulah kegunaan yang kami pilih.

Di sebuah pekan kecil di luar bandar — Arita, di Wilayah Saga, Jepun — kami terus membuat egi sendiri menerusi setiap proses, daripada reka bentuk hingga pemotongan acuan, pengeluaran besar-besaran dan penjualan. Itulah yang saya fikirkan sepanjang Ogos. Komponen yang ditulis seseorang di suatu tempat di dunia berjalan di dalam kilang kami sendiri, dan sebuah AI membaca dialek mesin-mesin kami. Di tengah-tengah itu, apa yang patut kekal di tangan manusia? Jawapannya belum separuh pun tercapai, tetapi saya berniat untuk tidak berhenti memikirkannya.

■ Ke laut bulan ini

September membawa deretan warna dan produk baharu bagi kami. Akazamurai Meteor Glow Orange ialah oren yang berubah wajah antara pendarcahaya fosforus dan pencahayaan UV; ia dijadualkan dilancarkan bulan ini. JetChaser Purple Edition, yang disasarkan untuk tip-run dari pantai, juga bulan ini. Selain itu, JetChaser saiz 3.0 dan saiz 3.1 akan dijual secara umum, dengan penghantaran dirancang pada penghujung September.

Tahun ini juga menandakan tahun kelima belas sejak warna "Akazamurai" bagi EgiSharp dilahirkan. Pada penghujung bulan lepas kami mengeluarkan imej sebuah warna yang memperingati ulang tahun kelima belas itu. Hakikat bahawa ia terus dipilih selama lima belas tahun bukanlah keyakinan kami sendiri — ia jawapan yang diberikan oleh orang yang telah menggunakannya.

Sepandai mana pun alat menjadi, yang menilai pada akhirnya ialah manusia, dan yang menentukan baik atau tidak ialah laut. Kami akan mengingati hal itu dan terus membuat barang, selangkah demi selangkah. Terima kasih sekali lagi atas sokongan anda bulan ini.

September 2026
KeyStone Corporation
Nobuhide Kanagawa, Pengarah Urusan

Ini ialah keluaran September 2026.

Keluaran lampau

Profil syarikat, sejarah dan akses ada di halaman Syarikat

  1. KEYSTONE Rumah
  2. Machikoba no Techo