Cerita tentang Java IDE dan Netbeans

Berawal dari artikel Frans Thamura soal Netbeans di infolinux edisi juni 2004 yang kebetulan diposting di ilmukomputer.com. Sudah lama sekali umur artikel ini, nyaris tiga tahun namun tetap tidak kehilangan relevansinya. Yang menarik dari artikel ini adalah cerita frans yang panjang lebar tentang berbagai macam IDE java.

Frans banyak membahas tentang perkembangan desktop application technology dimana terjadi “perang” antara IBM dan Sun. IBM menelorkan sendiri teknologi java desktop yang disebut SWT (Standard Widget Toolkit) gara-gara sun tidak merespon ajakan IBM untuk mengembangkan AWT lebih lanjut. SWT ini disebut-sebut lebih native dari teknologi windowing yang ada dalam Sun JDK, yaitu AWT, yang dibangun oleh Sun. SWT ini kemudian dijadikan teknologi dasar untuk menghasilkan library window toolkit IBM yang disebut JFace. Sun sendiri mengembangkan windowing library berdasarkan AWT menghasilkan Swing.

Aplikasi yang dibangun diatas teknologi SWT/JFace memerlukan resource lebih sedikit dibanding aplikasi yang dikembangkan dengan teknologi AWT/Swing. Namun SWT ini bukan teknologi standard, sehingga industri belum banyak mengadopsi SWT/JFace, frans menyebut hal ini sebagai keunggulan AWT/Swing di sisi “crecidential”-nya sebagai teknologi standard.

“Perang” antara AWT/Swing vs SWT/JFace berlanjut ke sisi yang lebih aplikatif, yaitu IDE Java yang dikembangkan berdasarkan masing-masing teknologi tersebut oleh IBM dan Sun. IBM mengembangkan Eclipse dan Sun mengembangkan Netbeans. Pada awalnya IBM mengembangkan project IDE dengan nama VisualAge sekitar tahun 1984, lama kelamaan dari project ini munculah project Eclipse untuk menggantikan VisualAge pada tahun 2001. Setelah Eclipse mendapatkan sambutan yang begitu besar di komunitas java, Sun mulai kebakaran jenggot dan berancang-ancang untuk mengembangkan produk IDE mereka. Untuk memotong waktu development agar tidak terlalu ketinggalan dibanding IBM, sun mengakuisisi Forte, editor java yang banyak digunakan komunitas dan mengembangkannya berdasarkan kebutuhan mereka sendiri.

Pada tahun 2003-2004 akhirnya IBM mengambil langkah yang sangat strategis untuk mempertahankan keberadaan Eclipse agar lebih bisa bertahan, yaitu dengan melepaskan kekuasaanya terhadap Eclipse kepada yayasan Eclipse Foundation. Dengan begitu Eclipse mempunyai posisi yang sangat bagus dari sudut pandang komunitas. Dengan adanya Eclipse Foundation maka perkembangan Eclipse tidak lagi didikte oleh IBM, tetapi oleh Eclipse Foundation yang terdiri dari ratusan anggota. Struktur Eclipse Foundation yang demokratis membuat perusahaan-perusahaan lain tidak ragu-ragu untuk berinvestasi di lingkungan Eclipse, seperti Exadel dan MyEclipse, dua buah plugin eclipse yang sangat terkenal. Peristiwa penyerahan kekuasaan IBM atas Eclipse kepada Eclipse Foundation menyebabkan Eclipse mengadopsi Opensource Licence, menjadikan Eclipse IDE Java yang paling banyak digunakan oleh komunitas java developer.

Frans juga membahas beberapa IDE java lain yang ada pada tahun 2004, yaitu Borland JBuilder dan Oracle JDeveloper. Borland JBuilder adalah IDE java dari divisi software Developement IDE borland (sekarang dipisah menjadi perusahaan bernama CodeGear) yang bersifat komersial. Sedangkan JDeveloper dikembangkan oleh Oracle dengan membeli lisensi JBuilder dari borland pada tahun 1998 yang kemudian ditulis ulang dari awal pada tahun 2001 untuk mengikuti kebutuhan oracle versi 9i. Jadi JBuilder dan JDeveloper adalah sepupu dekat, bedanya adalah JDeveloper ini gratis tetapi tidak open, dan benar-benar dikhususkan untuk mengembangkan aplikasi berbasis framework dari Oracle, seperti Oracle Form dan ADF (Application Development Framework).

