Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

?id=d6f7b8a8-60a5-46ae-90ac-83b5610be203

El estado del ecosistema Java en 2018

Snyk es una conocida empresa que ofrece un servicio de seguridad muy interesante: verifica todas las dependencias de tu proyecto y te dice cuáles pueden estar dándote problemas de seguridad porque tienen alguna vulnerabilidad conocida. Con la cantidad de dependencias que tienen las aplicaciones hoy en día es un servicio muy interesante, que además es gratuito para proyectos Open Source que tengas en Github.

Recientemente han liberado los resultados de una encuesta a gran escala realizada junto a Java Magazine, de Oracle, que entrevistó a más de 10.000 desarrolladores de Java de todo el mundo para ver qué uso están haciendo de la plataforma para preguntarles acerca del lenguaje y el JDK, las herramientas que usan, los procedimientos de trabajo y algunas otras cosas. El perfil de los usuarios es bastante alto puesto que son suscriptores a la revista, miembros activos de grupos de usuarios, etc., por lo que la información es de bastante interés.

Puedes leer el estudio completo aquí, pero vamos a comentar lo que nos ha parecido más interesante.

Uso de la plataforma Java, el JDK y los lenguajes

El 70% de los desarrolladores de Java utilizan el JDK de Oracle, mientras que el 21% utilizan OpenJDK para desarrollar. Estos números van a variar mucho en los próximos meses con toda probabilidad, a tenor las recientes noticias de cambio de licenciamiento del JDK de Oracle.

El resto de opciones como Eclipse OpenJ9/IBM J9 o Azul tienen una cuota muy pequeña de menos del 9% entre todas.

Gráfico de sectores con el reparto de usos de los diferentes JDK

El 79% de los desarrolladores todavía usan Java 8, e incluso un 9% utilizan todavía Java 7. Así que las cosas se mueven despacio. Java 9 y 10 se quedan en el 4% cada uno, y por supuesto el reciente Java 11 ni aparece en la adopción porque es pronto y porque la encuesta se hizo un poco antes de lanzarla. Y es que el mundo Java se mueve despacio y prima la estabilidad frente a las novedades:

Gráfico de barras con las diferentes versiones de Java utilizadas

De hecho, según la encuesta, solo el 8% de los desarrolladores tiene pensado actualizar la versión de Java que están utilizando a una más moderna, especialmente la 11 con el cambio de licencias.

El 40% de los encuestados indicaron que NO usan la versión empresarial de Java, Java EE, y de aquellos que sí lo hacen, casi el 30% están aún en Java EE 7:

Gráfico de barras con el uso de las versiones de Java EE

Una cuestión muy curiosa es ver que, a pesar de existir lenguajes alternativos muy interesantes basados en la plataforma Java, y que además están muy de moda, como por ejemplo Kotlin o Clojure, el 90% utilizan Java "puro", siendo los demás muy residuales: Clojure (3%), Kotlin (2,42%), Groovy (2,36%), Scala (1,83%) y otros (0,6%):

Popularidad de lenguajes de la plataforma Java

El exiguo 3% de Clojure, de todos modos, denota un alto interés por los lenguajes funcionales.

Aparte de los lenguajes puramente de la plataforma Java, es raro que no haya que usar otros lenguajes dentro de los proyectos, sobre todo si son proyectos Web. Así, dentro de los lenguajes más utilizados ajenos al ecosistema Java tenemos: JavaScript (57%), SQL (56%), Node.js (23%) o Python (21%). Dentro de desarrollo web el framework más popular es Spring Boot (40%), seguido muy de cerca por Spring MVC (36%), quedando los clásicos Struts o GWT hundidos en el 9% y el 6% respectivamente.

En cuanto a los ORM para acceso a datos, el más popular como era de esperar sigue siendo Hibernate, con un 54% (nos esperábamos incluso más), y mucha gente usa JDBC puro y duro para su acceso a datos (sencillez al máximo).

Herramientas para Java

