14 poin oleh GN⁺ 2025-12-12 | 7 komentar | Bagikan ke WhatsApp
  • Dalam budaya pengembangan perangkat lunak modern, nama proyek dan library semakin dipenuhi kata-kata arbitrer yang tidak terkait dengan fungsinya
  • Dulu, nama seperti grep, awk, sed, FORTRAN, COBOL secara langsung menjelaskan fungsi atau tujuannya, tetapi belakangan ini nama tanpa makna bermunculan di mana-mana
  • Tren ini makin cepat menyebar seiring meluasnya GitHub dan budaya startup, hingga hubungan antara nama dan fungsi benar-benar terputus
  • Biaya pemahaman dan beban kognitif meningkat, sehingga pengembang harus berulang kali melakukan penelusuran yang tidak perlu hanya untuk memahami peran tiap alat
  • Tulisan ini menyerukan pemulihan aturan penamaan yang jelas dan berpusat pada fungsi, serta menekankan bahwa untuk alat teknis, kejernihan dan profesionalisme harus didahulukan daripada branding

Perubahan dalam praktik penamaan perangkat lunak

  • Richard Stallman dalam ceramah EmacsConf 2022 menyebut pentingnya “nama yang mudah diingat” dan menekankan bahwa nama paket harus menunjukkan apa yang dikerjakannya
    • Ekosistem Emacs secara tradisional mempertahankan praktik penamaan berbasis fungsi seperti dired(editor direktori) dan eshell(shell Emacs)
  • Namun, pengembang modern cenderung memberi nama alat dengan kata benda acak, makhluk mitologi, atau karakter fiksi
    • Ini adalah perilaku yang di bidang teknis lain akan dianggap sebagai kurangnya profesionalisme

Masalah nama yang tidak bermakna

  • Sebagai contoh, nama alat seperti “Viper”, “Cobra”, “Melody”, “Casbin”, dan “Asynq” sama sekali tidak memberi petunjuk tentang fungsinya
    • Penulis menyebut pengalaman harus mencari di internet terlebih dahulu hanya untuk memahami penjelasan infrastruktur dari seorang teman
  • Di bidang rekayasa lain, nama biasanya menjelaskan struktur atau fungsi
    • Contoh: Golden Gate Bridge, Hoover Dam, I-beam, butterfly valve dengan jelas menunjukkan bentuk atau perannya
    Iklan
  • Di bidang kimia, seperti dalam tata nama IUPAC, nama ditetapkan agar merujuk tepat pada satu objek
    • Contoh: 2,2,4-trimethylpentane berarti satu molekul tertentu, dan tidak diberi nama sembarang seperti “Steve”

Aturan penamaan masa lalu dan keterputusan saat ini

  • Pada 1980-an, singkatan berbasis fungsi seperti grep, awk, sed, cat, diff adalah arus utama
    • Nama bahasa pemrograman seperti FORTRAN, COBOL, BASIC, SQL, Lisp juga mencerminkan tujuannya
  • Sejak 2010-an, penyebaran nama tanpa makna mulai meluas
    • Sebagian nama seperti MongoDB masih punya kaitan fungsi atau etimologi, tetapi setelah itu nama tak bermakna meningkat tajam di tengah GitHub dan budaya startup
    • Salah satu penyebab yang ditunjuk adalah kecenderungan meniru kisah sukses berbasis merek seperti Google
Iklan

Biaya kognitif dan turunnya efisiensi pengembang

  • Nama seperti libsodium sulit ditebak fungsinya, sehingga pengembang harus berulang kali melakukan peralihan konteks
    • Waktu terbuang sia-sia hanya untuk menafsirkan “mengapa sodium?”
  • Semakin banyak dependensi sebuah proyek, semakin menumpuk pula pajak kognitif (cognitive tax) ini
    • Hal ini pada akhirnya menurunkan produktivitas pengembang
  • Penulis menyoroti bahwa saat memproses kalimat seperti “Viper, Cobra, Melody…”, sumber daya mental terbuang untuk menafsirkan token tanpa makna