Sejarah Netbeans berawal dari sebuah kota klasik yang sangat indah yaitu Prague di Cekoslovakia. Disana ada sebuah perusahaan kecil yang sangat inovatif mengembangkan Java IDE berbasis AWT/Swing yang disebut Forte. Sun mengakuisisi Forte pada tahun 1999. Akuisisi ini menandakan Sun mulai serius menggarap pasar IDE komersial. Untuk melakukan counter attack terhadap langkah IBM meng-opensourcekan Eclipse, Sun melepaskan versi opensource dari Forte yaitu Netbeans🙂

Pada jaman Sun dipimpin oleh Scott McNealy, divisi IDE ini cukup serius mengembangkan produk-produknya. Forte yang masih tetap berstatus komersial dikembangkan menjadi SunONE Studio dengan menambahkan kemampuan untuk mengembangkan aplikasi Java Enterprise (EJB), kemudian pada tahun 2003 dirubah lagi namanya menjadi Sun Java System.

Beberapa tahun kemudian munculah sebuah framework pengembangan aplikasi java enterprise yang disebut JSF. Pengembangan teknologi JSF dipimpin oleh Ed Burns. JSF menjadi teknologi standard Java untuk mengembangkan aplikasi web berbasis komponen, secara langsung ingin menyaingi teknologi ASP.NET-nya Microsoft. Sayangnya pada awal-awal perkembangannya, JSF tergantung sekali dengan IDE sebagai basis pengembangan aplikasi. Tanpa IDE, mengembangkan aplikasi berbasis JSF adalah “Sulit to ya!!”. Sun mengantisipasi ini dengan memecah Sun Java Studio menjadi dua produk, Sun Java Studio Creator dan Sun Java Studio Enterprise. Sun Java Studio Enterprise difokuskan untuk mengembangkan aplikasi berbasis EJB dan Sun Java Studio Creator difokuskan untuk mengembangkan aplikasi berbasis EJB dan JSF. Dengan teknologi JSF, kita bisa mengembangkan aplikasi Java berbasis Visual IDE seperti halnya Visual Studio for ASP.NET.

Netbeans sendiri mulai ada dari versi 3.51, versi ini tidak cukup intuitif dan masih banyak kelemahannya. Namun pada kenyataannya Netbeans masih jauh lebih banyak diadopsi oleh industri dan komunitas dibanding sepupunya SunONE Studio (pada waktu itu) yang komersial. Tetapi tetap saja tidak dapat menyaingi popularitas Eclipse yang semakin menjulang. Versi berikutnya dari Netbeans yaitu 4.1 juga masih belum bisa mendekati fungsionalitas dari Eclipse. Baru pada versi 5.0, sepertinya tim pengembang Netbeans membawa perubahan yang sangat signifikan terhadap Netbeans. Tampilanya sangat intuitif, wizardnya sangat lengkap dan tidak lagi merepotkan dengan konsep “mount-unmount” jaman dulu.

Pada tahun 2006 lalu, di Sun telah terjadi perpindahan kepemimpinan dari Scott McNealy kepada Jonathan Schwartz. Pergantian kepemimpinan ini membawa dampak besar terhadap divisi IDE dari Sun dan Java secara keseluruhan. Jonathan memutuskan untuk meng-opensourcekan seluruh jajaran IDEnya. Kebijakan ini dimulai dengan memindahkan feature Sun Java Creator dan Sun Java Enterprise sebagai Netbeans pack. Netbeans versi 5.5 merupakan langkah awal proses pemindahan ini, dimana terdapat Netbeans Enterprise Pack sebagai wujud baru dari Sun Java Studio Enterprise dan Netbeans Visual Web Pack sebagai reinkarnasi dari Sun Java Studio Creator.

