Apakah perusahaan Anda berpikir untuk beralih dari java ke teknologi lain? [Tutup]

9

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.

Augusto
sumber
1
Apakah Groovy dan Scala tidak tergantung pada JVM? Jika demikian, mereka juga khawatir dengan Oracle yang ingin memonetisasi JVM.
POSIX_ME_HARDER
Kamu benar. Itu akan berdampak pada adopsi Scala, Groovy atau JRUby di perusahaan yang menginginkan jvm komersial alih-alih jvm terbuka. Saya akan membiarkan pertanyaan awal tidak tersentuh karena saya pikir beberapa perusahaan akan senang membayar untuk JVM komersial untuk menggunakan bahasa yang berbeda
Augusto
Sebagai pengembang Java, saya menerima masalah dengan pernyataan "sebagaimana setiap pengembang Java tahu". Saya pikir masa depan Jawa keduanya a) Jelas dan b) Cerah. Saya yakin beberapa orang mungkin ingin membayar ekstra untuk paket dukungan Oracles "premium", tetapi bagi kita yang hanya berencana untuk tetap menggunakan Java versi gratis dan open-source (yang tidak akan hilang!) Maka itu agak tidak relevan.
mikera
Mikera, Anda menyebutkan open source, tetapi beberapa pengembang java berpengaruh yang digunakan untuk memimpin proyek open source, sekarang memimpin proyek dalam Bahasa lain, sehingga "energi" mereka dialihkan dari java. Periksa semua kerangka kerja luar biasa yang tersedia untuk Scala, Groovy atau Ruby. Saya tidak memiliki angka untuk mendukung ini, tetapi mungkin menarik untuk memeriksa berapa banyak "baris kode" yang telah berkomitmen untuk membuka repositori sumber terbuka dalam berbagai bahasa umum dan kecenderungannya.
Augusto

Jawaban:

9

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:

  • Concurrency - Clojure memiliki kisah konkurensi yang unik, berfungsi dengan baik menonton video ini yang menggambarkan beberapa konsep inti. Ini dapat mengukur secara andal untuk arsitektur multi-inti secara besar-besaran dengan menggunakan Memori Transaksional Perangkat Lunak . Dan itu berhasil melakukan ini tanpa banyak overhead (bebas kunci!) Yang merupakan prestasi rekayasa yang luar biasa.
  • Pemrograman fungsional - Clojure adalah bahasa fungsional yang menekankan keabadian dan fungsi urutan yang lebih tinggi. Ini tidak sepenuhnya berfungsi seperti Haskell, tetapi ini adalah bahasa FP yang pertama dan terutama. Beberapa orang mengatakan ini membantu Anda menulis program yang lebih baik.
  • Produktivitas programmer - Clojure mendapatkan semua manfaat produktivitas dari filosofi kode-is-data Lisp. Dalam praktiknya ini berarti kemampuan makro yang sangat kuat, dan sintaksis sederhana namun sangat fleksibel yang dapat Anda gunakan untuk menentukan DSL Anda sendiri untuk setiap masalah yang Anda hadapi.
  • Kebutuhan akan bahasa dinamis yang cocok untuk pengembangan dan pembuatan skrip yang cepat - Clojure dapat digunakan dalam siklus build-test-deploy standar tetapi sebenarnya lebih alami untuk menggunakan REPL untuk berkembang secara interaktif, memodifikasi lingkungan kode yang sedang berjalan saat Anda menggunakannya. Sebagai contoh, saya menggunakan Incanter untuk dapat memplot grafik dan memvisualisasikan data dengan cepat saat saya mengembangkan untuk melihat hasil batch berjalan.
  • Interoperabilitas Java - Java interop Clojure sangat efektif. Objek clojure adalah objek Java dan sebaliknya, jadi sepele untuk memanggil Java API dan perpustakaan kapan pun Anda membutuhkannya. Ini memberi Anda semua manfaat dari seluruh perpustakaan dan alat ekosistem Jawa.
  • Komunitas yang baik - Komunitas Clojure kecil tapi dinamis, ramah dan tumbuh cepat. Banyak proyek open source yang besar sudah, seperti Incanter (komputasi statistik) atau Cincin / Compojure (server web framework) atau Berlawanan (Eclipse IDE Plugin)
mikera
sumber
Mikera, inilah tepatnya yang saya tanyakan. Perusahaan Anda meninggalkan Jawa sebagai bahasa utama untuk pengembangan aplikasi dan sebagai gantinya menggunakan Clojure. Saya setuju dengan Anda, bahwa JVM tidak akan hilang, khususnya dengan beberapa perusahaan yang berinvestasi dalam bahasa lain yang berjalan di atas JVM. Bisakah Anda berbagi sedikit lebih banyak tentang apa yang ada di balik keputusan untuk menggunakan clojure sebagai bahasa pengembangan utama?
Augusto
Tentu, saya telah menambahkan beberapa komentar tentang mengapa Clojure pada khususnya (saya juga mempertimbangkan Scala yang juga sangat menjanjikan, tetapi Clojure menang dengan selisih yang sempit karena Lisp-
nessnya
Terima kasih atas penjelasan tentang mengapa perusahaan Anda memutuskan untuk menggunakan clojure!
Augusto
7

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
Pengecer mobil besar AS melakukan hal serupa, mulai membangun sebagian besar proyek greenfield di ruby ​​daripada di Jawa.
Augusto
1

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.

aneh
sumber
0

Apakah perusahaan Anda berpikir untuk beralih dari java ke teknologi lain?

Untuk menjawab pertanyaan Anda. Tidak.

Karena setiap pengembang Java tahu ...

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.

... masa depan java terlihat sangat tidak jelas, khususnya karena Oracle ingin memonetisasi JVM.

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.

Java sebagai bahasa juga telah basi dalam beberapa tahun terakhir, non-inklusi penutupan adalah salah satu contoh (yang mungkin termasuk dalam java 1.8).

Ini mungkin menjengkelkan pengembang, tetapi "staleness" sebenarnya adalah konsekuensi dari Sun / Oracle memperhatikan apa yang diinginkan bisnis ... bahasa / platform dengan stabilitas jangka panjang.

Pada saat yang sama, beberapa teknologi baru seperti Ruby, Scala dan Groovy digunakan untuk mengirimkan situs yang kompleks.

Sekali lagi, dari perspektif manajemen, juri tidak peduli apakah teknologi ini lebih baik.

  • Apakah peningkatan produktivitas yang diklaim benar-benar terbukti dalam jangka panjang?
  • Apakah kinerjanya sudah ada? Skalabilitas? Alat dan perpustakaan pihak ketiga?
  • Bisakah mereka merekrut staf berpengalaman?

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".

Stephen C
sumber
@ Agusto - Saya telah menjawab pertanyaan Anda; lihat kalimat pertama. Apakah kamu senang sekarang?
Stephen C