Giriş: JRebel, 2020 Java Teknolojisi Raporunu yayınladı. JRebel, Perforce'un JVM eklentilerinden biridir ve Java geliştiricilerinin kodlarını anında güncellemelerine ve bu değişiklikleri uygulama sunucusunu yeniden başlatmadan geliştirilen uygulamaya yansıdığını görmelerine olanak tanır.
JRebel'in anketi, dünya çapındaki geliştiricilerden yaklaşık 400 yanıt aldı. Bu anket raporu, programlama dili, uygulama mimarisi, uygulama sunucusu, çalışma zamanı platformu, çerçeve teknolojisi, çerçeve yapılandırması, IDE, JRE / JDK sürümü, PaaS sağlayıcısı, veritabanı, dağıtım modu dahil olmak üzere geliştirici araç zincirinin tüm bölümlerini kapsar , Araçlar ve sanallaştırma araçları oluşturun.
Ankete katılanların yüzde elli sekizi, ana uygulamalarında programlama dili olarak Java 8'i seçtiklerini belirtti. Java 11 ise yanıt verenlerin% 23'üyle ikinci sırada yer aldı. Katılımcıların% 7'si Java 7 veya daha önceki bir sürümü kullandıklarını ve% 6'sı da Java 12 veya daha yenisini kullandıklarını söyledi. Kotlin ve JavaScript, sırasıyla% 3 ve% 2 ile en düşük kullanım oranlarına sahiptir.
Bizim için Java 8'in baskın programlama dili olduğunu görmek şaşırtıcı değil. Bununla birlikte, şaşırtıcı bir şekilde, ankete katılanların yalnızca% 23'ü Java 11 kullanıyor. Bunun, Java 8'den beri Java'nın etkili güncellemelerinin olmaması ve JVM'yi güncellemenin maliyeti ile ilgili olduğuna inanıyoruz. Hala Java 7 veya önceki bir sürümünü kullanan katılımcılar için, gittikçe daha fazla uygulama Java 14'e veya şu anda mevcut olan sürüme geçmeye devam ettikçe bu sayının azalacağını umuyoruz.
Çeşitli uygulama sunucuları kayboluyor mu? Anket sonuçlarımız, geliştiricilerin Tomcat'i en yakın rakibinden neredeyse beş kat daha hızlı kullandığını gösteriyor. Ankete katılanların% 61'i Tomcat'i ana uygulamalarında kullandıklarını belirtti ve Tomcat'in baskın uygulama sunucusu olduğu açık. İkinci sınıf uygulama sunucusu Jetty olup% 13'dür; WebLogic ve WebSphere'in kullanım oranları ise sırasıyla% 7 ve% 6'dır. En altta, JBoss / Wildfly% 5 kullanım oranına sahiptir.
Açıkçası, Tomcat böylesine büyük bir pazar payı kazanmak için doğru önlemleri alıyor. Benim için nedeninin en azından bir kısmı, Tomcat'in çok yönlülüğü ve Spring Boot, Docker, Hybris ve AWS gibi diğer büyük Java platformlarıyla uyumluluğudur. Curtis Johnson, JRebel Ürün Müdürü
Diğer bir önemli özellik de maliyetidir: ücretsizdir. Yönetimin bunu reddetmesi zor. Geçmişte, uygulama sunucuları için destek eksikliği, insanların Websphere, Weblogic ve JBoss gibi uygulama sunucularını kullanmaya alışmalarının temel nedenlerinden biriydi. Görünüşe göre Java mimarisi şirketleri, uygulama sunucularını desteklemenin en iyi yolunun sadece uygulama sunucularında değil, mimarisinde olduğuna karar vermiş görünüyor.
Çalışma zamanı platformları için en popüler seçenek,% 83'ü oluşturan Spring Boot'tur. Elbette, Spring Boot uzun yıllardır Java'nın tercih edilen frameworkü olmuştur. Bu, en azından kısmen, son yıllarda Java uygulamalarında mikro hizmetlerin artan benimsenmesinden kaynaklanmaktadır. Tüm katılımcılar arasında, Spring% 2 ile ikinci en popüler seçenek oldu ve çalışma zamanı platformunu kullanmayanlar da% 2'lik bir paya sahipti, bu da onu berabere kılıyor. Dropwizard, Micronaut, Vert.x veya özel platformları kullanan katılımcıların her biri% 1'lik bir paya sahip.
Bu soru, katılımcılardan ana projelerinde kullanılan uygulama çerçevesini ve teknolojiyi seçmelerini istedi. Çoğu uygulama çeşitli farklı çerçeve teknolojileri kullandığından, bu soru birden çok yanıta izin verir.
Katılımcıların% 86'sı Spring'i kullandıklarını söyledi. Ankete katılanların% 51'i Hibernate, OpenJPA veya EclipseLink gibi kalıcı teknolojileri kullandıklarını söyledi. Katılımcıların% 27'si JSP, JSF, Thymeleaf, FreeMarker veya GWT gibi sunucu tarafı oluşturma teknolojilerini kullandıklarını söyledi. Katılımcıların% 26'sı Jersey, RESTEasy, CXF veya Axis gibi JAX-RS veya JAX-WS teknolojilerini kullandıklarını söyledi. Duyarlı çerçeveler için, yanıt verenlerin% 11'i Vert.x, Akka, RxJava veya Project Reactor gibi teknolojileri kullandıklarını söyledi. Son olarak, ankete katılanların% 7'si ana projelerinde JavaBeans kullandıklarını söyledi.
Çerçeve yapılandırması için, yanıtlayanların çoğunun sınıflarda, yöntemlerde ve alanlarda @Annotation kullandığını veya harici xml, yaml veya benzer dosyalar kullandığını gördük. Kullanıcıların% 68'i @Annotation'ı kullandıklarını ve% 67'si harici xmlL, yaml veya benzeri dosyalar kullandıklarını söyledi. Yanıt verenlerin% 18'i, yapılandırma için başlatma sırasında çalıştırılan bir yönteme eklenen kodu kullandı.
Bu soruda, geliştiricilerden profesyonel olarak kullandıkları Entegre Geliştirme Ortamını (IDE) listelemelerini istiyoruz. Geliştiriciler sadece birkaç yıl önce IDE'lere para harcamaya değip değmeyeceğini sorguladılar.
Bununla birlikte, yanıt verenlerin% 82'si IntelliJ IDEA kullandıklarını söyledi ve bu ücretli IDE'nin denemeye değer olduğu açık. En sık kullanılan ikinci IDE,% 24 ile Eclipse ve% 10 ile VSCode'dur. Son olarak, yanıt verenlerin% 4'ü NetBeans'i bir profesyonel olarak kullandıklarını söyledi. Yıllar geçtikçe, NetBeans tüm ilgisini kaybetti ve VSCode bile bu ankette onu aştı.
Bu anket sorusunda, katılımcılardan kullandıkları JRE / JDK sürüm sürümünü seçmelerini istedik. Dahası, bu anketin daha da şaşırtıcı bir sonucu, ankete katılanların yaklaşık% 50'sinin ücretli Oracle JDK kullandığını bulmamızdır. Bu,% 36'yı oluşturan Oracle OpenJDK kullanan katılımcılardan% 13 daha yüksek.
Bunun iki nedene bağlı olabileceğini düşünüyoruz: 1. Anketimizde çok sayıda Java 8 geliştiricisi var. Java 8 kullanan geliştirici sayısının projenin uzun süredir güncellenmediğini gösterdiğine inanıyoruz, bu da uygulamanın Oracle sürümünde kalmasının nedeni olabilir. 2. Oracle JDK tarafından sağlanan destek, düşündüğümüzden daha önemli olabilir.
Ankete katılanlar arasında bu kadar çok kişinin Oracle JDK için ödeme yaptığını görmek gerçekten şaşırtıcı. Açık kaynak seçeneklerinin daha büyük bir pazar payına sahip olmasını bekliyorum. Curtis Johnson, JRebel Ürün Müdürü
Oracle OpenJDK ve Oracle JDK'ya ek olarak, ankete katılanların% 10'u AdoptOpenJDK kullandıklarını ve% 2'si de Azul Zulu kullandığını söyledi.
Bu soruda, katılımcılardan tercih ettikleri PaaS sağlayıcısını bildirmelerini istedik. PaaS sağlayıcılarını kullanan katılımcıların% 60'ı AWS'yi,% 14'ü Microsoft Azure'u ve% 12'si Google Cloud Platform'u seçti. Daha az seçeneğe sahip satıcılar arasında% 4'ü oluşturan Pivotal Cloud Foundry ve her bir hesap için% 2'lik SAP Cloud Platform ve IBM Cloud bulunur.
Bu soruda, katılımcılardan şu anda kullandıkları veritabanını seçmelerini istedik. En popüler olanı% 47 ile PostgreSQL ve onu% 42 ile Oracle DB izliyor. Sırada, yanıtlayanların% 28'inin kullanımı bildirdiği MySQL var. MongoDB, yanıt verenlerin% 12'sini oluşturarak dördüncü sırada yer aldı. En az kullanılan veritabanları sırasıyla% 7,% 6 ve% 4 kullanım oranlarıyla SQL, NoSQL ve Cassandra'dır.
Bu soruda, katılımcılardan hangi dağıtım modelini kullandıklarını bildirmelerini istedik. En popüler dağıtım modeli (% 46), uygulamayı JAR olarak çalıştırmaktır. Ankete katılanların% 44'ü uygulama sunucularına dağıttığını,% 5'i uygulamalarını dağıtmak için Hybris veya Liferay gibi platformları kullandıklarını bildirdi.
Derleme araçları için, geliştiricilerden ana uygulamada kullandıkları araçları seçmelerini isteriz. Beklendiği gibi, Maven ve Gradle en yaygın kullanılan araçlardır. Bununla birlikte, belki de mobil geliştirme alanında çalışan katılımcıların sayısını yansıtan Gradle, ikisi arasında daha popüler. Bunun Maven ve Gradle'ın benimsenmesi gerçeğini yansıtmadığını düşünüyoruz, ancak her halükarda bu ilginç bir fenomendir. Anketimiz, katılımcıların% 47'sinin Gradle'ı ana uygulama geliştirme aracı olarak kullandığını, katılımcıların% 44'ü ise Maven'i kullandıklarını ortaya koydu. Karınca'nın kullanım oranı, her ikisi de% 7 ile bu iki rakamdan daha düşük.
Bu soruda geliştiricilere hangi sanallaştırma araçlarını kullandıklarını sorduk. Şimdiye kadar en yaygın kullanılan araç,% 74'ünü oluşturan Docker'dır. Mikro hizmetleri kullanan Java geliştiricilerinin yüzdesi göz önüne alındığında bu şaşırtıcı değildir. Kubernetes,% 35'lik bir paya sahip ikinci en popüler sanallaştırma aracıdır ve bu, Kubernetes'in son birkaç yılda sürekli büyüme kaydettiğini göstermektedir.
Kubernetes'in gelişmesiyle birlikte önümüzdeki birkaç yıl içinde piyasaya hakim olması şaşırtıcı değil. VMWare ve Vagrant, sırasıyla% 18 ve% 5 kullanım oranları ile en çok kullanılan son iki araçtır. Son olarak, ankete katılanların% 14'ü sanallaştırma araçlarını kullanmadıklarını söyledi.
Mikro hizmetler, geliştiriciler tarafından uygulama geliştirme sürecinde kullanılan teknoloji üzerinde derin bir etkiye sahiptir. Şirket, mikro hizmet tabanlı uygulamaları dönüştürmeye ve oluşturmaya devam ederken, teknoloji seçimlerinin mimarinin ve içinde çalışan geliştiricilerin ihtiyaçlarını destekleme eğiliminde olmasını bekliyoruz.