Quantcast
Channel: Etersoul Journey » software
Viewing all articles
Browse latest Browse all 6

Moore’s Law vs. Wirth’s Law and Software Development

$
0
0

Tanpa kita sadari bahwa sekarang kita sudah semakin masuk ke dalam era teknologi yang semakin lama semakin canggih. Dan seperti biasa, kebanyakan dari kita hanya melihat sisi terang dari perkembangan teknologi itu, mulai dari prosesor yang semakin cepat, program-program yang semakin canggih, tampilan yang semakin memukau sampai kepada koneksi internet yang semakin tinggi kecepatannya. Di sisi lain, banyak kekacauan mulai menggerogoti semua hal tersebut dan sebenarnya menghilangkan semua hal itu sehingga apa yang sebenarnya kita rasakan tidak lebih dari teknologi yang kita rasakan beberapa tahun yang lalu.

Aku membaca sebuah artikel yang menarik di IEEE Spectrum mengenai hukum-hukum perkembangan teknologi. Di sana terdapat 5 hukum + 1 hukum yang menggungkapkan fakta di balik realita semu yang banyak dilihat oleh orang-orang. Kelima hukum tersebut adalah Moore’s Law, Rock’s Law, Machrone’s Law, Metcalfe’s Law, dan Wirth’s Law, ditambah dengan sebuah hukum yang tidak terkait secara langsung dengan yang ingin aku bahas di sini Nielsen’s Law.

Moore’s Law diungkapkan oleh Gordon E. Moore mengatakan bahwa jumlah transistor dalam sebuah prosesor akan berganda setiap tahun. Akan tetapi prediksi ini agak meleset sampai akhirnya sekarang prediksi ini menjadi setiap 18 bulan (walau rata-rata terjadi setiap 22 – 24 bulan), dan hukum ini dijalankan oleh perusahaan prosesor terkemuka: Intel. Di sisi lain dengan penambahan transistor ini, perubahan terjadi pada proses fabrikasi dan berarti tentu berpengaruh pada harga, yang akhirnya dikemukakan melalui Rock’s Law.

Rock’s Law yang didedikasikan kepada Arthur Rock, seorang penemu di Intel, mengatakan bahwa harga peralatan semikonduktor (dalam hal ini untuk membuat prosesor) akan mengganda setiap 4 tahun sekali. Secara peralatan yang diperlukan untuk melakukan “pembedahan” atas prosesor memang semakin canggih, tentu peralatan ini akan semakin mahal. Hal ini akan berpengaruh kepada harga produksi prosesor yang semakin mahal tetapi di-eliminasi oleh hukum ekonomi tentang persediaan dan permintaan barang, dengan kata lain produksi massal.  Akibatnya? Muncullah Machrone’s Law tentang harga PC.

Machorne’s Law menyebutkan harga PC yang kita beli selalu US$5.000 (Lima ribu dollar Amerika Serikat). Hukum ini diungkapkan oleh Bill Machorne. Dikatakan bahwa dengan seakan-akan semakin murahnya harga PC, kita pada dasarnya tetap membayar US$5.000 untuk setiap PC. Untuk saat ini memang nilai ini sudah turun ke US$2.000 – 3.000, akan tetapi harga ini tetapi tinggi untuk sebuah unit PC. Percayakah Anda bahwa Anda harus mengeluarkan uang sebanyak ini hanya untuk satu unit PC? Coba Anda tambahkan biaya software, hardware-hardware tambahan, biaya jasa lainnya serta biaya internet sampai ketika komputer Anda usang dan tidak dipakai lagi. Berterimakasihlah kepada pembajakan yang ada di Indonesia sehingga hukum ini menjadi sekedar basa-basi saja. Dan, tadi aku menyebutkan biaya internet dan jasa lainnya? Itu berpengaruh kepada hukum erikutnya yaitu Metcalfe’s Law.

Metcalfe’s Law yang diungkapkan oleh Robert Metcalfe mengatakan bahwa kepadatan jaringan bertambah secara proporsional dengan jumlah pengguna dikuadratkan. Katakanlah bila saat ini seorang pengguna internet harus membuka layanan email, jejaring sosial, video online, instant messaging dan layanan hiburan lainnya di internet dan akhirnya membuat 10 orang lain tertarik, maka orang-orang itu akan kembali membuka dan menggandakan jumlah traffic ini. Belum lagi ditambah dengan terbuangnya traffic yang sia-sia karena spam dan kesalahan, dan juga semakin meningkatnya kebutuhan bandwidth karena content internet yang semakin membengkak jumlahnya. Ternyata bukan hanya network saja yang terimbas hukum ini. Peningkatan performa sesuai dengan Moore’s Law pun memiliki timbal balik, yang dijelaskan dalam Wirth’s Law.

Wirth’s Law dijelaskan oleh Niklaus Wirth, pembuat bahasa pemrograman Pascal, bahwa software melambat lebih cepat daripada penambahan kecepatan hardware. Lucunya ada sebuah kutipan yang menarik yaitu “Grove memberi, dan Gates mengambil kembali” yang berarti ketika kecepatan kalkulasi bertambah, berkat Andy Grove dari Intel, jumlah kalkulasi yang diperlukan untuk melakukan sebuah pekerjaan meningkat juga berkat Bill Gates dari Microsoft, yang akhirnya menyebabkan pengguna tidak menikmati peningkatan berarti dari prosesor. Selain itu banyaknya fitur untuk sebuah software juga membuat kebutuhan resources membengkak melebihi yang diperlukan pengguna.

Wirth menjelaskan bahwa pembengkakkan fitur (feature bloat) ini tidak dirasakan oleh pengguna karena dua alasan: pertama adalah karena hukum Moore yang menyebabkan feature bloat tidak terasa memberatkan, kedua karena pengguna tidak peduli apakah sebuah fitur berguna atau justru tak berguna. Dan masalahnya salah satu vendor yang menerapkan hukum Wirth dan memanfaatkan hukum Moore dengan sebaik-baiknya adalah Microsoft yang memasukkan banyak fitur dalam sebuah produk, padahal belum tentu diperlukan, untungnya belakangan mereka mengklasifikasikan kepada edisi-edisi yang berbeda seperti Basic atau Profesional walau sebuah edisi Basic sekalipun punya fitur yang melimpah.

Sebuah hukum lainnya adalah Nielsen’s Law, diungkapkan oleh Nielsen Jacob, yang mengatakan bahwa koneksi pengguna internet akan meningkat 50% tiap tahunnya, akan tetapi web developer tidak akan merasakan gunanya untuk mengembangkan website sebelum tahun 2003. Dan memang saat ini akhirnya memasuki era Web 2.0 di mana bandwidth yang besar diperlukan untuk melakukan banyak hal seperti streaming video dan lagu, mendownload banyak hal yang dibubuhi tanda HD dan sebagainya.

Yang paling menarik perhatianku adalah hukum Moore dan hukum Wirth di mana kecepatan kalkulasi berbanding terbalik dengan efisiensi software. Memang tidak dapat dipungkiri bahwa mengembangkan software sekarang ini sudah cukup mudah. Tools-tools pun sudah disediakan sehingga orang awam yang tidak punya dasar ilmu komputer dan algoritma bisa mengembangkan software yang hebat sekalipun. Jadi jangan heran kalau sekarang ini banyak sekali anak SMP bahkan SD yang sudah bisa menciptakan software-software yang kelihatannya aduhai, tentu di samping karena asupan DHA dan Asam Linoleat mereka yang cukup tinggi karena dicekoki oleh susu setiap jam (kenyataan yang aku lihat dari sekelilingku).

Platform pengembangan seperti Java dan .NET mempermudah pengembangan software karena banyak hal sudah tersedia di sana. Seorang developer tidak perlu lagi memusingkan kemungkinan error karena pointer atau lambatnya eksekusi sebuah data karena algoritma yang tidak efisien seperti pada C atau C++, yang akhinya mengorbankan banyak waktu dan resources bagi pengguna akan tetapi ditepis dengan alasan kecepatan prosesor sudah semakin tinggi dan pengguna masih bisa bersabar menunggu. Kemalasan untuk berpikir dan melakukan coding yang efisien pun akhirnya tidak dianggap sesuatu yang penting lagi, yang penting adalah program dapat berjalan, bahkan dengan cara naive sekalipun. Yah, selama hukum Moore masih berjalan tentu ini bukan masalah yang berarti bagi para developer dan programmer pemula.

Di sisi lain, justru sebenarnya efisiensi dalam menulis kode akan paling terlihat berguna untuk para developer web di mana aplikasi yang dikembangkan akan diakses oleh banyak orang sewaktu-waktu. Bila pada aplikasi desktop sebuah eksekusi perintah yang efisien itu 0,001 detik dan yang tidak efisien 0,1 detik atau 0,5 detik sekalipun, tentu perbedaan waktu ini tidak akan terasa begitu berarti. Akan tetapi ketika aplikasi web berjalan 0,5 detik untuk sebuah perintah, berarti 100 orang yang mengakses aplikasi bersamaan akan menghabiskan 50 detik untuk sebuah perintah dan akhirnya pengguna pun bisa berpikiran untuk meninggalkan aplikasi yang dibuat karena lamanya respon dari server. Bayangkan dengan eksekusi 0,001 detik yang berarti 100 pengguna akan menghabiskan waktu 0,1 detik saja. Belum lagi karena dianggap membebankan server di shared hosting, akhirnya malah kena banning.

Jadi, bila Anda seorang programmer, apakah Anda akan memilih memanfaatkan hukum Moore untuk meningkatkan performa aplikasi dengan coding efisien tetapi memakan waktu lebih banyak saat development, atau justru memanfaatkan hukum Moore untuk meningkatkan fitur aplikasi akan tetapi dengan coding yang ala-kadarnya untuk mengejar waktu yang singkat dalam sebuah development? Hal ini kembali lagi ke diri sang developer masing-masing.


Viewing all articles
Browse latest Browse all 6

Trending Articles