JavaScript Mengendalikan Dunia – Bahkan Mungkin Secara Literal

Lex Fridman telah melakukan banyak wawancara panjang di podcast populer miliknya. Namun, episode dengan programmer legendaris John Carmack memiliki nuansa versi direktur yang tak terkendali. Selama lebih dari lima jam, Carmack membahas segala hal mulai dari operasi vektor hingga Doom. Namun, ada sesuatu yang dikatakan Fridman, secara sembarangan, yang benar-benar membenarkan durasi yang panjang: “Saya pikir jika kita hidup dalam simulasi, itu ditulis dalam JavaScript.”

Untuk mengulas: JavaScript adalah yang membuat halaman web statis menjadi “dinamis.” Tanpa itu, internet akan terlihat seperti ruang permainan setelah jam kerja, tak bernyawa dan gelap. Saat ini, bahasa pemrograman ini digunakan baik dalam pengembangan front-end maupun back-end untuk berbagai platform mobile dan aplikasi, termasuk Slack dan Discord. Dan hal utama yang perlu dipahami tentang hal ini, dalam konteks koan geeky Fridman, adalah: Bagi setiap pemrogram yang menghormati dirinya sendiri, mengakui bahwa mereka sebenarnya menyukai JavaScript adalah sesuatu yang dihindari—seperti seorang pembuat film independen mengakui bahwa dia menyukai Marvel.

Saya kira ini ada hubungannya dengan fakta bahwa JavaScript diciptakan dalam waktu yang lebih singkat daripada yang dibutuhkan untuk membuat sebuah botol kombucha: 10 hari. Pada tahun 1995, Netscape menyewa seorang programmer bernama Brendan Eich untuk menciptakan bahasa yang dapat disematkan di browser mereka, Netscape Navigator. Awalnya dinamai LiveScript, bahasa tersebut diubah namanya menjadi JavaScript untuk memanfaatkan hype seputar bahasa yang tidak terkait bernama Java, yang diperkenalkan pada tahun yang sama. (Jika ditanya perbedaan antara Java dan JavaScript, seorang programmer mungkin akan bercanda: “Java sama dengan JavaScript seperti mobil sama dengan karpet.”) Sampai hari ini, sedikit orang yang menganggap JavaScript sebagai bahasa yang dirancang dengan baik, termasuk Eich sendiri. “Saya menciptakan JavaScript pada tahun 1995,” katanya sekali, “dan sejak itu saya terus membayar dosa saya.”

MEMBACA  Bagaimana Pemilihan Presiden AS ini dapat mengubah keadaan dunia

Apa kejahatannya, sebenarnya? Anda dapat dengan mudah menemukan banyak posting blog, meme, dan benang Reddit yang menyerang JavaScript, tetapi yang saya sukai adalah sebuah pidato selama empat menit oleh insinyur perangkat lunak Gary Bernhardt berjudul “Wat.” Bayangkan, sebagai permulaan, menunjukkan kelompok penutur bahasa non-Inggris bentuk sekarang dan bentuk lampau dari kata kerja seperti boil (boil/boiled) dan chew (chew/chewed). Kemudian, saat Anda meminta mereka untuk mengubah kata makan, siapa yang bisa menyalahkan mereka jika mereka menjawab makan/makanned? Demikian pula, pidato “Wat” adalah deretan kesalahan aneh dan perilaku tak terduga dari JavaScript. Misalkan Anda ingin mengurutkan daftar angka: [50, 100, 1, 10, 9, 5]. Memanggil fungsi sort bawaan dalam bahasa yang waras mengembalikan daftar tersebut secara urut numerik: [1, 5, 9, 10, 50, 100]. Melakukannya dalam JavaScript mengembalikan [1, 10, 100, 5, 50, 9], di mana 10 dan 100 dianggap lebih besar dari 5. Mengapa? Karena JavaScript menginterpretasikan setiap angka sebagai tipe string dan melakukan pengurutan leksikal, bukan pengurutan numerik. Keseluruhan adalah kegilaan.

Ketika Fridman mengatakan bahwa JavaScript menguasai dunia, dengan kata lain, yang ia maksudkan adalah bahwa dunia kita, seperti kode sumber yang mendasarinya, sangat bermasalah dan sulit dimengerti. Ini setara dengan mengucapkan, dengan napas panjang, bahwa mengingat keadaan planet yang menyedihkan, Deklarasi Universal Hak Asasi Manusia harus ditulis dalam Comic Sans.

Pada titik ini, saya harus mengakui bahwa meskipun JavaScript bukan bahasa favorit saya, saya menyukainya. Bahkan menyukainya. Jadi saya tidak bisa tidak merasa tidak setuju ketika sekelompok pemrogram mengkritiknya. Seringkali mereka fokus pada kekurangan yang telah diselesaikan bertahun-tahun yang lalu. Untuk terus membicarakan kekurangan asli JavaScript adalah mengabaikan fakta bahwa setiap perangkat lunak—dan setiap bahasa pemrograman pada dasarnya adalah kumpulan perangkat lunak—dapat direvisi dan diperbaiki.

MEMBACA  Biologis Menemukan Apa yang Membuat Kutu Kasur Sulit Dibunuh dengan Insektisida