Review: Perbandingan 4 besar Java IDE

Ketika Anda memikirkan tentang Java IDE, Anda pasti membayangkan aplikasi grafis tempat Anda menulis kode sumber Java, kemudian mengompilasi, men-debug, dan menjalankannya. Tentu saja itu sebagian kecil dari gambarannya - jika Anda membangun aplikasi Java, kemungkinan besar Anda bekerja dengan lebih dari sekadar Java.

Mungkin ada database relasional yang terlibat. Atau jika Anda membangun aplikasi berbasis web, Anda mungkin harus berurusan dengan AJAX, dan itu berarti JavaScript. Dan HTML. Dan aplikasi itu akan dijalankan dari server aplikasi seperti Tomcat, jadi Anda memerlukan alat manajemen untuk server aplikasi. Kamu tidak sendiri; Anda bekerja dengan tim pengembang, jadi akan sangat membantu jika IDE tersebut bekerja dengan Git atau Subversion.

Daftarnya terus berlanjut, tetapi Anda mengerti. Jarang terjadi, ketika Anda membangun aplikasi Java, yang Anda lakukan hanyalah membangun aplikasi Java. Dan sebuah IDE perlu menyediakan alat yang membantu Anda bergulat untuk menyerahkan semua teknologi terkait di mana proyek Anda akan melibatkan Anda.

Dalam ulasan ini, saya akan melihat status saat ini dari empat Java IDE paling terkenal yang saat ini tersedia:

  • Eclipse yang terhormat. Meskipun versi Eclipse tersedia untuk dikembangkan dalam banyak bahasa selain Java (C ++, Python, Fortran, Ruby, bahkan Cobol, untuk beberapa nama), Eclipse berbasis Java, dan paling dikenal sebagai Java IDE. Fakta bahwa ia dapat digunakan untuk berkembang dalam banyak bahasa lain adalah bukti kemampuannya, yang… ekstensif.
  • NetBeans. NetBeans dapat mendukung pengembangan dalam bahasa selain Java, meskipun tidak sebanyak Eclipse. NetBeans memulai kehidupannya sebagai produk komersial pada akhir 1990-an, tetapi kemudian menjadi open source oleh Sun dan tetap demikian sejak pembelian Sun oleh Oracle (dan akibatnya akuisisi NetBeans).
  • JDeveloper. JDeveloper juga merupakan properti Oracle. Namun, meskipun NetBeans mendukung pengembangan dalam berbagai bahasa dan dalam berbagai lingkungan Java, JDeveloper adalah Java yang solid, dan ditujukan terutama untuk pengembangan J2EE.
  • IDE IntelliJ. Seperti Eclipse dan NetBeans, JetBrains 'IntelliJ IDEA mendukung berbagai bahasa dan teknologi Java. IDEA paling penting dalam penggabungan peningkatan produktivitas dalam editor dan alat IDE. Berbeda dengan IDE lainnya, IDEA tersedia dalam Edisi Ultimate berbayar dan dalam Edisi Komunitas yang lebih terbatas - tetapi gratis.

Gerhana

Eclipse tersedia dalam lebih banyak variasi daripada yang dapat Anda hitung. Tidak hanya menyediakan kemampuan dasar IDE - manajemen proyek, pengeditan sumber, kompilasi, debugging, kontrol versi - tetapi platform Eclipse telah dimodifikasi untuk digunakan sebagai browser basis data (DBeaver), pemodel proses bisnis (BPMN2) Pemodel), visualisasi data dan perangkat pembuat laporan (BIRT, Business Intelligence and Reporting Tools), dan lainnya. Versi Eclipse telah dibuat untuk domain aplikasi tertentu: pengujian, pengembangan otomotif, pengembangan sistem paralel, dan seterusnya. Jumlah plug-in yang tersedia juga tidak terbatas, begitu juga dengan berbagai bahasa pemrograman yang didukung.

Eclipse juga merupakan font dari banyak proyek terkenal. Misalnya, Eclipse RAP (Remote Application Platform) adalah kerangka kerja untuk membangun aplikasi bisnis yang dapat disajikan di perangkat mulai dari browser Web hingga klien aplikasi desktop hingga perangkat seluler. API berbasis SWT yang dapat digunakan kembali dari Eclipse RAP memungkinkan Anda menerapkan ke berbagai target dari satu basis kode.