Proses perpindahan semua divisi IDE Sun ke dalam Netbeans berlangsung bertahap, dalam Netbeans versi 5.5 ini feature yang dipindahkan masih berkisar di angka 70%-80%, nantinya semua feature Sun Java Studio Creator dan Sun Java Studio Enterprise akan 100% dipindahkan ke Netbeans pada versi Netbeans 6.0. Tapi perkembangan Netbeans tidak terbatas pada perpindahan feature dari kedua sepupunya ini saja, Netbeans sendiri mempunyai tiga buah pack lainnya, yaitu C/C++ Development pack, Mobility pack dan Netbeans Profiler.

Waktu terus berjalan, IDE bertumbangan, Netbeans mulai mendapatkan momentumnya. Pada saat ini, survivor dari perang IDE menyisakan tiga buah IDE saja : Netbeans, Eclipse dan IntelijIDEA. Ketiganya mengusung keunggulan masing-masing sehingga industri dan komunitas tetap menggunakan mereka sebagai IDE pengembangan aplikasi java. Jacek Furmankiewicz membahas secara lengkap perbandingan ketiga IDE ini dalam artikel “The Survivor of Java IDE War”, Roman Strobl membahas mengenai artikel tersebut di sini.

Eclipse masih memimpin market share Java IDE, sebagai pemimpin dalam jangka waktu yang begitu panjang, rasanya susah membayangkan Eclipse akan berkurang pemakainya, apalagi menghilang. Project-project dan plugin eclipse sangat baanyak sekali, nyaris semua framework dari komunitas mempunyai plugin eclipse, seperti SpringIDE, JBossIDE dan Hibernate Plugin. Bisa dibilang kalau anda bekerja dengan frameowrk non standard dari komunitas pakailah eclipse. Eclipse juga terkenal karena kecepatannya dan efisiensi pemakaian memory, hal ini tentu saja karena Eclipse menggunakan SWT/JFace.

Sayangnya module Eclipse terpisah-pisah dalam beberapa top project, ada WTP, DTP, BIRT, TPTP, VE. Untuk menginstall module-module tersebut kita memerlukan beberapa library lain seperti GEF dan GMF . Ini merupakan kendala yang tidak gampang diatasi untuk java newbie yang ingin cepat-cepat belajar java. Semisal kita ingin belajar aplikasi desktop java dan web java, maka kita harus menginstall JDK kemudian Eclipse plus WTP dan VE. Kemudian WTP dan VE masih memerlukan library EMF-SDO-XSD, GEF, dan DTP, lumayan ribet.

Paket Eclipse + WTP + VE mempunyai fasilitas yang setara dengan Netbeans 5.5 sendiri tanpa adanya tambahan dari Netbeans Pack sama sekali. Sedangkan Netbeans + Netbeans Pack akan setara dengan Eclipse + MyEclipse, dimana MyEclipse ini harganya $30!. Eclipse menyadari kendala ini dan mengeluarkan distro Eclipse, Eclipse yang sudah dibundle dengan beberapa solusi dari vendor, semisal EasyEclipse yang membundle eclipse callisto untuk tujuan spesifik, ada distribusi untuk development Java, python, apache-mysql-PHP dan C/C++. Callisto yang membundle eclipse + 10 buah project lain dalam satu package distribusi, sehingga user tidak perlu lagi repot-repot mendownload eclipse dan project lain sendiri-sendiri.

IntelijIDEA menjadi satu-satunya java IDE komersial yang masih bertahan sampai sekarang, faktor utama keberhasilan dari IntelijIDEA adalah ketelitian hingga ke sedetail-detailnya. Saya pernah mencoba IntelijIDEA versi 5.0.2, tampilanya oke banged, dan menurut pemakai setianya, IntelijIDEA mempunyai fitur yang sangat lengkap sampai ke detail-detailnya. Dukungan IntelijIDEA terhadap framework java standard keluran sun dan JCP maupun framework non standard dari kominitas sangat memuaskan.