Sanggahan umum dan bantahannya

  • “Nama yang mudah diingat lebih menguntungkan untuk pemasaran” → alat untuk pengembang bukan produk konsumen, dan kejelasan fungsi lebih penting
  • “Nama deskriptif itu membosankan” → kebosanan bisa diterima sebagai harga dari kejelasan, sama seperti alat bedah yang mungkin membosankan tetapi presisi
  • “Ini hanya untuk bersenang-senang” → semua pengguna harus menanggung biaya dari ‘kesenangan’ itu, dan ujungnya membuang waktu di seluruh industri
  • “Semua nama bagus sudah dipakai” → namespace, prefiks, dan kata majemuk bisa menjadi solusi, dan setidaknya nama harus tetap berkaitan dengan fungsi

Arah ke depan

  • Masalah ini dijelaskan bukan sebagai sesuatu yang jahat, melainkan hasil dari perubahan budaya
    • Saat pemrograman bergeser dari berpusat pada perusahaan ke berpusat pada komunitas, norma sosial melemah
  • Solusinya adalah pemulihan budaya aturan penamaan
    • Bukan melalui regulasi, melainkan lewat pemulihan profesionalisme, pendidikan, dan tekanan sosial
    Iklan
  • Nama library harus mencerminkan fungsinya, dan bila perlu kata majemuk serta ungkapan yang panjang pun boleh digunakan
    • Contoh: “http-request-validator” jauh lebih jelas daripada “zephyr”
  • Pisahkan maskot dari nama
    • Contoh: PostgreSQL menggunakan maskot gajah Slonik, tetapi nama produknya sendiri tetap mempertahankan makna fungsional
  • Jika itu bukan produk konsumen yang benar-benar membutuhkan branding, maka kejernihan dan profesionalisme harus diutamakan
    • Sebelum menempelkan “nama karakter anime favorit”, tanyakan pada diri sendiri: “apakah insinyur sipil akan memberi nama seperti ini pada sistem jembatan?”
  • Kesimpulannya, maraknya nama tanpa makna harus dihentikan dan kita perlu kembali ke bahasa profesional yang jelas
    • Kejelasan bukanlah kebosanan, melainkan penghormatan terhadap waktu dan sumber daya kognitif pengguna

7 komentar

 
roxie 2025-12-15

Kalau tidak menuliskan contoh, daya persuasinya mungkin akan naik 10%..

 
kandk 2025-12-15

Saya agak setuju, tapi sepertinya mereka tidak ingin stres karena harus memberi nama.

 
qpolsa95 2025-12-13

