Sabtu, 23 Mei 2009

PROGRAMMING: SCIENCE OR SORCERY?

Charless A.R. Hore adalah seorang saintis besar, pembuat algoritma QuickShort. Tulisannya berjudul “ Programming: Sorcery or Science” diterbitkan di IEE, April tahun 1984. Apakah memang programming lebih mirip ilmu sihir (sorcery) ketimbang ilmiah (ilmu mikir susah)?


Saya pikir, YA. Pada ilmu sihir, gagal atau berhasilnya pencapaian tujuan ditentukan oleh mantra-mantra. Hermione di film “Harry Potter” sering berhasil karena hapal mantra-mantra. Pada programming, banyak hal telah menjadi mantra praktisi: DNS, SID, dcpromo, Squid, BSS, dan sebagainya. Bila ada masalah, pertanyaan apa yang sering diajukan oleh konsultan, anggota milis, atau vendor? “Sudah set ORACLE_SID?”, “Sudah jalankan DHCP?”. “Sudah jalankan DNS?” Inti solusi-solusi di atas mirip solusi Hermione: Hapalkan mantra, atau siap dengan salinan mantra. Dalam programming saat ini: hapalkan prosedur (atau catat di ats kertas).
Pemahaman tidak penting. Bahkan kepanjangan dari istilah juga tidak penting diketahui.

Kepanjangan DNS? Ada yang bilang Domain Name Server, dan ada yang bilang Domain Name System. Bahkan sebuah buku terbitan Microsoft Press salah menyebutkan kepanjangan DNS sebagai Domain Name Service. Silahkan cek mana yang benar. Dari semua istilah/mantra, yang paling berkesan bagi saya adalah PCMCIA. Ini singkatan dari People Cannot Memorize Computer Industry Acronyms. Ooops, salah. Maksudnya, Personal Computer Memory Card Industry Association.

Sepertinya di berbagai vendor dan organisasi internasional para “penyihir” punya asisten untuk membuat berbagai singkatan dan kepanjangan. Bahasa C punya mantra yang layak disebut BSS. Tahukah anda kepanjangan, makna, dan gunanya? BSS terkait dengan C. Tapi saya jamin bahwa sekalipun Anda membeli 100 buku C, sangat kecil kemungkinan bisa menjawab tiga pertanyaan di atas. Saya mencari tentang BSS di Web. Hasilnya sama sekali tidak memuaskan. Linux punya satu mantra yang layak disebut : umask. Saya sampai saat ini tidak tahu apakah unmask berarti unmask atau usermask. Bila anda tahu penjelasan resminya, e-mail saya. Bahwa programming seperti sihir juga berwujud dalam hal percaya kepada sesuatu, dan jangan ditanyakan kenapa. Kalau berani bertanya kenapa, “penyihir” (vendor) akan menjawab “itu best practice”. Biasanya konsultan (apalagi pemakai) akan diam.

Ada contoh menarik tentang klaim “ Best Practice” yang menjadi perdebatan saya dengan Tom Kyte, #1 expert di dunia ini tentang Oracle. Dia mengklaim bahwa cascade update tidak perlu, bahwa primary key tidak boleh berubah, dan tidak mungkin berubah. Saya bukan orang yang mudah percaya kepada ahli-ahli TI sehingga saya mendebat Tom dan meminta bukti-bukti. Saya sendiri memberi banyak bukti untuk menunjukkan kesalahannya. Kalu tidak perlu kenapa cascade update ada di standar ISO, ada di beberapa produk lain (Access, SQL Server), dan kenapa para pemakai tidak meminta penghapusan cascade update? Tentang Primary Key : saya katakana pengarang database-text-books tidak menyatakan primary key tidak boleh diubah. Tom di websitenya asktom.oracle.com akhirnya menyatakan “OK,you win”. Debatnya dapat dilihat pada http://asktom.oracle.com/pls/asktomf?p=100:11:126353222799082::NO::P11_QUESTION_ID:5773459616034. Cara lain untuk mengetahuinya adalah visit asktom.oracle.com dan cari “cascade update”. Saya sampaikan debat ini ke mills ORAID. Anehnya, lebih banyak yang setuju dengan Tom Kyte dan tanpa bukti mengulang argument-argumen Tom (yang tidak dipertahankan lagi oleh Tom)!

Pada kesempatan ini, saya muat satu saja dari berbagai pertanyaan tersebut: “Kalau Java begitu mudah, mengapa membuat program sederhana seperti ‘Hello World’ saja kok begitu rumit?” Tak ada bukti ilmiah adanya alas an kuat untuk membuat Java belepotan dengan “keyword” public static class dan entah apa lagi. Programming is sorcery, not scientific. (ridho@biztek.info,,, seorang Business Intelligent Expert)

1 komentar:

Anonim mengatakan...

maaf pak,trus maksud dari tulisan ini apa?
apakah menganggap programming hanya memorize (hapalan) saja, trus ga usah ditekuni or gimana?

Posting Komentar

firmahn's Profile on Ping.sg