Singkatnya, Eclipse bukanlah IDE sebagai platform IDE.

Namun Eclipse jelas paling dikenal sebagai IDE Java terbaik. Itu ditulis dalam Java dan karena itu dapat berjalan di semua sistem operasi utama. Seperti yang Anda duga dengan begitu banyak variasi Eclipse, ada banyak variasi dari apa yang disebut "Eclipse untuk Java". Buka situs web Eclipse, dan Anda akan menemukan yang berikut:

  • Eclipse Dasar untuk Pengembang Java, untuk membangun aplikasi Java SE
  • Eclipse untuk pengembang Java EE, untuk membangun aplikasi berbasis web dan server
  • Eclipse untuk Java dan Pengembang Laporan, gabungan alat Java EE dan alat pelaporan BIRT, yang memfasilitasi desain dan pembuatan laporan, termasuk mesin bagan, dan dapat diterapkan ke aplikasi desktop dan Web Java
  • Eclipse untuk Pengembang Java dan DSL, termasuk kerangka kerja Xtext open source yang memungkinkan Anda membuat DSL (bahasa khusus domain)
  • Eclipse for Testers, yang mencakup alat Jubula untuk membuat dan mengelola pengujian GUI otomatis dari aplikasi yang menggunakan Swing, SWT, HTML, dan teknologi antarmuka pengguna lainnya

Edisi tersebut kurang lebih merupakan koleksi khusus dari plugin Eclipse. Fleksibilitas arsitektur plug-in Eclipse berarti Anda dapat melengkapi instalasi Eclipse khusus Anda dengan kombinasi kemampuan yang hampir tidak terbatas. Untuk review ini, bagaimanapun, saya menginstal versi Java EE dari Eclipse, sebuah IDE yang dilengkapi untuk membuat aplikasi Java Web, server, dan desktop, serta Enterprise JavaBeans, Connectors, dan lainnya. Karena saya menggunakan Groovy untuk menulis skrip pengujian, saya menambahkan plug-in Groovy dari Codehaus.

Rilis terbaru (saat tulisan ini dibuat) adalah Eclipse Luna, yang sepenuhnya mendukung Java 8, termasuk kemampuan penganalisis memori Eclipse untuk menerima heap dump Java 8. Luna juga mendukung Paho, sistem perpesanan M2M (mesin ke mesin) yang menggunakan MQTT (Message Queuing Telemetry Transport), protokol perpesanan terbitkan dan langganan yang ringan.

Bekerja dengan Eclipse

Saat Anda membuka Eclipse, ruang kerja Anda terdiri dari banyak jendela tab, alias tampilan. Sebuah view menyediakan pengelolaan resource tertentu. Seorang editor adalah satu jenis pandangan; penjelajah paket, yang menunjukkan susunan paket, kelas, dan pustaka dalam aplikasi Java, adalah jenis tampilan lain; jendela debugger adalah tampilan; dan seterusnya.

Sebuah "perspektif" - konsep sentral dalam antarmuka pengguna Eclipse - adalah kombinasi tampilan yang diarahkan ke tugas tertentu. Selama penulisan kode Java yang sebenarnya, Anda akan menggunakan perspektif Java, dengan tampilan garis besar dan editornya. Saat tiba waktunya untuk men-debug aplikasi Anda, Anda akan beralih ke perspektif Debugging dengan tampilan debugging dan utas aktifnya. Untuk pekerjaan database, buka perspektif Pengembangan Database, dengan tampilan Penjelajah Sumber Data dan tampilan eksekusi SQL. Jumlah perspektif yang tersedia dalam sesi Eclipse tertentu umumnya bergantung pada plugin yang Anda pasang.

Sekompleks kedengarannya - ini pasti akan tampak rumit bagi siapa pun yang baru mengenal Eclipse - topologi area kerja Eclipse akan akrab bagi siapa saja yang telah menggunakan IDE. Tampilan navigasi di sebelah kiri, pengeditan konten di tengah, tampilan hierarki komponen di sebelah kanan, dan keluaran serta status di bagian bawah. Tentu saja, pengaturan elemen visual ini dapat disesuaikan sepenuhnya, dan Anda dapat menambahkan tampilan ke perspektif atau menghapusnya sesuka hati.