Module default dalam Netbeans 5.5 sudah sangat cukup untuk memulai belajar java. Dalam beberapa kesempatan di milis JUG-Indonesia pernah dibahas kemudahan belajar java menggunakan Netbeans. Berikut ini komentar anggota milis JUG tentang Netbeans sebagai IDE terintegrasi untuk memulai belajar java :Samuel Franklyn mengatakan : “Kalau untuk pemula aku lebih menganjurkan pakai NetBeans. Soal rakus memory dan lambat secara keseluruhan aku rasa itu tidak benar. Yang aku anggap benar adalah editor Java di NetBeans masih kalah canggih dan kalah cepat dibandingkan Eclipse. Tapi ini diimbangi dengan kemudahan melakukan debugging dan integrasi yang lebih erat dengan Tomcat. Kalau pakai NetBeans nggak perlu download plugins kesana kemari. Cukup download dan pasang pack yang sesuai”

Hendro Steven, dosen sebuah universitas swasta di solo mengatakan : “Di kampus gw juga udah kurikulum java sejak tahun 2003, nah dari tahun 2003 itu gw ngajar udah gonta ganti IDE mulai dari Kawa pro kemudian ganti SyncJedit terus JBuilder lalu Eclipse dan akhirnya gw pilih Netbeans itu juga sejak netbeans 4.1 karena sebelumnya Netbeans kurang bagus. Kenapa gw milih netbeans sebenarnya karena semua udah all in one alias gak perlu repot2 cari2 plugin lagi. memang sih masih kalah cepat dari eclipse tapi bagi pemula (mahasiswa yg baru mulai belajar) eclipse ngerepotin ) katanya. selain itu masalah kecepatan gak lagi jadi masalah dilab gw karena semua pc udah 1GB ramnya hehehe ) terus dari sisi pengajar alias dosen alias gw,.. gw jadi lebih kosentrasi ngajar javanya dan bukan cara menggunakan IDE. Dengan Netbeans, khususnya v5.5 semua jadi mudah, gw tinggal ngajarin konsepnya terus demo dengan netbeans wus..wus!! semua yang ngerepotin beres oleh netbeans, nah baru setelah itu dijelaskan deh apa yang terjadi dibelakangnya alias kalo buat manual. ) so dalam 1 semester gw bisa selesaiin ngajar semua materi dan tidak buang2 waktu ngajarin penggunaan IDE Tapi tentunya ini berdasarkan pengalaman dikampus gw dan pasti akan berbeda-beda dikampus lain (tergantung dosen n mahasiswanya kali!)”

Keunggulan lain tentu saja adanya lima buah Netbeans pack yang sangat memudahkan development java atau C/C++. Di Netbeans 6.0 milestone 8 sekarang ini malah sudah ada Ruby IDE di dalam Netbeans. Bersama dengan project shcliemann Netbeans mempunyai ambisi yang sangat besar yaitu menjadi IDE untuk semua bahasa pemrograman yang bersifat terbuka, seperti python, php, perl, javascript, ruby dan sebagainya. Yang lebih heboh lagi adalah semuanya berlisensi Opensource yang tidak perlu membayar.

Karena Netbeans dikembangkan oleh team dari Sun, dukungan Netbeans terhadap framework standard keluaran Sun dan JCP termasuk “first class”. Netbeans adalah salah satu IDE pertama yang mendukung Java EE 5. Bersama GlassFish (versi opensource dari Sun Java Application Server) Netbeans menjadi IDE yang sangat lengkap untuk mengembangkan aplikasi berbasis EJB3. Rafael Vanoni membuat list “lima alasanya menggunakan netbeans”, list ini dibuat sekitar bulan maret 2007, sehingga masih sangat relevan dengan feature netbeans sekarang ini.

Matisse GUI builder memungkinkan pengembangan aplikasi java desktop menggunakan vusial GUI designer. Matisse memanfaatkan Group layout yang dikembangkan oleh swing engineer untuk menjadi fondasi layouting bagi aplikasi Swing. Dengan adanya Matisse kita bisa mengucapkan selamat tinggal cara lama membuat aplikasi swing, yaitu dengan mengetik satu-satu proses layouting dan pembuatan komponen GUI. Matisse memotong nyaris 90% waktu yang digunakan untuk membuat layout aplikasi swing di masa lalu. Sangat mudah dan menyenangkan😀.


Gambar 1. Matisse GUI Builder