Nama yang lumayan bagus sudah dipakai orang lain semuanya.

 
GN⁺ 2025-12-12
Komentar Hacker News
  • Versi GNU dari Yacc disebut Bison. Pine adalah singkatan dari “Pine Is Not Elm”, dan UNIX berasal dari UNICS, permainan kata dari MULTICS. Saya tidak tahu dd berarti apa, nano adalah kloning dari pico, dan Postfix adalah gabungan dari ‘post’ dan ‘bug fix’. C++ adalah versi inkremental dari C, C adalah penerus B, dan B adalah penerus BCPL. Sebenarnya para pengembang bukan kehilangan ‘filsafat penamaan’; sejak awal mereka memang tidak pernah punya itu. Sebaliknya, saya rasa proyek modern seperti Clang, LLDB, jq, fzf, dan loc adalah contoh nama yang bagus. mise-en-place adalah metafora yang sempurna untuk fungsi mise

    • dd berasal dari pernyataan DD di JCL. Awalnya diambil dari cara IBM mainframe mendeskripsikan berkas, dan perintah dd di UNIX dibuat untuk bertukar berkas dengan mainframe. Itu sebabnya sintaksnya memakai format key=value, yang terasa tidak seperti UNIX
    • dd secara tradisional sering dijadikan lelucon sebagai “delete disk” atau “destroy data”, karena memang sering dipakai untuk menimpa blok disk
    • C++ berarti operator post-increment pada C. Artinya, nilainya sama dengan C tetapi bertambah setelah dibaca, sebuah metafora yang sangat pas
    • GNU dan Emacs juga merupakan akronim rekursif. Perl, Python, Java, Go, Pascal, Git, Mercurial, CVS, dan lainnya juga punya makna nama yang beragam. Pada akhirnya, saya rasa perdebatan soal nama ini hanyalah keributan tanpa arti besar
    • Back Orifice 2000 dari namanya saja sudah jelas melakukan apa, tetapi BitchX tidak
  • Perintah UNIX seperti grep, awk, sed, cat, diff punya nama yang fungsional atau sistematis, tetapi sebenarnya hanya diff yang kira-kira bisa ditebak secara intuitif. Menyebut awk sebagai nama yang bagus itu berlebihan

    • Nama-nama ini terasa alami hanya karena ilusi keakraban. Sekarang ada begitu banyak utilitas dan pustaka sehingga pembedaan nama menjadi hal yang wajib
    • Libiberty adalah salah satu nama paling lucu. Nama itu dibuat supaya bisa di-link dengan opsi -liberty
    • cat bukan singkatan dari concatenate, melainkan berasal dari catenate. Prefiks ‘con’ dianggap redundan sehingga dihilangkan. Ini contoh yang menarik juga secara linguistik
    • awk, sed, dan cat bukan nama yang bagus, melainkan hanya nama yang sudah akrab. grep justru terdengar seperti onomatope, memberi kesan ‘menangkap’ pola
    • Akronim atau singkatan semacam ini, seperti jargon khusus industri, akan terasa alami begitu sudah dipelajari. Dulu efisiensi mengetik penting, jadi perbedaan antara cat dan concat memang berdampak pada produktivitas
  • Saya menolak klaim bahwa “penamaan seperti ini adalah bunuh diri karier di bidang teknis”. Jika melihat daftar nama kode Departemen Pertahanan AS, justru banyak nama yang sengaja dibuat tidak transparan. Hoover Dam pun awalnya disebut Boulder Canyon Project, dan namanya tidak menjelaskan fungsi. Apakah Reitzlib nama yang lebih baik daripada Requests? Pada akhirnya, nama bergantung pada konteks

    • Di kimia juga banyak nama yang menyenangkan. Misalnya algoritme atau paket seperti SHAKE, RATTLE, CHARMm, dan Amber. Nama yang imut malah lebih umum di bidang biologi
    • Meteorologi juga tidak terkecuali. Nama fenomena aurora STEVE adalah contoh yang terkenal
    • Nama kode militer sengaja dibuat acak untuk menyembunyikan makna. Proyek internal perusahaan juga kadang memakai pendekatan ini
    • Di biologi juga sama, ada nama seperti Sonic hedgehog protein
    • Astronomi terkenal khususnya karena nama akronim yang paling buruk. Contohnya bisa dilihat di tautan ini
  • Nama seperti awk sebenarnya bukan nama yang bagus. Itu hanya inisial penulisnya, dan sama sekali tidak menyampaikan fungsi. Sekarang ada tab autocompletion, jadi tidak perlu lagi memendekkan nama hanya demi singkat

  • Saya setuju dengan tulisan sanggahan ini. Identitas eksternal berubah maknanya seiring waktu, jadi nama yang terlalu deskriptif sejak awal tidak akan bertahan lama. Selain itu, nama seperti “X Manager” atau “X Service” terlalu banyak sehingga sulit dibedakan

    • Saya suka nama yang cerdik. Jika sulit memberi nama, itu tanda konsepnya belum jelas. Nama yang ideal terasa aneh pada awalnya, tetapi jadi mudah diingat setelah tahu maknanya. Tim A/B testing di Spotify yang menyebut diri mereka “ABBA” adalah contoh terbaik
    • Tentu saja ini bergantung pada tujuannya. Namun, berfokus pada satu hal, dan memasukkan hal itu ke dalam nama, juga merupakan prinsip yang baik
  • Saya pernah bekerja sebagai insinyur kalibrasi mesin di OEM otomotif, dan semua variabel serta fungsi ditulis dalam bentuk singkatan. Bulan pertama terasa sangat melelahkan sampai rasanya kepala mau pecah. Seorang rekan akhirnya berkata, “Ini seperti belajar bahasa baru,” dan memang begitu. Artinya, banyaknya nama teknis tidak otomatis mengurangi beban kognitif

    • Di bidang komunikasi seluler juga sama. Jika mencoba menghafal semua singkatan, tidak akan ada habisnya. Misalnya AP bisa berarti Application Processor atau Access Point tergantung konteks. Meski begitu, tetap lebih pendek daripada MSISDN, jadi mau tak mau dipakai
    • Jika melihat video ujian lisensi taksi London, disebutkan bahwa kelelahan belajar bisa begitu besar sampai struktur otak benar-benar berubah. Sistem penamaan yang rumit pada dasarnya memberi beban kognitif
  • Saya sulit setuju dengan klaim bahwa “nama fungsional lebih baik daripada pemasaran”. Nama berbasis fungsi pada akhirnya hanya menciptakan lautan akronim tanpa akhir. Situasi seperti tertukar antara ABDC dan ADBC pun muncul

    • Saya juga pernah bekerja di organisasi seperti itu; hasilnya justru muncul nama seperti CoreMainHttp dan MainHttpCore, bahkan API berbeda dengan nama yang sama hidup berdampingan. Nama organisasi yang sudah hilang pun tetap tertinggal dalam nama seperti “DataOrgUtils”. Pada akhirnya, nama yang lucu pun berulang ke pola yang sama. Meme budaya seperti Phoenix, Keymaster, Simpsons, dan Star Wars terus muncul berulang
    • Penulis mengabaikan fakta bahwa alat-alat ini bertahan hidup lewat persaingan. Nama yang mudah diingat membantu mereka bertahan
  • Menarik juga melihat tulisan seperti ini muncul di HN. Mengambil nama seperti awk sebagai contoh lalu mengklaim “kita telah kehilangan hakikat penamaan” itu kontradiktif. Pada akhirnya ini tampak seperti ketidaksukaan pribadi terhadap nama yang lucu. Sebagai catatan, komentar ini ditulis di Firefox — dari namanya saja tidak mungkin tahu bahwa itu peramban web

    • Nama seperti awk pun punya makna pada zamannya. Perangkat lunak modern mempertimbangkan basis pengguna yang lebih luas, jadi perlu keseimbangan antara profesionalisme dan kesenangan. Bukan berarti saya membenci nama yang lucu, hanya saja dalam konteks profesional kita memang perlu berhati-hati. (Komentar ini dikirim dengan msmtp — klien SMTP yang menjelaskan fungsinya tepat seperti namanya)
  • Menanggapi klaim bahwa “nama deskriptif itu membosankan”, alat-alat di ruang operasi pun sebenarnya banyak yang memakai nama orang. Adson, Allis, Babcock, Kocher, dan lainnya sama sekali tidak menjelaskan fungsi. Pada akhirnya, begitu sudah terbiasa, nama itu menjadi bermakna. awk kurang bagus, tetapi diff adalah contoh yang lumayan

    • Siapa pun yang pernah dipasangi pin Kirchner ke tubuhnya pasti akan setuju dengan ini
  • Menanggapi klaim bahwa “bidang kita seperti kebun binatang berisi kata benda acak”, saya suka nama yang menyenangkan. Proyek saya, Wimsey, adalah pustaka pengujian data, tetapi dari namanya saja orang tidak akan tahu. Tetap saja, saya menyukai nama seperti Python, Cron, dan Zellij yang mengandung rasa sayang dan humor. Teknologi pada akhirnya dibuat oleh manusia, dan harus ada unsur kegembiraan. Dibanding “brown-dog-2”, “cookie” terasa lebih manusiawi

    • Namun, nama seperti “data-testing-library” kehilangan makna begitu versi kedua muncul
    • Nama terstruktur seperti Project.Parser.Pcapng di .NET bagus di dalam proyek, tetapi tidak berguna dalam konteks yang berdiri sendiri
    • Sebaliknya, ada juga orang yang merasa kesenangan justru ada dalam profesionalisme itu sendiri, dan menganggap nama yang lucu itu mengganggu. Ada pandangan bahwa kepuasan yang datang dari keahlianlah yang merupakan kesenangan sejati
 
epdlemflaj 2025-12-13

Bahkan awk pun rasanya bukan nama yang berbasis fungsi....

 
khris 2025-12-13

Ada yang tahu emacs artinya apa? Memang ada kepanjangannya, tapi nama akronim itu juga tidak bisa langsung dipahami dari sekali lihat, padahal itu nama... Dan untuk memberi nama hanya berdasarkan fungsi, sekarang proyeknya sudah terlalu banyak.

 
cgl00 2025-12-13

Kalau lihat mereka menyalahkan GitHub, ini cuma nyinyiran gaya RMS aja wkwk