Eclipse diisi hingga penuh dengan setiap jenis editor yang dapat Anda bayangkan: editor untuk sumber daya Java, CSS, HTML, SQL, JavaScript, file Maven POM (Model Objek Proyek), dan - oh, ya - file sumber Java. Memang, pikirkan jenis file yang dapat dimodifikasi pengguna yang mungkin digunakan oleh aplikasi Java, dan Eclipse memiliki editor untuk itu. Meskipun Anda menemukan file yang tidak disediakan editor oleh Eclipse, IDE dapat dikonfigurasi untuk membuka editor eksternal. Tentu saja, editor Eclipse sadar akan konten. Buka file Java, dan Anda akan mendapatkan editor sumber Java. Buka file XML, dan Anda akan mendapatkan editor XML.

Saat Anda membuat kode, Eclipse siap dengan berbagai bantuan: penyelesaian otomatis, resolusi ketergantungan (gunakan kelas yang belum Anda impor, dan Eclipse akan menawarkan untuk menambahkan pernyataan impor untuk Anda), banyak kode boilerplate template - konstruktor, pengambil dan penyetel, toString()metode - dan banyak lagi. Repertoar refactoring-nya termasuk mengganti nama, memindahkan (mentransfer metode dari satu kelas ke kelas lain dan secara otomatis memperbarui referensi di seluruh kode), mengekstrak antarmuka dari kelas, dan trik praktis tambahan. Eclipse juga membantu Anda menjelajahi referensi dan deklarasi metode atau variabel.

Bahkan dengan semua bantuan ini, jika Anda melakukan kesalahan, Eclipse akan melacak perubahan Anda, dan fitur riwayat lokalnya memungkinkan Anda mundur ke masa lalu dan melihat perubahan Anda. Anda dapat melihat versi file sebelumnya, dan Eclipse menyediakan tampilan Diff grafis sehingga Anda dapat memeriksa delta antar versi.

Untuk membangun sebuah proyek, dukungan Eclipse untuk Ant terintegrasi. Dukungan Maven disediakan melalui plug-in proyek M2Eclipse. Jika Anda lebih suka Gradle, tersedia plug-in, meskipun kemampuannya bervariasi bergantung pada dukungan bahasa apa yang Anda tambahkan ke Eclipse. Plug-in dapat menangani Java, Groovy, dan Scala, dan dapat mengelola produksi WAR (arsip Web) dan EAR (arsip perusahaan). Berbicara tentang Scala, jika Anda ingin menggunakan bahasa JVM itu di Eclipse, ada plug-in untuk alat build, SBT, serta proyek Scala IDE lengkap yang dibangun di Eclipse.

Untuk kontrol versi, Eclipse dikirimkan dengan dukungan untuk CVS (ini termasuk klien built-in). Edisi Java EE Eclipse juga mencakup EGit, yang menyediakan integrasi Git. Plug-in tersedia untuk Subversion, Visual SourceSafe, Perforce, dan Mercurial. Bahkan, akan mengejutkan jika menemukan produk perangkat lunak kontrol versi yang tidak memiliki plug-in Eclipse gratis.

Bantuan dan dokumentasi Eclipse

Ada lebih banyak materi dalam dokumentasi online Eclipse daripada yang dapat Anda bayangkan, dan karena Eclipse telah ada begitu lama, beberapa dapat kembali ke masa lalu. Misalnya, Anda akan menemukan penunjuk di Eclipse Wiki ke artikel dua bagian "Ikhtisar Teknis Platform Eclipse". Versi asli dari bagian pertama ditulis pada tahun 2001; revisi terbarunya adalah tahun 2006. Panduan pengguna meja kerja online untuk versi Luna juga online di sini. Ini berjalan bermil-mil, karena mencakup dokumentasi untuk semua komponen Luna: C / C ++, Fortran, BIRT, EGit, JavaScript, pengembangan pemrosesan paralel, dan sebagainya.

