Kalau bicara soal perbandingan kita jangan sekali-kali pakai perasaan, tapi harus pakai data. Fakta saja yang ada dipakai, jangan melibatkan like-dislike ya!
Java, saat ini sudah jadi salah satu standar industri software untuk big company, big industry dengan dukungan banyak prinsipal. Node.js saat ini berkembang pesat diadopsi untuk pembuatan software, bedanya adalah yang menggunakan. Java untuk industri software kelas enterprise, node.je untuk kelas midle!
Fakta mengenai hal tersebut apa ? Ada gak sih vendor/prinsipal yang secara komersial membuat support untuk node.js baik dari sisi maintenance atau pengembangan ? Sementara java banyak sekali dari sisi server kita kenal ada oracle webmethod, ibm websphere, redhat jboss, payara glassfish, dan masih banyak lagi. Untuk node.js apakah saat ini ada ?
Kita bisa idealis ngomong bahwa node.js lebih cepat, efisien, ringan dan mudah untuk dioperasikan ?
Iya sebagai individu bisa banget, tetapi bagi organisasi besar, bagi perusahaan yang nanti butuh sustain, butuh keberlangsungan, butuh kepastian operasional saat sebuah sistem digunakan, idealis individu gak berlaku sama sekali. Gak mungkin kan jalannya bisnis akan digantungkan sama kesanggupan individu atau kelompok ?
Kembali ke pertanyaan basic, yaitu siapa yang akan mensupport operasional node.js ? Selain tim pengembang yang menemukan node.js untuk membuat sistem, nanti setelah 4 tahun siapa ? Koq 4 tahun doang ?
Angka 4 tahun adalah penentu seorang itu bekerja secara maksimal, apalagi dengan kondisi seperti sekarang yang sudah sedikit sekali istilah karyawan tetap, yang ada adalah setiap orang akan berpindah ke tempat yang lebih tinggi bayarannya. Jadi, bisnis anda selama 4 tahun akan aman ketika membuat support sendiri, dan silahkan dipastikan setelah para pengembang yang menggunakan node.js pindah ke tempat lain, bagaimana dengan bisnis Anda.
Dari sisi scalability, availability?
Secara teknis node.js tidak support multithread, dan java multithread. Efeknya apa ? utilitasi server akan terdampak. Makanya node.js agar bisa handle high concurrent dibuat async sehingga bisa melayani banyak request. Sementara java bisa bermain di area sync dan async. Kalau gak pahal soal multithread, jangan sok tau dibagian ini.
Kalau java ? Tinggal pilih mau support dari siapa ?, tinggal pilih cost yang akan dibayar dan sesuaikan saja benefit yang akan diperoleh dari beli support itu. Jadi ini bukan sekedar kecepatan, kemudahan. Tetapi dalam bisnis ada istilah surround environment.
Kalau usaha kelas personal, rumahan, 1 company yang masih bisa dihandle oleh ceonya, worth banget pakai node.js atau php atau python yang bisa handle sendiri. Trus kalau perusahaan besar, gak mungkin kan akan ketergantungan sama 1 orang atau 1 tim. Yang terjadi nanti vendor locking. Gak baik banget untuk keberlangsungan bisnis.
Kesimpulan:
Kalau mau bikin aplikasi server side dengan jumlah data yang kecil-kecil, simple logic, crud based, node.js sudah lebih dari cukup. Tetapi kalau untuk aplikasi dengan jumlah data besar, long proccess, complex logic, saat ini setauku hanya java dan .net yang punya proof di sini.
Gini aja, sesuaikan dengan jenis usaha, jenis perushaan, jenis data dan jenis user.