En cuanto a las herramientas elegidas para desarrollar un gran porcentaje de los desarrolladores Java encuestados utilizan el entorno integrado de desarrollo IntelliJ IDEA de Jetbrains, alcanzando el 45%. De éstos, resulta curioso observar (por el entorno "alérgico" a pagar en el que nos movemos) que el 32% utiliza la edición de pago de este entorno, y solamente un 11% la edición "Community" gratuita. El siguiente más utilizado es Eclipse seguido ya de lejos del excelente Apache Netbeans:

Cuotas de los entornos de desarrollo más utilizados

En cuanto a las herramientas de build, la más utilizada por abrumadora mayoría es Apache Maven con un 60%, seguida muy de lejos por Gradle y Apache Ant:

Gráfico de barras con las herramientas de build

En lo referente a las herramientas de calidad y análisis estático de código, SonarQube se lleva la palma con el 39% de cuota, seguida por Findbugs (27%), Checkstyle (23%) y PDM (15%). En lo que se refiere a test unitarios, JUnit es utilizado por el 78% consiguiendo una posición casi de monopolio, aunque hay otras herramientas que se usan en paralelo por parte de muchos, como Mockito (48%) para crear mocks o Selenium (29%) para automatización del navegador.

Respecto a la integración continua, el 21% no utiliza ninguna, pero hay una amplia mayoría del 57% que utilizan Jenkins, sin que ninguna de las herramientas alternativas para este proceso consiga más de un exiguo 5% de cuota.

Infraestructura de aplicaciones

El 43% de los desarrolladores Java encuestados NO utilizan la nube para desplegar sus aplicaciones, pero de los que lo hacen, el 63% utilizan Amazon AWS, el 20% Google Cloud y el 18% Azure (tradicionalmente más utilizado por desarrolladores .NET).

De los que usan la nube el 43% ya están utilizando contenedores para hacer sus despliegues, mientras que el 33% utilizan máquinas virtuales. Serverless (9%) y opciones de aplicaciones como servicio (PaaS, 10%) están muy lejos de la sencillez de despliegue de los anteriores.

Dado que Java es un producto de Oracle y muy relacionado siempre con esta plataforma, el 27% de los encuestados utilizan la base de datos Oracle, mientras que el 50% usan otras opciones (MySQL (21%), PostgreSQL (20%) y SQL Server con solo un 9%).

Otro dato curioso que nos ha llamado mucho la atención es que hay un 36% de desarrolladores inconscientes que no usan el mismo servidor de aplicaciones en desarrollo y en producción (y ya se sabe que eso de "Write Once, Run Everywhere" es solo un dogma de fe, pero luego hay grandes diferencias entre unos y otros servidores de aplicaciones). Entre los servidores de aplicaciones, el que reina sigue siendo desde hace años Tomcat (41%) seguido de lejos por JBoss (15%) o Jetty (9%)

Otros datos

Estos son los rangos de edad de los programadores de Java encuestados:

Edades de programadores de Java

La mayoría está entre 30 y 45 años pero los mayores de 50 son un número considerable (25%) y en general hay muchos años de experiencia en la muestra:

Experiencia de la muestra

En resumen: un interesante informe para conocer el pulso de la comunidad Java en todo el mundo que deberías tener cuenta para elegir qué herramientas aprender y utilizar, entre otras cosas.

campusMVP campusMVP es la mejor forma de aprender a programar online y en español. En nuestros cursos solamente encontrarás contenidos propios de alta calidad (teoría+vídeos+prácticas) creados y tutelados por los principales expertos del sector. Nosotros vamos mucho más allá de una simple colección de vídeos colgados en Internet porque nuestro principal objetivo es que tú aprendas. Ver todos los posts de campusMVP
Archivado en: Lenguajes y plataformas

No te pierdas nada, recibe lo mejor en tu email

Si te ha gustado este art­ículo, únete a miles de desarrolladores que ya reciben cada mes nuestro boletí­n por email. No te pierdas los mejores trucos, noticias y frikadas.

Enviamos poco, pero bueno. Palabra de desarrollador.

Suscríbete aquí­

Sí­guenos también en:

Telegram LinkedIn YouTube
La mejor formación online para desarrolladores como tú

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.