Bantuan runtime Eclipse menyertakan fitur Bantuan Dinamis. Ini membuka bilah sisi: jendela mengambang yang dapat ditambatkan di mana pun Anda inginkan di GUI. Klik tampilan mana pun di sesi Eclipse Anda, dan konten sidebar berubah untuk mencerminkan pilihan Anda. Misalnya, jika Anda mengedit kelas Java dan mengklik jendela editor, konten sidebar bantuan mungkin berupa entri seperti "Konsep editor Java", "Menggunakan template kode", dan "referensi editor Java". 

Eclipse dapat menangani hampir semua tugas yang mungkin muncul dalam proses pengembangan Java. Ini juga dapat dilengkapi dengan semua alat yang Anda perlukan untuk tugas tambahan: menangani layanan Web, mengelola database, men-debug server aplikasi jarak jauh. Kekuatannya yang luar biasa adalah jumlah dan variasi plug-in yang tampaknya tak terbatas. Faktanya, bukan tidak masuk akal untuk mengatakan bahwa, saat Anda meluncurkan Eclipse, Anda mengaktifkan koloni plugin. Satu-satunya tugas nyata yang akan Anda hadapi saat mengelola proyek pengembangan dengan Eclipse adalah mengelola Eclipse itu sendiri, karena mudah untuk membuat anarki IDE.

NetBeans

IDE Java yang mapan, proyek NetBeans saat ini dikelola oleh Oracle. IDE bersumber terbuka oleh Sun Microsystems pada akhir 1990-an. Anda dapat menggunakan NetBeans untuk mengembangkan aplikasi tidak hanya di Java, tetapi juga di Groovy, JavaScript, PHP, dan C / C ++. Plug-in yang didukung komunitas tersedia untuk Python, Ruby, dan Scala.

Rilis NetBeans saat ini adalah versi 8.0.2, dan di sini, 8 adalah angka ajaib. Karena rilis ini menambahkan dukungan untuk Java 8 - termasuk dukungan untuk kode debug di mesin JavaScript Nashorn JDK 8. Rilis ini juga mendukung kerangka PrimeFaces, serta cara kerja yang lebih baik untuk Maven. (PrimeFaces adalah kerangka kerja antarmuka pengguna yang menggabungkan Java Server Faces dan komponen AJAX. Ini dapat digunakan untuk aplikasi desktop dan seluler.) NetBeans versi 8 meningkatkan dukungan untuk pustaka JavaScript seperti AngularJS dan JQuery, dan menambahkan dukungan untuk RequireJS, pustaka yang mengelola dependensi JavaScript dan pemuatan modul.

Versi terbaru NetBeans ini menangani Tomcat 8 dan server aplikasi TomEE hot-rodded Java EE, serta WildFly (sebelumnya JBoss) dan GlassFish. Tomcat dan GlassFish dibundel dengan IDE.

NetBeans tersedia dalam beberapa edisi. Untuk pengembangan Java dasar, gunakan edisi Java SE. Pilih edisi EE untuk pengembangan perusahaan. Ia menambahkan dukungan Java EE, serta dukungan untuk server aplikasi yang disebutkan di atas. Jika Anda bekerja dengan server aplikasi WebLogic, NetBeans dapat mengatasinya, tetapi Anda harus mengunduh server WebLogic secara terpisah dan mendaftarkannya dengan IDE.

Edisi NetBeans tersedia untuk pengembangan C / C ++, bersama dengan pengembangan PHP plus HTML5. Jika Anda menginginkan semuanya, ada edisi untuk itu juga.

Kartu catatan angka Kemudahan penggunaan (20%) Alat (20%) Add-on (20%) Dukungan lintas teknologi (20%) Dokumentasi (10%) Nilai (10%) Kemampuan (30%) Kemudahan pengembangan (20%) Kinerja (30%) Skor keseluruhan
IntelliJ IDEA 14 9 9 8 9 8 7 0 0 0 8.5
JDeveloper 12c 7 8 7 8 7 8 0 0 0 7.5
NetBeans IDE 8.0.2 9 8 8 8 8 8 0 0 0 8.2
Eclipse 4.4.1 (Luna) 7 9 9 8 8 8 0 0 0 8.2