Netbeans Mobility Pack bersama Matisse GUI builder adalah mahkota netbeans, dua module ini menjadi feature yang banyak dicari user dan tidak ada IDE lainya yang mempunyai feature sebagus ini. Development Java ME menggunakan Mobility Pack sangat mudah dan menyenangkan, Netbeans menyediakan komponen yang dapat ditambahkan dengan mudah. Flow Editor memudahkan user untuk merancang “aliran” aplikasi Java ME secara visual, hanya perlu operasi drag-n-drop sederhana untuk merancang “aliran” aplikasi Java ME. Dalam beberapa kesempatan, terutama dari form pendaftaran Nectar, sebagian besar peserta menjawab pertanyaan “Netbeans dugunakan untuk?” dengan jawaban “Develop Aplikasi Java ME” atau “Develop aplikasi Java Desktop”.


Gambar 2. Netbeans Mobility Pack — pengembangan aplikasi Java EE menjadi mudah

Beberapa waktu lalu diluncurkan Netbeans Mobility Pack untuk CDC (Connected Device Configuration) yang memungkinkan aplikasi berbasis Swing berjalan diatas gadget. Feature inovative lain yang ada dalam Netbeans Mobility Pack adalah SVG (Scallable Vector Graphic), SVG memungkinkan grafik diresize tanpa kehilangan akurasi gambar, seperti blur atau pecah-pecah. Kemampuan resize SVG yang hebat ini disebabkan karena sebenarnya SVG adalah file XML biasa, yang berisi tentang definisi dari gambar tersebut, seperti kurva atau warna. Kemudian gambar SVG akan dirender dalam runtime oleh SVG generator, seperti framwork Apache Batik. Jika anda tertarik dengan SVG, anda akan tertarik untuk mengevaluasi Sketsa, SVG editor yang dikembangkan oleh Kiyut pimpinan Tonny Kohar.

Netbeans Enterprise Pack digunakan untuk mengembangkan aplikasi Java EE dan aplikasi berbasis SOA. Kita bisa membuat bussiness process menggunakan BPEL secara visual. Selain itu kita juga dapat membuat WSDL dan XML Schema secara visual. Semua kebutuhan untuk mengembangkan aplikasi berbasis SOA telah terbundle secara lengkap di dalam Netbeans Enterprise Pack. Sun Java Application Server(SJAS) juga secara otomatis terinstal bersama Netbeans Enterprise Pack ini.


Gambar 3. BPEL Visual Editor

UML Designer juga merupakan bagian dari Netbeans Enterprise Pack untuk memudahkan desain aplikasi berbasis OOP. Cukup dengan membuat design UMLnya kita bisa mengenerate class java secara otomatis. Proses ini mengurangi waktu yang diperlukan untuk mendesign API dari aplikasi yang akan kita kembangkan. Proses ini sangat diperlukan jika nantinya aplikasi akan dikembangkan dalam tim yang berukuran cukup besar, anggota tim tidak perlu repot-repot harus membaca coding temenya untuk mengetahui API atau arsitektur dari aplikasi. Cukup dengan melihat UML maka anggota tim dengan mudah dapat memahami arsitektur aplikasi. UML designer juga memungkinkan adanya proses reverse engineering dari kode yang sudah dibuat untuk menghasilkan UML Class Diagram.


Gambar 4. UML Visual Designer

Netbeans Visual Web Pack memungkinkan pengembangan aplikasi berbasis Java EE 5 dengan ditambah fungsionalitas dari JSF-AJAX. Pack ini memungkinkan kita mendevelop aplikasi web secara visual menggunakan operasi drag-n-drop. Banyak sekali komponen JSF yang sudah dilengkapi dengan kemampuan AJAX siap digunakan hanya dengan melakukan drag-n-drop, sederhana.

Roman Strobl membuat sebuah artikel lengkap tentang Apakah Netbeans visual web pack untuk kita? dalam blognya, artikel ini akan memberikan gambaran lumayan lengkap apa yang Netbeans bisa dan apa yang Netbeans tidak bisa.


Gambar 5. Netbeans Visual Web Pack — Membuat aplikasi web secara visual

