Vote GWT for RIA

Minggu-minggu terakhir ini, saya baru kencan dengan RIA. Tidak, tidak, bukan Ria yang ini. 😀 Ataupun Ria-ria yang lainnya. 😉 RIA atau Rich Internet Application, menurut Wikipedia adalah aplikasi web yang memiliki banyak karakteristik aplikasi desktop, biasanya dibuka baik melalui browser-situs tertentu, melalui plug-in browser, maupun secara independen melalui sandboxes atau mesin virtual.

Singkat cerita, saya baru butuh aplikasi yang akan berjalan di intranet. Kalau menggunakan aplikasi web-based biasa, maka kelemahannya terletak di tampilannya. Masih kalah interaktif dengan aplikasi desktop. Sedangkan jika menggunakan aplikasi desktop-based, pasti repot untuk menginstal aplikasi satu-satu. Coba bayangkan kalau ada 100, 500, atau 1.000 komputer dalam perusahaan 😯

Dengan segala kebutuhan tersebut, maka RIA-lah yang bisa memenuhi hasrat saya 😮 Aplikasi berbasis web, tapi memiliki tampilan dan interaktifitas seperti desktop. Jika Anda ingin lebih tahu soal RIA, silakan cari di Wikipedia atau Googling sendiri, ya.

RIA memiliki bermacam-macam framework yang berjalan di atas format tertentu. Kalau masih bingung dengan RIA, pasti Anda kenal dengan nama-nama seperti Adobe Flex, Silverlight, OpenLaszlo, Java FX, ZK, dan Google Web Toolkit. Mereka adalah contoh-contoh framework RIA yang berjalan atau dibangun di atas format seperti Adobe AIR, Silverlight (.NET Framework), dan Java. Sejujurnya, klasifikasi RIA sendiri memang masih membingungkan. Ada yang membandingkan dengan AJAX. Ada lagi yang bilang ini termasuk RIA, itu bukan, tapi kalau anu itu bukan framework, dsb. Sehingga ini memunculkan masalah baru buat saya: RIA framework apa yang harus saya pilih ??? 😕 ❓

Awalnya, saya memilih Silverlight. Gara-gara saya ikut event BizSpark Camp Season 2. Dengan dukungan Visual Studio 2010, membuat aplikasi yang memiliki tampilan menarik, menjadi mudah. Apalagi dengan platform .NET framework, kita bisa memilih untuk membuat aplikasi menggunakan Visual Basic (VB) atau C#. Aplikasi front-end dan back-end sudah terbungkus menjadi satu. Untuk desain tampilannya bisa menggunakan XAML yang berbasis XML, sehingga mempermudah dalam membuat layout halaman layaknya HTML biasa.

Tapi dari hasil survei ke sana sini, ternyata banyak yang tidak menyarankan penggunaan software yang harus berlisensi (baca: Microsoft-based). Bisa ribet di belakang nanti, kata mereka. Apalagi Visual Studio 2010 yang saya dapatkan waktu pelatihan, hanya memiliki 90-days-trial. Terakhir, Visual Studio 2008 yang saya punya (sudah di-crack) ternyata hanya mendukung hingga Silverlight 3. Padahal sekarang sudah sampai Silverlight 4 (hanya didukung oleh VS 2010). Jadi, ya sudah. Saatnya mengucapkan selamat tinggal dengan Silverlight 😥

Faktor lain yang jadi pertimbangan adalah back-end-nya. Dengan kata lain, nantinya aplikasi akan dibangun menggunakan platform apa. RIA hanya sebatas front-end atau tampilan. Jadi tetap butuh dukungan server-side yang tentunya harus kompatibel dengan RIA yang dipilih. .NET jelas sudah keluar dari pilihan karena faktor lisensi di atas. Pilihannya tinggal PHP dan Java. Yang pertama saya sebetulnya lebih menguasai. Tapi lagi-lagi, karena kebanyakan yang saya tanya merupakan komunitas dengan mayoritas Java, jadi akhirnya yang minoritas ngalah 😆 Lagian, saya pikir, tidak ada salahnya untuk mulai belajar Java. Kalau bukan sekarang, kapan lagi? 😉

Dan, akhirnya, saya memilih … Google Web Toolkit alias GWT. Sesuai dengan judul postingan ini 😛 Menurut situsnya sendiri, GWT didefinisikan sebagai:

Google Web Toolkit (GWT) is a development toolkit for building and optimizing complex browser-based applications. Its goal is to enable productive development of high-performance web applications without the developer having to be an expert in browser quirks, XMLHttpRequest, and JavaScript.

Sedangkan menurut Wikipedia, GWT dikatakan sebagai:

Google Web Toolkit is an open source set of tools that allows web developers to create and maintain complex JavaScript front-end applications in Java.

Beberapa pertimbangan yang membuat saya akhirnya memilih GWT antara lain,

  1. Java-based. Saya berpikir untuk sekali tembak, dua tiga pulau terlampaui. Atau sekali dayung, dua tiga burung jatuh. Istilahnya, kalau memang niat belajar Java, kenapa gak sekalian aja front-end dan back-end dibangun dengan platform/bahasa yang sama?

  2. Memiliki Apache License 2.0. Sejujurnya, saya sendiri belum terlalu paham, apa itu Apache License 😳 Tapi yang jelas GWT bukan proprietary. Jadi minimal tidak akan menemui masalah yang serupa di Silverlight.

  3. Ada IDE dengan support plug-in untuk GWT. Baik itu untuk Eclipse maupun Netbeans. Memang masih kalah powerful dibanding Visual Studio. Tapi mendinglah, daripada harus bertarung dengan tangan kosong? 😮

  4. Mendukung fitur RPC (dengan GWT-RPC). Mengenai ini, saya berencana untuk membangun aplikasi dengan basis web service. Dan sepertinya RPC ini diperlukan untuk itu.

  5. Ini faktor paling penting, GWT bisa berjalan di client dengan cukup menggunakan web-browser yang sudah mendukung Javascript. Tidak seperti Flex/Flash dan Silverlight (atau .NET Framework) yang mengharuskan client meng-instal sebuah plug-in agar aplikasi bisa berjalan.

  6. Yang menarik, ketika GWT di-compile, GWT sudah langsung menyediakan versi untuk berbagai browser. Sehingga isu kompatibilitas antar browser (terutama IE :twisted:) yang biasa dipusingkan oleh web designer boleh kita lupakan untuk saat ini.

  7. Well, because it’s Google! :mrgreen:

Meski sebetulnya, masih ada beberapa kekurangan dari GWT yang saya temui, seperti,

  1. Belum menemukan (free) e-book yang sesuai. Dokumentasi online yang tersedia pun, awalnya sempat membuat saya bingung untuk navigasinya. Tutorial GWT sendiri sebetulnya banyak, tapi lebih enak kalau ada satu buku yang membahas secara runtut dari awal hingga selesai dalam membangun satu aplikasi. Penyebabnya, karena saya pakai GWT 2.0.3 yang baru dirilis Februari 2010 kemarin. Sehingga mungkin memang belum banyak buku yang mengulasnya.

  2. Tidak seperti ZK atau Silverlight (yang saya tahu) yang menggunakan XML-based untuk tampilan halamannya secara default, GWT tidak memiliki default page dalam XML. Sehingga untuk mengatur layout di GWT cukup susah, karena harus dari coding Java. Tapi ini sebenarnya sudah disediakan fasilitas UiBinder dari GWT. Cuma untuk mempelajarinya, jadi butuh effort tambahan. 😦

  3. Belakangan ternyata saya SANGAT KESULITAN dengan Java, sampai-sampai untuk membuat Sample Menu saja, belum jadi-jadi. Tapi saya belum menyerah, kok. Tenang saja 😎

Oh ya, di sini saya tidak membahas dengan detil apa itu GWT. Jadi bagi yang belum tahu atau ingin mendalami GWT, langsung main ke situs utama-nya saja, ya. Atau, kalau ingin melihat demo/showcase-nya bisa main dulu ke sini.

***

Mungkin ada yang bertanya, kenapa saya tidak pakai ZK seperti di tempat saya yang dulu? Hm, ada beberapa alasan, menurut saya pribadi, yang saya sendiri sebetulnya belum yakin benar-tidaknya. Selain itu, ada alasan pribadi yang lain juga 😎 Tapi untuk menjawab pertanyaan ini, mungkin boleh coba main-main ke sini. Siapa tahu gak bisa menjawab pertanyaan Anda :mrgreen:

Published by Eric Gunawan

Happiness Engineer. WordPress Ambassador. Remote Worker. Soccer News Follower. Movie Lover. Proud Father. Lucky Husband.

3 thoughts on “Vote GWT for RIA

  1. dari tulisan diatas mungkin bagian “ada alasan pribadi yang lain juga” ini yang saia gak dong.. hahahaha… 😀

    sebenarnya saya pun juga dalam belajar ZK karena tuntutan profesi di tempat saya bekerja pak Eric, sebelumnya juga belum pernah nyoba “hello world” sekalipun hehehe,, tapi dulu pernah dapet masukan dari guru java saya ya tentang ZK itu… jadi saya juga bingung sebenarnya oleh framework ini..

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: