Seperti yang diketahui oleh setiap pengembang Java, Oracle membeli Sun dan masa depan java terlihat tidak jelas, khususnya karena Oracle ingin memonetisasi JVM. Java sebagai bahasa juga telah basi dalam beberapa tahun terakhir, non-inklusi penutupan adalah salah satu contoh (yang mungkin termasuk dalam java 1.8). Pada saat yang sama, beberapa teknologi baru seperti Ruby, Scala dan Groovy sedang digunakan untuk mengirimkan situs yang kompleks.
Saya bertanya-tanya apakah ada perusahaan atau organisasi yang berbicara, melakukan paku atau mulai menggunakan teknologi yang berbeda, dengan ide untuk berhenti menggunakan java untuk proyek-proyek lapangan hijau, dengan cara yang sama seperti 15 tahun yang lalu perusahaan bermigrasi dari C ++, perl dan teknologi lainnya ke Jawa. Saya juga tertarik untuk mengetahui apa kesan dari kejadian ini, misalnya: berencana untuk bermigrasi ke teknologi yang berbeda dalam 2 tahun.
Untuk lebih jelasnya, saya tidak menanyakan teknologi mana yang lebih baik. Saya bertanya apakah organisasi Anda berpikir untuk meninggalkan Jawa untuk teknologi lain.
Jawaban:
Tidak sama sekali - pada kenyataannya saya banyak berinvestasi di Jawa sebagai platform di perusahaan saya (startup yang mengembangkan aplikasi dan alat SaaS untuk penambangan data).
Berikut alasannya:
Memilih Java sebagai platform tidak berarti Anda harus menggunakan Java sebagai bahasa. Kami menggunakan Clojure sebagai bahasa pengembangan aplikasi utama, sesekali jatuh ke Jawa di mana diperlukan. Tetapi bahasa JVM lainnya seperti Scala dan Groovy juga bagus.
Saya pribadi tidak khawatir tentang Oracle . Implementasi utama Java hampir pasti akan terus menjadi open source ( OpenJDK ) dan tersedia secara bebas. Jika Oracle melakukan sesuatu yang bodoh maka perusahaan-perusahaan besar lainnya (saya pikir IBM dan Google khususnya) telah terlalu banyak berinvestasi di Jawa untuk melepaskannya, dan mereka dapat dengan mudah terus mengembangkan Java tanpa bantuan Oracle.
The JVM adalah lingkungan eksekusi yang besar . Cross platform, kinerja sangat tinggi, sangat baik mengoptimalkan teknologi JIT. Ini cukup dekat dengan kecepatan asli sehingga saya tidak peduli dengan jumlah fraksional yang lebih lambat daripada C / C ++, dan overhead ini lebih dari dikompensasi oleh pengumpulan sampah yang tepat dan lingkungan eksekusi bytecode yang dikelola dll.
Java memiliki ekosistem perpustakaan open source yang hebat . Bahkan, saya katakan itu adalah ekosistem terbaik secara keseluruhan dari bahasa apa pun. Ini berarti bahwa sebagian besar "pengangkatan berat" dalam hal infrastruktur telah dilakukan, dengan kualitas yang sangat tinggi. Dan fakta bahwa sebagian besar hal yang Anda butuhkan adalah open source berarti Anda tidak memiliki biaya (dalam hal uang dan waktu manajemen) untuk mendapatkan lisensi.
Eclipse adalah IDE yang hebat dan menyediakan toolchain yang fantastis untuk pengembangan aplikasi perusahaan yang kuat. Kami menggunakan integrasi Maven, JUnit, Git / SVN dan sejumlah alat lain yang tersedia sebagai plugin Eclipse. Itu semua "hanya bekerja".
Akhirnya, apa saja pilihan lain?
.NET adalah satu-satunya platform dengan kemampuan yang sebanding dan saya pribadi suka C #, tetapi mengunci Anda ke dalam teknologi Microsoft (lebih buruk dari Oracle / IBM IMHO) dan tidak memiliki luas yang sama dengan ekosistem open-source. Baik untuk toko Microsoft, tetapi tidak jika Anda ingin mengontrol nasib teknologi Anda sendiri. Dan ya, Mono imut, tetapi saya tidak mampu untuk mempertaruhkan bisnis saya pada platform yang mungkin atau mungkin tidak dapat mempertahankan tingkat kompatibilitas yang sesuai dengan .NET mainstream.
Lalu ada semua bahasa hebat lainnya yang sangat bagus dalam apa yang mereka lakukan (mis. Ruby, Python, PHP, Javascript) tetapi tidak menawarkan, setara komprehensif yang menarik untuk platform Java. Risikonya adalah Anda harus mulai menempelkan banyak hal bersama dalam arsitektur yang sedikit kurang indah. Bukan masalah untuk membangun situs web, aplikasi cepat dan kotor, tetapi kurang menarik untuk pengembangan produk jangka panjang.
C / C ++ bagus untuk pemrograman dan permainan sistem, tetapi terlalu rumit / mahal / tidak fleksibel untuk pengembangan aplikasi web modern.
Dan kemudian ada bahasa-bahasa indah yang saya sukai seperti Haskell, yang fantastis dari perspektif akademis tetapi tidak memiliki adopsi industri / ekosistem yang diperlukan untuk menjadikannya pilihan platform yang kredibel. Juga saya bisa mendapatkan sebagian besar manfaat pemrograman fungsional modern dengan menjalankan Clojure pada JVM .....
Jadi ya, ini keputusan yang rumit. Tapi saya membuat keputusan Java di atas semua opsi lain setelah banyak penelitian dan pertimbangan yang cukup. Saya masih akan membuat keputusan yang sama hari ini.
MEMPERBARUI
Beberapa kata tentang pilihan Clojure di JVM sebagai pilihan bahasa. Motivasi utama untuk ini adalah:
sumber
Itu semua tergantung pada pelanggan.
Java selalu akan memiliki ceruk kecilnya sendiri di mana orang akan tertarik padanya karena satu dan lain alasan, karena alasan yang sama seperti orang tertarik pada .php atau .net, tetapi pada akhirnya tergantung pada kebutuhan dan preferensi pelanggan.
Jika seorang pelanggan mengatakan ... Saya ingin aplikasi ini berada di java ... apakah kita akan mengatakan tidak? mungkin tidak ... jika mereka mengatakan kita tidak benar-benar peduli ... apakah kita akan menulisnya di java? mungkin tidak, tapi itu hanya spekulasi.
Kami memiliki aplikasi yang ditulis dalam java yang memiliki sejarah panjang, tetapi tampaknya pelanggan dengan cermat mengganti SEMUA dengan merek windows .... oracle ke sql server ... unix / linux dengan server 2008 ... dan php dan java dengan .net.
Jika itu terjadi maka ya ... kecuali pelanggan baru masuk dan mengatakan hei ... kami ingin ini ditulis dalam java ... kami akan menggunakan .net.
sumber
Pertama, premis, saya tidak bekerja di perusahaan perangkat lunak.
Oke, kami menggunakan Oracle sebagai basis data utama kami dengan semua informasi penting kami tersimpan di dalamnya. Karena itu, kami berencana untuk terus menggunakan Java untuk segala hal yang berkaitan dengan Oracle. Akuisisi Oracle terhadap Sun adalah dorongan bagi kami untuk terus menggunakan Java untuk apa pun yang terkait dengan Oracle.
Tapi, semua aplikasi desktop ditulis dalam C # karena semuanya berbasis Windows.
sumber
Untuk menjawab pertanyaan Anda. Tidak.
Dalam perusahaan dengan ukuran yang signifikan, biasanya bukan pengembang yang memutuskan masalah seperti apakah perusahaan harus pindah dari Jawa dan menuju yang lain. Dan untuk tipe yang membuat keputusan ini, faktor-faktor lain selain yang Anda daftarkan adalah penting.
Sebaliknya, saya pikir masa depan sudah jelas. Evolusi Java akan berlanjut dengan kecepatan lambat namun stabil, dan teknologi inti SE dan EE akan terus bebas. Bagi saya, satu-satunya bidang ketidakpastian adalah apa yang akan terjadi dengan Oracle vs Google bunfight. Tetapi dengan satu atau lain cara, saya berharap bahwa Android / Davlik akan berkembang sebagai alternatif untuk Java ME ... tetapi hanya untuk platform seluler.
Ini mungkin menjengkelkan pengembang, tetapi "staleness" sebenarnya adalah konsekuensi dari Sun / Oracle memperhatikan apa yang diinginkan bisnis ... bahasa / platform dengan stabilitas jangka panjang.
Sekali lagi, dari perspektif manajemen, juri tidak peduli apakah teknologi ini lebih baik.
Keputusan tingkat perusahaan untuk beralih ke bahasa baru memiliki biaya dan risiko yang signifikan, terutama jika ada sejumlah besar kode yang ada dalam bahasa "warisan".
sumber