Feature databinding memungkinkan kita mengambil komponen table dari database dan meletakkan kedalam komponen JSF, secara otomatis table tersebut dibind dengan komponen JSF tersebut. Tidak hanya table, kita juga bisa mendefinisikan query yang melakukan join untuk kemudian di-bind dengan komponen JSF secara otomatis. Query yang dibuat pun dapat digenerate dari feature visual query editor. Visual Web Pack juga mempunyai editor CSS yang canggih yang memungkinkan kita membuat CSS file untuk mendekorasi komponen JSF. AJAX komponen juga tersedia dalam pack ini, kita bisa menggunakan AJAX komponen untuk membuat aplikasi menjadi jauh lebih interaktif mengikuti paradigma Web
2.0.


Gambar 6. Visual Query Editor

Netbeans Profiler sudah tersedia semenjak versi 4.1, kita dapat memonitor penggunaan CPU maupun penggunaan memory menggunakan netbeans profiler. Dalam versi 5.5, netbeans profiler dilengkapi dengan kemampuan melakukan profiling terhadap aplikasi Java EE, tidak hanya Java SE. Tidak seperti profiler lain, kita bisa mendefinisikan bagian mana saja yang akan diperiksa, sehingga Netbeans profiler dapat melakukan pekerjaanya secara efisien dan tepat sasaran. Dengan Netbeans Profiler kita dapat : Memonitor aplikasi, menganalisis performance, menganalisis sebagian kode program, penggunaan memori dan custom profiling. Jika anda pekerjaan anda berfokus pada optimisasi aplikasi, pack ini bisa menjadi “aji pamungkas” untuk menyelesaikan tugas anda.


Gambar 7. Netbeans Profiler — profiling dan optimisasi aplikasi

Netbeans C/C++ Pack, dengan pack ini anda dapat mendownload source code JDK dan mencoba untuk mengcompilenya, Roman Strobl menyediakan tutorial jika anda berminat untuk membongkar-bongkar kode sumber JDK dan mencoba mengcompilenya. Pack ini menggunakan makefile untuk mengelola siklus pengembangan aplikasi C/C++. Di linux pack ini berjalan sempurna dengan adanya GCC dan Makefile, sedangkan di windows sedikit problematik, namun anda bisa mengikuti artikel dari komunitas netbeans diatas untuk menginstall C/C++ pack di lingkungan windows.


Gambar 8. Netbeans C/C++ Pack

Sun Web Development Pack digunakan untuk mengembangkan aplikasi berbasis AJAX, web service dan beberapa feature lain yang mendukung paradigma Web 2.0. Pack ini masih dalam pengembangan dan dalam masa uji coba (beta) dan memerlukan banyak feedback dari user. Walau belum masuk dalam jajaran Netbeans Pack, tetapi fasilitasnya sudah cukup banyak dan dapat berjalan sempurna di netbeans 5.5. Didalamnya terdapat beberapa sub module antara lain : jMaki, RESTfull Webservice dan Rome project. jMaki membundle banyak sekali komponen AJAX yang keren abis, seperti FishEye, yahoo map, google map dan lain sebagainya. RESTful web service merupakan arsitektur web service yang bersifat statless, sifat ini memungkinkan dihematnya bandwith selama proses komunikasi antara client dan server. Rome project ditujukan untuk membuat library pengolahan RSS feed seperti atom, rss dan lain sebagainya.

Jarvis adalah project yang dikembangkan oleh Toni Epple, Jarvis adalah Jasper report designer. Jarvis sedianya akan digunakan sebagai netbeans 6.0 module, namun sang pengembang menyatakan bahwa Jarvis bisa berjalan di netbeans 5.5, walaupun percobaan gw menginstall jarvis di netbeans 5.5 gagal (


Gambar 9. Jarvis — Jasper report designer

Dengan adanya jarvis maka netbeans menjadi IDE yang terintegrasi menyediakan tools software development dari awal hingga akhir. Mulai dari mendesain aplikasi dengan menggunakan UML Designer, develop aplikasi desktop menggunakan Matisse, develop aplikasi enterprise menggunakan Enterprise pack, debug dan profiling aplikasi menggunakan profiler dan membuat report menggunakan Jarvis.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com 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 )

Google+ photo

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

Connecting to %s

%d bloggers like this: