Sunday

Why Java?



Saya yakin di Internet pasti sudah banyak artikel maupun blog yang membahas kenapa Java (dan bukan yang lain). Berhubung saya egois, saya akan ceritakan kenapa saya memilih Java. Blog ini adalah seri pertama dari beberapa seri yang membahas secara mendalam kenapa sayamemutuskan Java sebagai my platform of choice. Diharapkan dengan membaca blog ini, pembaca dapat semakin terbuka wawasannya mengenai Java sebagai platform dan dapat memutuskan apakah Java cocok (atau tidak cocok) bagi keperluan pembaca. A little background Saya berangkat dari C/C++ (mulai sekarang saya akan menyebutnya “C” karena lebih singkat). Dulu, setiap kali ditanya alasannya,
saya selalu menjawab, “C itu seperti pedang Excalibur. Dashyat.” Sampai sekarang pun saya tetap menganggapnya demikian. Sewaktu Java belum populer, saya berani bilang 80% aplikasi profesional dibuat menggunakan C. High profile applications seperti Windows, Linux, UNIX, Adobe Photoshop, Microsoft Office, 3D games, daemons (HTTP, SMTP, POP3, dsb), DBMS dan masih banyak lagi, dibuat menggunakan C. Kenyataan ini belum berubah. Lalu mengapa saya memutuskan untuk memilih Java? Business friendliness OK, dengan C kita bisa membangun dunia. Bahkan compiler C pun dibuat menggunakan C. Compiler Java tidak terkecuali. Tapi menurut saya C lebih cocok untuk aplikasi yang infrastruktural (I’m loosely defining the term) dan sangat memanfaatkan resource komputer (kasarnya, semua resource yang ada di komputer harus semaksimal dan seefisien mungkin dimanfaatkan). Operating systems, daemons, compilers, graphic manipulation packages dan 3D games ada di kategori ini. Aplikasi bisnis, terutama yang berada di layer atas, tidak memerlukan efisiensi maksimal resource komputer. Kenapa? Karena pengguna layer atas adalah manusia. Dan manusia lambat (manusia mungkin berpikir, mengambil kopi, beristirahat, sebelum melanjutkan interaksinya dengan komputer). Aplikasi bisnis menoleransi delay sampai pada tingkat perceived performance. Sebaliknya, aplikasi bisnis harus agile. Alasannya adalah bisnis bergerak cepat. Bisnis berubah. Aplikasi untuk bisnis harus mengutamakan user friendliness, ease of use, manageability, dan dapat dibangun within time and budget constraint. Itu sebabnya beberapa waktu lalu ide RAD (Rapid Application Development) dan prototyping sangat populer. Dirintis oleh visually appealing IDEs seperti Visual Basic dan Delphi, pemrograman menjadi menyenangkan dan “mudah bagi orang awam”. Saya bahkan punya beberapa teman yang kuliah Manajemen namun sanggup membuat aplikasi bisnis yang lumayan “cantik” dan fungsional dengan Visual Basic. Tanpa kursus. Namun dunia selalu berubah. Dengan meledaknya Internet, orang-orang semakin melihat peluang Web sebagai basis untuk menjalankan aplikasi bisnis. Ini dikarenakan exposure yang luas dan kemudahan dalam deployment dan maintenance (pernah kebagian tugas meng-install aplikasi di puluhan cabang dari Sabang sampai Merauke lewat remote desktop? Saya pernah. Dua minggu kemudian hal serupa saya lakukan lagi karena ada update). Orang-orang pun mulai berbondong-bondong bermain di Web. Sayangnya, saat itu solusi yang mature hanya CGI yang kompleks. CGI adalah program biasa, namun karena dirancang untuk melayani concurrent access maka pembuatannya sangat kompleks (memory management, thread management, process allocation, resource pooling dan masih banyak lagi isu concurrency yang harus ditangani secara manual—kesalahan sedikit saja dapat membuat satu server memble). Kemudian hadir scripting language seperti PHP dan ASP. Solusi-solusi ini sangat populer sehingga menumbuhkembangkan Web seperti yang kita kenal sekarang. Namun scripting language kekurangan enterprise features yang dibutuhkan oleh bisnis. Tidak hanya itu, bisnis membutuhkan solusi yang “punya beckingan” kuat. Tidak ada yang tertarik membuat aplikasi milyaran dollar hanya untuk mengetahui setelah dua tahun dikembangkan ternyata perusahaan penciptanya sudah gulung tikar (atau teknologinya sudah ditinggalkan oleh penciptanya sendiri). Java fits nicely because it’s a mature and robust solution for your desktop and server application. Ini bukan kalimat marketing. Java hadir dengan AWT, Swing, SWT dan segambreng library yang memungkinkan pengembangan aplikasi desktop dengan mudah. Java juga hadir dengan Servlet, JSP, EJB dan bergambreng-gambreng (lebih dari segambreng) solusi untuk aplikasi Web yang lebih sophisticated. Java juga didukung oleh big vendors: Sun Microsystems, IBM, BEA, Oracle dan masih banyak lagi. Ini adalah investasi yang aman secara bisnis. Bila bisnis menganggap Java aman, maka saya yang bekerja untuk bisnis wajar menganggap Java aman untuk karir saya. Portable Meskipun tidak 100% benar, aplikasi yang dibuat dengan Java umumnya portabel. Secara umum, portabel artinya suatu aplikasi yang telah dibuat untuk suatu mesin dengan platform dan arsitektur tertentu (misalnya Windows XP di x86) dapat berjalan di platform dan arsitektur lain tanpa perubahan (saya akan menjelaskan arti “perubahan” sesaat lagi) dan tanpa emulasi. Semakin banyak platform dan arsitektur yang didukung berarti semakin portabel aplikasi yang dimaksud. Kita ambil contoh dengan perbandingan bahasa. Assembly jelas tidak portabel. Rutin program yang kita buat mungkin menggunakan register dengan lebar word yang berbeda, implementasi yang berbeda, atau mungkin sama sekali tidak ada di arsitektur lain. Pascal mungkin lebih baik, tapi saya belum pernah melihat compiler dan library Pascal selain yang disediakan oleh Borland. Program yang kita buat sepuluh tahun lalu akan berjalan dalam compatibility mode di lingkungan sekarang. Itu kalau jalan. Bagaimana dengan Visual Basic (VB)? Karena nature VB yang interpreted, program yang dibuat dengan VB dapat bertahan melewati versi-versi Windows. Microsoft tentu saja menyempurnakan runtime environment-nya agar dapat mulus melewati upgrade OS yang dibuatnya sendiri. Tapi tunggu, kelihatannya VB hanya untuk Windows. C mungkin yang terbaik dari semua. Jika program 16bit kita perlu “diremajakan” untuk lingkungan 32bit (atau di-port dari Windows ke Linux), kita tinggal compile ulang dengan library yang sesuai. Mudah? Seharusnya. Sayangnya library standar C sangat minim, sehingga kita harus menggunakan library tambahan yang sayangnya.. sangat spesifik ke suatu platform atau arsitektur. Kemudian datang Java dengan konsep WORA (Write Once, Run Anywhere). Meski kadang menjadi WODA (Write Once, Debug Anywhere), Java tetap lebih baik daripada WOCA (Write Once, Compile Anywhere) yang biasa kita lakukan untuk C. Apalagi VB yang WOALA (ini bukan singkatan, maksudnya “O alahh…” ketika kita coba menjalankannya di Linux. Saya tidak akan membahas “kenapa Java bisa WORA?” (banyak literatur yang menjelaskannya dengan sangat baik), namun saya akan menceritakan kenapa portability itu penting, paling tidak untuk saya. Pertama, kebanyakan server tempat saya men-deploy aplikasi bahkan bukan dari keluarga Windows (beberapa bahkan bukan x86), sedangkan saya kadang bekerja di Windows XP. Kedua, saya sering bekerja di Linux (di rumah saya menggunakan Kubuntu), dan saya ingin agar apa yang saya lakukan di laptop, bisa saya lanjutkan di komputer rumah. Mungkin alasan-alasan di atas terkesan sepele, namun ketika diangkat ke skala korporat, isu ini akan menjadi serius. Tentu saja, tidak akan berpengaruh banyak jika perusahaan Anda menggunakan operating system milik Microsoft dari hulu ke hilir . <(^◡^)/ <http://www.jroller.com/wiradikusuma/entry/kenapa_java_bagian_1>

sumber: ayongopi.org


No comments:

Post a Comment

Related Posts with Thumbnails