Pada awal pandemi Covid-19, gubernur New Jersey membuat pengakuan yang tak biasa: ia kehabisan pengembang COBOL. Sistem asuransi pengangguran negara bagian itu ditulis dalam bahasa pemrograman berusia 60 tahun tersebut dan perlu diperbarui untuk menangani ratusan ribu klaim. Masalahnya, sangat sedikit karyawan negara yang tahu caranya. Dan krisis ini melampaui New Jersey, yang hanyalah satu dari banyak negara bagian yang bergantung pada sistem-sistem kuno ini. Menurut satu perhitungan kasar, ketidakefisienan COBOL menelan biaya PDB AS $105 miliar pada 2020.
Anda mungkin mengira New Jersey telah mengganti sistemnya setelah ini—dan bahwa Covid adalah napas terakhir COBOL. Tidak sepenuhnya. Sistem pengangguran baru negara bagian itu datang dengan sejumlah peningkatan kualitas hidup, tetapi di balik layar, ia masih dijalankan oleh sebuah mainframe yang menggunakan bahasa kuno tersebut.
COBOL, kependekan dari Common Business-Oriented Language, adalah bahasa komputer yang paling luas adopsinya dalam sejarah. Dari 300 miliar baris kode yang telah ditulis pada tahun 2000, 80 persennya adalah COBOL. Ia masih digunakan secara luas dan mendukung sejumlah besar sistem pemerintah, seperti catatan kendaraan bermotor dan asuransi pengangguran; pada hari tertentu, ia dapat menangani sesuatu dalam kisaran 3 triliun dolar transaksi keuangan. Saya melihat COBOL sebagai sejenis asbes digital, yang dulu hampir ada di mana-mana dan sekarang sangat sulit serta berbahaya untuk dihilangkan.
COBOL pertama kali diusulkan pada 1959 oleh sebuah komite yang terdiri dari sebagian besar industri komputer AS (termasuk Grace Hopper). Mereka menyerukan “spesifikasi untuk bahasa bisnis umum untuk komputer digital otomatis” untuk memecahkan masalah yang semakin berkembang: biaya pemrograman. Program ditulis khusus untuk mesin tertentu, dan jika Anda ingin menjalankannya di mesin lain, itu berarti hampir menulis ulang seluruhnya. Komite tersebut mendekati Departemen Pertahanan, yang dengan senang hati merangkul proyek itu.
Desain COBOL membedakannya dari bahasa lain, baik dulu maupun sekarang. Ia dimaksudkan untuk ditulis dalam bahasa Inggris sederhana sehingga siapa pun, bahkan non-programer, dapat menggunakannya; notasi matematika simbolis baru ditambahkan setelah perdebatan yang cukup panjang. Kebanyakan versi COBOL memperbolehkan penggunaan ratusan kata (Java hanya mengizinkan 68), termasuk “is”, “then”, dan “to”, untuk mempermudah penulisannya. Beberapa bahkan mengatakan COBOL dimaksudkan untuk menggantikan programer komputer, yang pada 1960-an menempati posisi eksklusif di banyak perusahaan. Mereka adalah ahli teknologi yang hampir tidak dapat dipahami kebanyakan orang. Perancang COBOL juga berharap ia dapat menghasilkan dokumentasinya sendiri, menghemat waktu pengembang dan memudahkan pemeliharaannya dalam jangka panjang.
Tetapi apa artinya ‘mudah dibaca’? Program bukanlah buku atau artikel; mereka adalah serangkaian instruksi bersyarat. Meskipun COBOL dapat menyederhanakan kompleksitas satu baris kode menjadi sesuatu yang dapat dipahami siapa pun, perbedaan itu runtuh dalam program yang mencapai ribuan baris. (Ini seperti manual perakitan Ikea: Setiap langkahnya mudah, tetapi entah bagaimana barangnya tetap tidak tersusun.) Terlebih, COBOL diimplementasikan dengan sebuah logika yang kemudian sangat dibenci: pernyataan GO TO, sebuah mekanisme percabangan tanpa syarat yang mengirim Anda melompat dari satu bagian program ke bagian lain. Hasilnya adalah “kode spageti”, sebagaimana dikatakan para pengembang, yang membuat kemampuan mendokumentasikan diri sendiri menjadi tidak relevan.
Banyak ilmuwan komputer memiliki masalah dengan COBOL sejak awal. Edsger Dijkstra terkenal membencinya, dengan berkata, “Penggunaan COBOL melumpuhkan pikiran; oleh karena itu, pengajarannya harus dianggap sebagai pelanggaran kriminal.” Dijkstra juga membenci pernyataan GO TO, dengan argumen bahwa itu membuat program hampir mustahil dipahami. Ada tingkat kesombongan yang nyata: COBOL sering dipandang rendah sebagai bahasa yang murni utilitarian dan dimaksudkan untuk memecahkan masalah-masalah membosankan.
Jean Sammet, salah satu perancang awal, memandangnya berbeda—bahasa tersebut hanya memiliki tugas rumit untuk merepresentasikan hal-hal yang rumit, seperti jaminan sosial. Atau seperti yang ditulis seorang pembela lain, “Sayangnya, ada terlalu banyak program aplikasi bisnis semacam itu yang ditulis oleh programer yang tidak pernah mendapat manfaat dari pengajaran COBOL terstruktur yang baik.” COBOL yang baik memang dapat mendokumentasikan dirinya sendiri, tetapi banyak hal bergantung pada programer spesifiknya. Fred Gruenberger, seorang matematikawan dari Rand Corporation, menyatakannya seperti ini: “COBOL, di tangan seorang ahli, adalah alat yang indah—alat yang sangat kuat. COBOL, sebagaimana yang akan ditangani oleh seorang pegawai rendahan di suatu tempat, akan menjadi kekacauan yang menyedihkan.”