Fitur penutupan .NET populer di kalangan banyak pengembang, dan Java tampaknya akan segera mengimplementasikannya. Tentu saja, ini adalah fitur bahasa, bukan fitur runtime. Menurut saya, yang mana dari keduanya yang akhirnya Anda pilih tergantung pada preferensi pribadi dan peluang karier lokal. Fitur penutupan .NET populer di kalangan banyak pengembang, dan Java tampaknya akan segera mengimplementasikannya. Tentu saja, ini adalah fitur bahasa, bukan fitur runtime. Menurut saya, yang mana dari keduanya yang akhirnya Anda pilih tergantung pada preferensi pribadi dan peluang karier lokal.
1.Apa yang akan terjadi jika Java SE 7 bertemu .NET CLR?
Seperti yang Anda lihat dari daftar fitur Java SE 7, ini telah meningkat pesat dibandingkan versi sebelumnya. Jadi, apakah ini merupakan pengubah permainan? Selama beberapa tahun terakhir, telah terjadi banyak perbaikan pada JVM dan .NET CLR, banyak hal yang sebelumnya hanya dapat dicapai oleh pemrogram yang sangat terampil, kini dapat dilakukan oleh pemrogram biasa berkat peningkatan pada JVM; dan dapatkan .NET CLR.
Meskipun JVM dan .NET CLR tidak mengimplementasikan ide yang sama pada saat yang sama, jika ide bagus muncul di satu sisi, sisi lain akan segera menindaklanjutinya. Hal ini tidak hanya tercermin pada level runtime. Misalnya, untuk Java, setelah proyek Hibernate mencapai kesuksesan besar, .NET juga dengan cepat meluncurkan NHibernate. Fungsi penutupan .NET sangat populer di antara banyak pengembang, dan Java tampaknya akan segera mengimplementasikannya. Tentu saja, ini adalah fitur bahasa, bukan fitur runtime.
Penutupan .NET sangat sukses, dan Java akan segera mengikutinya
2. Akankah satu runtime mengalahkan runtime lainnya di masa mendatang?
Meskipun JVM dan .NET CLR sangat mirip pada tingkat teknis, masing-masing memiliki pasarnya sendiri, dan keduanya tidak terlalu fleksibel. Jika seseorang telah membuat infrastrukturnya di sekitar server .NET dan IIS, tidak mungkin mereka dapat bangun keesokan harinya dan memigrasikan semua itu ke Java, dan sebaliknya. Bahkan jika sebuah perusahaan memutuskan untuk mengganti platform pengembangannya, perusahaan tersebut mungkin perlu mengganti seluruh tim pengembangannya atau melatih mereka dari awal. Bahkan setelah pelatihan selesai, masih terdapat kekurangan keterampilan yang serius, tidak mungkin seorang pengembang .NET senior tiba-tiba menjadi pengembang Java senior setelah 3 bulan pelatihan.
Selain itu, perusahaan perlu mempertahankan tenaga teknis yang ada untuk mempertahankan kode etik yang ada. Apakah menurut Anda para karyawan ini akan duduk diam dan melihat posisi mereka dieliminasi, atau keterampilan mereka menjadi tidak berguna atau terdevaluasi? Bagi sebuah perusahaan, beralih sepenuhnya dari Java ke .NET atau sepenuhnya beralih dari .NET ke Java adalah tindakan bunuh diri. Paling banyak, karyawan akan dididik ulang melalui proyek multi-tahun. Migrasi dari VB6 ke .NET memakan waktu 8 tahun sejak .NET dirilis.
Transformasi programmer dan proyek membutuhkan waktu
3. Apakah biaya pengembangan Java lebih ekonomis dibandingkan pengembangan .NET? Jika ya, apakah masyarakat akan beralih ke Java untuk menghemat investasi?
Jika Anda hanya melihat alat-alatnya, jawaban saya adalah "benar dan salah." Memang, Anda dapat menjalankan Java pada paket sumber terbuka sepenuhnya jika Anda mau. Anda dapat menggunakan kombinasi Linux/Tomcat/MySQL/Java, atau menggunakan kombinasi SpringSource di sisi server dan Eclipse atau NetBeans di komputer pengembang. Namun penting untuk diketahui bahwa Anda tidak akan menjadi penggemar berat alternatif open source karena alasan apa pun, dan saya tidak mengatakan bahwa alternatif tersebut buruk; Alat .NET Cukup, dan dalam banyak kasus bahkan lebih mahal. Dan melihat apa yang dilakukan perusahaan seperti Oracle dan IBM, jelas bahwa banyak perusahaan merasa perlu membayar untuk alat Java yang dipatenkan. Dalam hal harga, Microsoft hampir selalu menjadi vendor perusahaan dengan harga terendah di segmen pasar mana pun.
Selain itu, Anda harus mempertimbangkan berapa banyak uang yang dapat dihemat perusahaan jika tidak ada biaya peralihan. Biaya salinan Visual Studio jauh lebih murah dibandingkan gaji mingguan dan premi asuransi pengembang berpenghasilan menengah. Selain itu, waktu yang dibutuhkan pengembang yang sama untuk mempelajari Java dan mencapai tingkat keahliannya di .NET jauh lebih lama dari seminggu.
Agar adil, analisis ini juga berlaku untuk perpindahan dari Java ke .NET. Dibandingkan dengan kesulitan dalam peralihan platform, biaya alat pengembangan benar-benar dapat diabaikan. Tentu saja ada dua pengecualian. Situasi pertama adalah membangun perusahaan baru, sehingga tidak ada masalah biaya migrasi. Dalam hal ini Java masih belum memiliki keunggulan biaya, karena Microsoft juga telah meluncurkan Visual Studio versi gratis (versi Express), dan jika perusahaan Anda adalah perusahaan baru, Anda bisa mendapatkannya secara gratis selama tiga tahun melalui BizSpark rencana MSDN dan berlisensi Microsoft, mereka tidak buruk. Pengecualian lainnya adalah perusahaan dengan rasio server-pengembang yang sangat tinggi, seperti Google atau Yahoo. Perusahaan semacam itu mungkin memiliki banyak pengembang yang mengerjakan aplikasi yang berjalan di ribuan server. Dalam hal ini, alat pengembang bukanlah faktor utama dalam penghematan biaya, namun ruang server adalah faktor utama. Bagi perusahaan yang menghadapi situasi ini, Java (dan teknologi open source lainnya) dapat memiliki keunggulan biaya yang menentukan.
4. Berapa banyak bahasa skrip yang perlu diketahui pengembang Java untuk mencapai efisiensi di .NET?
Pertama, apakah Anda bekerja di bidang pengembangan web? Jika ya, Anda mungkin ingin mengetahui beberapa JavaScript dan memahami kerangka kerja terkait. Untuk pekerjaan backend, mengetahui bahasa dinamis atau scripting tidak wajib atau diwajibkan. Meskipun demikian, ada banyak pilihan bagus untuk tujuan ini di bidang Java. Untuk seseorang yang saat ini bukan pengembang Java, saya tidak punya pengalaman nyata di bidang ini, tapi saya sudah mendengar banyak ulasan bagus tentang Groovy dan Scala. Jika Anda ingin memilih beberapa teknologi yang lebih umum, JRuby dan Jython adalah pilihan yang baik.
Ada berbagai cara untuk meningkatkan kinerja aplikasi Java
Selama beberapa tahun terakhir, JVM mulai mendukung bahasa non-Java dalam jumlah besar, dan pengembang kini memiliki banyak pilihan. Mempelajari salah satu dari ini pasti akan membantu Anda menjadi pengembang yang lebih baik (bahkan jika Anda tidak menggunakannya dalam proyek produksi sebenarnya), dan dapat memberi Anda arahan alternatif ketika proyek Anda mengalami kebuntuan.
Akankah Java menggantikan .NET? Masih terlalu dini untuk mengatakannya. Pada saat yang sama, .NET tidak akan mematikan Java. Keduanya mempunyai kelebihan dan kekurangan masing-masing. Menurut saya, yang mana dari keduanya yang akhirnya Anda pilih tergantung pada preferensi pribadi dan peluang karier lokal.