Pendahuluan: JRebel merilis Laporan Teknologi Java 2020. JRebel adalah salah satu plug-in JVM Perforce, yang memungkinkan pengembang Java untuk langsung memperbarui kode mereka dan melihat perubahan ini tercermin dalam aplikasi yang sedang dikembangkan tanpa memulai ulang server aplikasi.
Survei JRebel menerima hampir 400 tanggapan dari pengembang di seluruh dunia. Laporan survei ini mencakup semua bagian dari rantai alat pengembang, termasuk bahasa pemrograman, arsitektur aplikasi, server aplikasi, platform runtime, teknologi kerangka kerja, konfigurasi kerangka kerja, IDE, rilis JRE / JDK, penyedia PaaS, database, mode penerapan , Bangun alat dan alat virtualisasi.
Bahasa jawa
Lima puluh delapan persen responden menyatakan bahwa mereka memilih Java 8 sebagai bahasa pemrograman di aplikasi utama mereka. Dan Jawa 11 menempati urutan kedua dengan 23% responden. 7% responden mengatakan mereka menggunakan Java 7 atau sebelumnya, dan 6% lainnya mengatakan mereka menggunakan Java 12 atau lebih baru. Kotlin dan JavaScript memiliki tingkat penggunaan terendah, masing-masing 3% dan 2%.
Bagi kami, tidak heran melihat Java 8 menjadi bahasa pemrograman yang dominan. Namun, yang mengejutkan, hanya 23% responden yang menggunakan Jawa 11. Kami percaya bahwa ini terkait dengan kurangnya pembaruan Java yang efektif sejak Java 8 dan biaya pembaruan JVM. Untuk responden yang masih menggunakan Java 7 atau sebelumnya, kami perkirakan jumlah ini akan berkurang karena semakin banyak aplikasi yang terus bermigrasi ke Java 14 atau versi yang saat ini tersedia.
Server aplikasi Java
Apakah berbagai server aplikasi menghilang? Hasil survei kami menunjukkan bahwa pengembang menggunakan Tomcat hampir lima kali lebih cepat daripada pesaing terdekat. 61% responden menyatakan bahwa mereka menggunakan Tomcat pada aplikasi utama mereka, dan jelas bahwa Tomcat adalah server aplikasi yang dominan. Server aplikasi peringkat kedua adalah Jetty, yang menyumbang 13%; sedangkan tingkat pemanfaatan WebLogic dan WebSphere masing-masing adalah 7% dan 6%. Di bagian bawah, JBoss / Wildfly memiliki tingkat pemanfaatan 5%.
Tentunya, Tomcat mengambil langkah yang tepat untuk merebut pangsa pasar yang begitu besar. Bagi saya, setidaknya sebagian alasannya adalah keserbagunaan dan kompatibilitas Tomcat dengan platform Java utama lainnya seperti Spring Boot, Docker, Hybris, dan AWS. Curtis Johnson, Manajer Produk JRebel
Aspek utama lainnya adalah biayanya: gratis. Oleh karena itu sulit bagi manajemen untuk menolaknya. Di masa lalu, kurangnya dukungan untuk server aplikasi adalah salah satu alasan utama mengapa orang terbiasa menggunakan server aplikasi seperti Websphere, Weblogic, dan JBoss. Sekarang tampaknya perusahaan arsitektur Java telah memutuskan bahwa cara terbaik untuk mendukung server aplikasi adalah dalam arsitekturnya, bukan hanya di server aplikasi.
Platform runtime Java
Pilihan paling populer untuk platform runtime adalah Spring Boot, yang menyumbang 83%. Tentu saja, Spring Boot telah menjadi framework Java pilihan selama bertahun-tahun. Ini setidaknya sebagian karena peningkatan adopsi layanan mikro di aplikasi Java dalam beberapa tahun terakhir. Di antara semua responden, Spring menjadi pilihan terpopuler kedua dengan 2%, dan mereka yang tidak menggunakan platform runtime juga menyumbang 2%, menjadikannya seri. Responden yang menggunakan Dropwizard, Micronaut, Vert.x atau platform khusus masing-masing menyumbang 1%.
Teknologi kerangka Java
Pertanyaan ini meminta responden untuk memilih kerangka aplikasi dan teknologi yang digunakan dalam proyek utama mereka. Karena sebagian besar aplikasi menggunakan berbagai teknologi kerangka kerja yang berbeda, pertanyaan ini memungkinkan banyak jawaban.
86% responden mengatakan mereka menggunakan Spring. 51% responden mengatakan mereka menggunakan teknologi persistensi seperti Hibernate, OpenJPA atau EclipseLink. 27% responden mengatakan bahwa mereka menggunakan teknologi rendering sisi server seperti JSP, JSF, Thymeleaf, FreeMarker, atau GWT. 26% responden mengatakan mereka menggunakan teknologi JAX-RS atau JAX-WS seperti Jersey, RESTEasy, CXF, atau Axis. Untuk kerangka kerja responsif, 11% responden mengatakan mereka menggunakan teknologi seperti Vert.x, Akka, RxJava, atau Project Reactor. Terakhir, 7% responden mengatakan bahwa mereka menggunakan JavaBeans dalam proyek utama mereka.
Konfigurasi kerangka Java
Untuk konfigurasi kerangka kerja, kami menemukan bahwa sebagian besar responden menggunakan @Annotation pada kelas, metode dan bidang, atau menggunakan xml eksternal, yaml atau file serupa. 68% pengguna mengatakan mereka menggunakan @Annotation, dan 67% pengguna mengatakan mereka menggunakan xmlL eksternal, yaml atau file serupa. 18% responden menggunakan kode yang ditambahkan dalam metode yang dijalankan selama inisialisasi untuk konfigurasi.
IDE Java
Dalam pertanyaan ini, kami meminta pengembang untuk membuat daftar Integrated Development Environment (IDE) yang mereka gunakan secara profesional. Beberapa tahun yang lalu, pengembang mempertanyakan apakah perlu mengeluarkan uang untuk IDE.
Namun, 82% responden mengatakan bahwa mereka menggunakan IntelliJ IDEA, dan jelas bahwa IDE berbayar ini patut untuk dicoba. IDE kedua yang paling umum digunakan adalah Eclipse dengan 24% dan VSCode dengan 10%. Terakhir, 4% responden mengatakan bahwa mereka menggunakan NetBeans sebagai profesional. Selama bertahun-tahun, NetBeans benar-benar kehilangan semua minat, dan bahkan VSCode melampaui itu dalam survei ini.
Rilis JRE / JDK
Dalam pertanyaan survei ini, kami meminta responden untuk memilih versi rilis JRE / JDK yang mereka gunakan. Selain itu, hasil yang lebih mengejutkan dalam survei ini adalah kami menemukan bahwa hampir 50% responden menggunakan Oracle JDK berbayar. Ini 13% lebih tinggi daripada responden yang menggunakan Oracle OpenJDK, yang menyumbang 36%.
Kami pikir ini mungkin karena dua alasan: 1. Ada banyak pengembang Java 8 dalam survei kami. Kami percaya bahwa jumlah pengembang yang menggunakan Java 8 menunjukkan bahwa proyek tersebut belum diperbarui untuk waktu yang lama, yang mungkin menjadi alasan mengapa aplikasi tetap dalam rilis Oracle. 2. Dukungan yang diberikan oleh Oracle JDK mungkin lebih penting dari yang kita duga.
Sungguh mengejutkan melihat begitu banyak orang yang membayar Oracle JDK di antara responden survei kami. Saya sepenuhnya berharap opsi open source memiliki pangsa pasar yang lebih besar. Curtis Johnson, Manajer Produk JRebel
Selain Oracle OpenJDK dan Oracle JDK, 10% responden mengatakan mereka menggunakan AdoptOpenJDK, dan 2% lainnya mengatakan mereka menggunakan Azul Zulu.
Penyedia Java PaaS
Dalam pertanyaan ini, kami meminta responden untuk melaporkan penyedia PaaS pilihan mereka. Dari 60% responden yang menggunakan penyedia PaaS, 43% memilih AWS, 14% memilih Microsoft Azure, dan 12% memilih Google Cloud Platform. Vendor dengan lebih sedikit pilihan termasuk Pivotal Cloud Foundry, yang menyumbang 4%, dan SAP Cloud Platform dan IBM Cloud masing-masing akun sebesar 2%.
Database Java
Dalam pertanyaan ini, kami meminta responden untuk memilih database yang mereka gunakan saat ini. Yang paling populer adalah PostgreSQL dengan 47%, diikuti oleh Oracle DB dengan 42%. Berikutnya adalah MySQL, dengan 28% responden melaporkan penggunaan. MongoDB berada di peringkat keempat, terhitung 12% dari responden. Basis data yang paling sedikit digunakan termasuk SQL, NoSQL, dan Cassandra, dengan tingkat penggunaan masing-masing 7%, 6%, dan 4%.
Mode penerapan Java
Dalam pertanyaan ini, kami meminta responden untuk melaporkan model penerapan yang mereka gunakan. Model penerapan yang paling populer (46%) adalah menjalankan aplikasi sebagai JAR. 44% responden melaporkan bahwa mereka menerapkan ke server aplikasi, sementara 5% responden melaporkan bahwa mereka menggunakan platform seperti Hybris atau Liferay untuk menyebarkan aplikasi mereka.
Alat build Java
Untuk alat pembangunan, kami meminta pengembang untuk memilih alat yang mereka gunakan di aplikasi utama. Seperti yang diharapkan, Maven dan Gradle adalah alat yang paling umum digunakan. Namun, mungkin mencerminkan jumlah responden yang bekerja di bidang pengembangan seluler, Gradle lebih populer di antara keduanya. Kami pikir ini tidak mencerminkan realitas adopsi Maven dan Gradle, tetapi bagaimanapun, ini adalah fenomena yang menarik. Survei kami menemukan bahwa 47% responden menggunakan Gradle sebagai alat pembuat aplikasi utama mereka, sementara 44% responden mengatakan mereka menggunakan Maven. Tingkat penggunaan semut lebih rendah dari kedua angka ini, keduanya sebesar 7%.
Alat virtualisasi Java
Dalam pertanyaan ini, kami bertanya kepada pengembang alat virtualisasi mana yang mereka gunakan. Sejauh ini, alat yang paling umum digunakan adalah Docker, yang menyumbang 74%. Mempertimbangkan persentase pengembang Java yang menggunakan layanan mikro, ini tidak mengherankan. Kubernetes adalah alat virtualisasi terpopuler kedua, terhitung 35%, yang menunjukkan bahwa Kubernetes telah mengalami pertumbuhan yang berkelanjutan dalam beberapa tahun terakhir.
Dengan berkembangnya Kubernetes, tidak mengherankan jika Kubernetes akan mendominasi pasar dalam beberapa tahun ke depan. VMWare dan Vagrant adalah dua alat terakhir yang paling banyak digunakan, dengan tingkat penggunaan masing-masing 18% dan 5%. Akhirnya, 14% responden mengatakan mereka tidak menggunakan alat virtualisasi.
ringkasan
Layanan mikro memiliki dampak yang besar pada teknologi yang digunakan oleh pengembang dalam proses pengembangan aplikasi. Dan, seiring perusahaan terus bertransformasi dan membuat aplikasi berbasis layanan mikro, kami berharap pilihan teknologi akan cenderung mendorong kebutuhan arsitektur dan pengembang yang bekerja di dalamnya.
- Susu terdaftar sebagai bahan jaminan utama untuk pencegahan dan pengendalian epidemi, pasokan Mengniu yang memadai membawa kepercayaan pasar
- Apa yang dimaksud dengan konferensi video yang "diaktifkan" untuk para raksasa yang memasuki permainan dan upaya pabrikan?
- Di era Aplikasi, bagaimana cara mengatasi masalah keamanan privasi pribadi dari hampir 900 juta pengguna Internet?
- Karena operasi dan pemeliharaan yang berbahaya, Weimeng tidak aktif selama 36 jam. Bagaimana perusahaan dapat memperkuat kemampuan pencegahan risiko mereka?