Kamis, 01 April 2010

Bahasa yang buruk vs programer yang buruk

Apakah kita seharusnya menangisi kenyataan bahwa Perl tidak lagi menjadi bahasa primadona untuk Web? Rasanya sulit bisa mengejar popularitas PHP, atau Ruby dan Python saat ini di domain pemrograman Web. Dulu pertengahan 1990-an Perl dipilih karena belum banyak bahasa lain yang tersedia default di server-server Unix. Alternatifnya saat itu hanyalah C, shell, atau Tcl. Kini persaingan amat ketat/banyak. Perl termasuk salah satu yang lebih sulit/lama dipelajari dan selain itu memiliki imej "tua" (padahal umurnya gak beda jauh dengan rekan2nya, hanya sekitar 1-2 tahun dengan Python dan hanya 5 tahunan lebih dengan Ruby; semua bahasa2x ini sudah hampir atau lebih tua dari 20 tahun).

Di satu sisi kehilangan pamor/momentum/posisi jawara/apalah tentu gak mengenakkan. Tapi di sisi lain, ada manfaatnya. Para "programer" web yang cenderung lebih banyak menghasilkan kode-kode yang buruk jadi meninggalkan Perl. Saya ingat dulu saat Perl popular, betapa komunitas Perl dianggap elitist, eksklusivist, sombong, angkuh, tidak ramah terhadap pemula. Dan bahasa-bahasa lain mulai mendapat tempat di hati khalayak ramai karena menawarkan komunitas yang lebih ramah pemula. (Belakangan, komunitas Perl pun mulai melunak dan menginisiasi effort2x untuk lebih merangkul pemula, seperti membuat milis beginners@, dsb. Tapi mungkin sudah terlambat).

Salah satu alasan mengapa komunitas Perl "benci" pemula adalah: karena begitu banyak niubi yang jadi programer karbitan/jadi2xan berbondong2x mempelajari Perl, kadang setengah2x (atau seperempat2x!), dan selalu mencampurkan konsep Perl dan CGI. Selalu menulis Perl dengan PERL. Selalu mendecode parameter CGI sendiri (karena mengikuti instruksi buku2x Perl tak bermutu), padahal di Perl 4 pun sudah ada cgi-lib.pl. Selalu menanyakan persoalan sepele yang sudah sejak lama ada di FAQ. Selalu mengkopi paste kode dan menulis skrip yang begitu hancur2xan jeleknya.

Sekarang rupanya mayoritas dari mereka sudah berpindah ke PHP. Sebagai pengurus server hosting Linux, sudah sering saya harus mengecek aplikasi PHP milik klien hosting yang bermasalah. Dan tiap kali saya mengintip kode sumbernya, kadang saya tersenyum pahit, kadang mengelus dada, kadang geleng2x kepala. Program2x jelek dan berantakan ternyata tidak pernah punah. Dulu di Perl, sekarang di PHP. Kalau dulu Matt's Script Archive jadi biang hole, kini ada phpBB, WordPress, Joomla sebagai penerusnya.

Apakah Rails atau Django akan kebal dari para programer buruk? Don't underestimate the power of stupid people :)

Maaf, saya tidak bermaksud berarogan ria di sini. Ada berbagai macam alasan mengapa seseorang bisa disebut programer buruk, seringkali itu bukan karena dia bodoh. Deadline yang terlalu singkat menyebabkan harus kopi paste kode. Pengetahuan yang minim karena pengalaman kurang menyebabkan desain yang naif. Peran bahasa untuk melakukan "nudging" dan manajemen insentif untuk memperbaiki kebiasaan-kebiasaan yang salah memang berpengaruh, tapi selalu ada ruang untuk beginner's mistakes. Dan selalu harus ada refactoring. Programer yang buruk tidak pernah melakukan refactoring.

Jadi, bersyukurlah karena nanti 10 tahun lagi para generasi programer baru tidak lagi banyak mengutuk Perl karena harus memaintain kode lama CGI yang sudah membusuk. Melainkan mengutuk PHP karena diwarisi segunung kode spageti busuk bercampur HTML. Atau mengutuk Ruby karena peninggalan kode-kode busuk Rails dengan desain objek yang terbalik-balik dan pattern-pattern salah kaprah.

Programer yang buruk selalu ada sepanjang masa. Bahasa yang saat itu banyak dipakai yang akan jadi kambing hitamnya. :-)

4 komentar:

  1. Mungkin sudah takdir saya belajar Perl padahal dari awal gak ada satupun dari temen deket yang setuju saya belajar Perl (dan menurut saya seudah kita tahu Perl, tidak terlalu susah untuk belajar Javascript, Ruby dan apalagi PHP, entah lah jika saya belajar PHP terlebih dahulu apa saya bisa menjadi programmer Perl ?).

    Dan terus terang aja yang bikin saya suka dari Perl itu adalah komunitas nya yang sangat khas, dengan segala kesinisan, keangkuhan dan benar-benar geek

    BalasHapus
  2. Memang dulu belajarnya taun berapa? Kalo saya karena angkatan tua, belajarnya zaman2x CGI (1996-1997), jadi saat itu Perl-lah yang jadi pilihan utama.

    Iya, barangkali kalo kita pasarkan bahwa dengan belajar Perl jadi mudah belajar Ruby, Python, dll, lebih banyak orang melirik? :)

    BalasHapus
  3. Kalo gak salah tahun 2000 tuh saya baru denger Perl dari tulisannya ESR, itu pun belum serius (dan terus terang pada saat itu, ketika internet masih mahal banget, saya yakin 100 % tak ada tuh yang namanya programmer Perl di indonesia).

    Lalu nyoba kursus singkat dan seudah itu sama yang ngajarin di tunjukin ke milis perl, setelah nanya sekali ke milis tersebut, baru nyadar kalo ternyata ada yang jago banget di id-perl.

    BalasHapus
  4. awalnya serius belajar ICMP, saya pengen banget bikin program kayak 'ping' nya linux pake bahasa programming, setelah nanya di id-perl dan perlmonks, entah kenapa ICMP nya kelupain malah serius di Perl, apalagi beberapa bulan setelah itu di tawarin kerja di jakarta sbg programmer Perl.

    Kalo prof itu pemain catur yang gagal yang kemudian jadi programmer Perl, maka saya Tukang Las yang beruntung yang menjadi programmer Perl (meski gak jago Perlnya)

    BalasHapus