Hari ini sudah sangat banyak orang baik yang meluangkan waktunya untuk membuat addons programming seperti framework, atau plugin, atau library untuk mempersingkat waktu kerja programmer. Suatu jasa yang sepertinya banyak programmer lupa untuk berterima kasih akannya.
Banyak programmer yang alih-alih berterima kasih dengan semua produk addons yang mereka pakai tersebut kepada sang vendor, mereka justru meributkan dan berdebat mengenai addons tersebut. Padahal, mereka memakai seluruh addons tersebut gratis.
Siapa yang pernah membayar jQuery, atau Bootstrap, atau bahkan bahasa pemrograman beserta softwarenya seperti browser, Android Studio, Dart, Flutter, hingga Java, Python, dan beberapa bahasa pemrograman lainnya? Tidak ada.
Saya semakin kemari semakin jarang menemukan programmer yang benar-benar paham konsep dan fundamental. Justru yang sering saya temui adalah programmer yang sepertinya baru kenal beberapa istilah teknis kemudian mereka sudah berani mendebat yang lain.
Bahkan saya pernah mendengar seorang mahasiswa berprinsip, “di kampus saya, yang namanya ngoding itu ya pakai library atau framework.”
Lebih parah lagi, banyak programmer yang lebih mengandalkan tools hingga bahkan fitur drag and drop. Mereka seakan sudah hampir tidak lagi mengenali algoritma-algoritma yang dibutuhkan untuk menunjang aplikasi mereka.
Atau singkatnya, banyak programmer yang untuk algoritma paling sederhana sekali pun, mereka lebih memilih untuk menggunakan plugin daripada menulis kode mereka sendiri yang mungkin hanya beberapa baris.
Saya sejenak melepas penat saya dari kegiatan ngoding saya dan membuka emulator konsol jadul dan bermain salah satu permainannya. Di sana saya berpikir, “Wew dengan bahasa assembly begini mereka berhasil membuat permainan yang luar biasa mulus meski dengan grafik dan memori yang sangat terbatas.”
Kini saya bahkan merasa kesulitan meski hanya untuk mencari algoritma simpel semisal tubrukan momentum antar lingkaran seperti yang terjadi di permainan biliar. Yang saya temukan justru semuanya library yang sudah jadi dan terlalu kompleks karena banyak modul yang saya tidak butuhkan seperti gravitasi dan damping segala macamnya.
Bahkan karena komplektivitas sebuah library dengan banyak modul yang kurang diperlukan, dapat memperbesar kemungkinan adanya bug tambahan serta kebocoran memori.
Padahal saya hanya ingin buat algoritma sederhana yang hanya melibatkan massa, friksi, dan kecepatan saja.
Siapa di sini yang ukuran librarynya jauh besar daripada kodingan utamanya hanya untuk sebuah aplikasi simpel CRUD? Sangat tidak lucu jika ada programmer membuat aplikasi kalkulator saja ukuran aplikasinya harus lebih dari 10MB. Bandingkan game kompleks jadul Nintendo (NES) seperti Mega Man yang ukuran maksimalnya hanya 512KB sudah termasuk grafik dan musik.
Justru programming sebenarnya adalah seni menyusun algoritma seperlunya saja yang kemudian diterapkan ke dalam masing-masing bahasa pemrograman seefisien mungkin.
Trik algoritma ini bukan hanya berlaku untuk alur utama dari sebuah program aplikasi atau game saja, namun juga berlaku untuk keamanan, optimasi, pengolahan data, hingga proses penyortirannya.
Mengapa kita berusaha mengajari mesin dengan algoritma-algoritma tersebut? Karena tentu saja untuk menyenangkan hati para penggunanya. Bagaimana seorang ingin memakai aplikasi yang algoritma utamanya mulus namun algoritma penunjangnya jeblok.
Seperti, dulu ada kasus seorang kenalan rekan programmer saya yang ‘jago’ ngoding sehingga aplikasinya berjalan lancar minim bug. Namun saat pelanggannya memiliki data lebih dari 10000 baris, aplikasinya membutuhkan waktu hingga 3 (tiga) menit untuk memuat seluruh data.
Bencana. Benar-benar sebuah bencana. Itu pun yang masih bermasalah baru dari segi algoritma optimasi data, belum lagi algoritma penunjang lain seperti keamanan data dan sanitasi inputan.
Sebenarnya saya tidak begitu peduli dengan istilah-istilah yang ada dalam dunia program. Saya hanya memikirkan apa yang membuat klien saya puas, itulah metode yang saya ambil.
Jadi jika berdebat masalah teori, pasti saya sudah menyerah kalah bahkan sebelum debatnya dimulai. Inilah alasan mengapa saya menghindari debat dalam bentuk apa pun. Karena kualifikasi sebenarnya adalah, mereka yang berhasil membuat para penggunanya bahagia adalah pemenangnya.