JavaRush /Blog Java /Random-ES /Pausa para el café #68. Una opinión honesta sobre Java y ...

Pausa para el café #68. Una opinión honesta sobre Java y su ecosistema. Tres nuevas herramientas Java a considerar en 2021

Publicado en el grupo Random-ES

Una opinión honesta sobre Java y su ecosistema.

Fuente: Dev.to Vale, admito que mi idioma principal es C#. Pero esta es mi opinión imparcial sobre Java y el ecosistema que lo rodea. Utilicé el comando bash en Java con bastante frecuencia y vi todas sus deficiencias. Por ejemplo, Java no tiene propiedades, de forma nativa no tiene eventos, ni estructuras, ni sobrecarga de operadores, y hasta Java 10 no había inferencia, por lo que no hay 'var'. ¡Todo lo que hay en C#! Además, usé bash para Java debido a la falta de LINQ, var y enumeraciones. Y sin embargo escribo bastante en Java, sobre todo cuando creo aplicaciones para Android, pero también para otras cosas. ¡Mi primer proyecto también fue en Java! Entonces, el viernes por la tarde, debido a la urgencia, tuve que escribir en Java durante varias horas seguidas. ¿Y adivina qué descubrí? ¡ARROYO! Pausa para el café #68.  Una opinión honesta sobre Java y su ecosistema.  Tres nuevas herramientas Java a considerar en 2021 - 1¡Aparentemente Java 8 introdujo hilos! ¡Y no tenía idea de eso! Para aquellos que no lo saben, Streams es una implementación Java de LINQ. También descubrí que Java 10 tiene inferencia de tipos, por lo que Java ahora tiene una función var. No puedo creer lo desactualizados que están mis conocimientos, pero honestamente, había una razón para ello. ¡Estas dos cosas marcaron una gran diferencia en mi forma de pensar! ¿Sabías que Java siempre busca excepciones, pero C# no? ¡Admito que realmente extraño esta característica en C#! Sí, no hay estructuras, propiedades, etc., pero joder, ¡es elegante! Creo que Java por diseño obliga al desarrollador a escribir aplicaciones más sólidas. Mientras que en el mundo .NET, esto se deja en gran medida a discreción del programador. A algunos desarrolladores les gustan estas restricciones, mientras que otros prefieren la libertad. Si bien ambos lenguajes son bastante seguros, Java obviamente tiene una ligera ventaja. Entonces, ¿por qué las grandes empresas prefieren Java? ¡Creo que ya sé la respuesta! Lo que más me frustra es que... en la mayoría de los ejemplos de código que ves en Internet, estas funciones avanzadas no siempre se utilizan... Creo que si un nuevo desarrollador de Java ve 'var' escrito en todo el código base ¡Se volverá loco! ¿Qué pasa con las transmisiones? ¿Qué son las corrientes? ¡A los desarrolladores de Java les encanta el bucle For! De hecho, incluso los bucles foreach son bastante raros en el mundo Java (y quizás haya una razón para esto: el bucle For está mucho más optimizado). ¡Pero estas no son malas características! ¡Iré más allá y diré que estas funciones son increíbles! ¡Realmente me duele cuando escribo aplicaciones de Android y noto que casi en ninguna parte de la API de Android se utilizan enumeraciones! Y esto es justo porque Android fue escrito hace muchos años. Lo que más me irrita es que tengo que usar constantes cada vez que necesito usar la función Actividad para resultados en Android, así: int PICK_IMAGE_FROM_GALLERY = 3000 Hermano, ¡esto es una locura! Y, sin embargo, personas de todo el mundo han llegado a aceptarlo. E incluso yo. ¡Java también carece de implementación de eventos nativa! Si tan solo tuviera eventos y delegados como C#... (¡Hola, creadores del lenguaje Java, si están leyendo esto, necesitan agregar eventos! Y si ya los tienen o están en proceso, háganmelo saber). ). Ahora te diré cuál podría ser el mayor defecto del ecosistema Java. ¡¡¡DOCUMENTACIÓN!!! La documentación desordenada e inútil en el sitio web de Oracle parece estúpida y desactualizada, al nivel de 2007. Ni siquiera siempre tiene ejemplos de código. Si comienza a buscar una característica o método API relativamente inusual, encontrará una definición aburrida, una declaración, argumentos, a qué paquete pertenece, y eso es todo. Creo que esto es absurdo. ¿No crees que esto es absurdo? ¿No hay fragmentos de código? Por lo tanto, los desarrolladores tenemos que confiar en gran medida en foros como StackOverflow u otros sitios web de programación como TutorialsPoint... A veces son realmente útiles con buenos ejemplos de código que muestran esta característica, pero otras veces no son tan útiles. Recomiendo comparar la documentación de Microsoft en C# con la documentación de Oracle en Java... ¡Cielo y tierra! ¿No me crees? Vaya y compruebe: Oracle y Microsoft. ¡La documentación en el sitio de Microsoft se ve hermosa! ¡Incluso tienen un modo oscuro! Los desarrolladores estamos locos por el modo oscuro. ¿Qué pasa con la documentación de Oracle? Como dije, permaneció en 2007. ¿Quizás no existía el modo oscuro en aquel entonces? Entonces, ¡quiero decir que Java es increíble! Pero este lenguaje sufre mucho debido a la documentación obsoleta. En su mayoría, se trata de documentos y manuales antiguos que no destacan nuevas características muy necesarias, como subprocesos, vars y enumeraciones. Hoy en día la gente dice que Java está empezando a quedar obsoleto y será reemplazado por Kotlin, pero no estoy de acuerdo. Porque incluso si esto fuera cierto, no la reemplazará en mucho tiempo. Esto llevará muchos, muchos años. ¿Recuerdas que Scala también intentó reemplazarlo? Entonces, ¿qué resultó de esto? Java todavía gobierna todo el ecosistema JVM. Aunque admito que Scala es muy diferente de Java, principalmente en funcionalidad. Ahora, por fin... una cosa más que me da más emoción que cualquier otra cosa en el mundo Java. Esto es obtener el JDK. ¿Por qué es tan difícil descargar el JDK? Lo que quiero decir es que si necesito un JDK, una simple búsqueda en Google me llevará al sitio web de Oracle, voy allí y encuentro la versión de JDK que necesito. Hasta ahora todo es relativamente fácil, pero luego para poder descargarlo necesito registrarme. ¿Por qué debería crear una cuenta en Oracle y luego ocuparme de su correo electrónico todas las semanas en lugar de simplemente descargar el JDK? ¡Tenga en cuenta que Java es de código abierto desde el primer día! A diferencia de C#, que recientemente se convirtió en código abierto, en 2015. Entonces ya estoy frustrado y voy al segundo sitio web en los resultados de búsqueda de Google. Me dirige al sitio OpenJDK. Encuentro el JDK allí y hago clic en "descargar". Pero (¡sorpresa, sorpresa!) ¡proporcionan enlaces a implementaciones de JDK de otros sitios! Entre los sitios está este maldito Oracle, pero también hay un enlace al sitio de Red Hat. Sí, Red Hat es genial, es una de las empresas pioneras de código abierto en el mundo. Bueno, ¡voy a su sitio web! ¡Lo descargaré desde allí! Hago clic en este enlace, encuentro la versión JDK que estoy buscando y ¿adivinen qué? Tengo que registrarme allí también... (pausa dramática) Esto es simplemente triste... ¡A la mierda! ¿Qué les pasa a esta gente? Finalmente, me rindo e instalo Chocolatey (es como apt-get, pero para Windows. Creo que es el primer administrador de paquetes ampliamente distribuido y utilizado para Windows). Entonces, después de todo esto, necesito escribir un comando simple en PowerShell como: choco install jdk-1.8. ¡Y lo hago! (Si es desarrollador de C#, sabe lo fácil que es obtener .Net SDK con sólo 2 o 3 clics, sin registrarse ni nada por el estilo). Para concluir mi larga perorata: Java es un gran lenguaje de programación. Es hermoso, confiable y tiene (en mi opinión) el mejor IDE del mundo: el conocido IntelliJ IDEA de JetBrains. Además, Java tiene una comunidad muy útil y un ecosistema grande y diverso. Y digo esto: un desarrollador de C#... Pero necesitamos actualizar la documentación. Ejemplos de código. API. Necesitamos facilitar la obtención del JDK. En general, Java se está moviendo en la dirección correcta, su popularidad puede haber sufrido un poco recientemente, pero eso no hará que Java desaparezca. ¡Desde hace muchos años ocupa el primer lugar en la lista de los mejores idiomas del mundo! Utilizo Java todo el tiempo y seguiré haciéndolo en el futuro.

Tres nuevas herramientas Java a considerar en 2021

Fuente: OpenSource A pesar de la popularidad de Python, Go y Node.js, que se han utilizado activamente en los últimos años para implementar proyectos relacionados con inteligencia artificial, aprendizaje automático y Kubernetes, las tecnologías Java todavía desempeñan un papel clave en el desarrollo de aplicaciones empresariales. Según Developer Economics, había 8 millones de desarrolladores empresariales de Java en todo el mundo en el tercer trimestre de 2020. Pausa para el café #68.  Una opinión honesta sobre Java y su ecosistema.  Tres nuevas herramientas Java a considerar en 2021 - 2El lenguaje de programación Java existe desde hace más de 25 años y se actualiza constantemente. Están surgiendo nuevas herramientas y marcos que pueden potenciar sus aplicaciones y su carrera. La gran mayoría de las plataformas Java fueron creadas para implementar procesos de larga duración con comportamiento dinámico, diseñados para ejecutarse en un servidor o máquinas virtuales. Esto cambió en 2014 con la llegada de los contenedores de Kubernetes. Ahora, los mayores desafíos al ejecutar Java en Kubernetes son: optimizar el rendimiento de las aplicaciones reduciendo el uso de memoria, acelerando los tiempos de inicio y respuesta y reduciendo el tamaño de los archivos.

Tres nuevos marcos y herramientas de Java

Los desarrolladores de Java siempre buscan las formas más sencillas de integrar herramientas populares y proyectos de código abierto en sus aplicaciones Java. Las nuevas herramientas de alto rendimiento aumentan significativamente la productividad del desarrollo y alientan a más empresas y desarrolladores individuales a utilizar la pila Java. Hoy hablaremos de tres nuevos marcos y herramientas de Java:

cuarcus

Quarkus está diseñado para desarrollar microservicios en la nube y aplicaciones sin servidor. Tiene tiempos de arranque rápidos, un tamaño de conjunto residente de memoria (RSS) pequeño y una alta densidad de memoria en plataformas de orquestación de contenedores como Kubernetes. Según el noveno informe anual de JRebel, el uso de Quarkus entre los desarrolladores de Java creció un 6% (menos del 1% el año anterior). Micronaut y Vert.x crecieron hasta un 4% y un 2% respectivamente (el año pasado, aproximadamente un 1%).

eclipse jkube

Con Eclipse JKube, los desarrolladores de Java crean imágenes de contenedores basadas en aplicaciones Java basadas en la nube utilizando estrategias de compilación Docker, Jib o Source-To-Image. La herramienta también genera manifiestos de Kubernetes y OpenShift en tiempo de compilación y mejora la experiencia con herramientas de depuración, monitoreo y registro.

Microperfil

MicroProfile resuelve los problemas asociados con la optimización de la arquitectura empresarial de los microservicios Java sin introducir nuevos marcos ni refactorizar aplicaciones completas. Además, las especificaciones de MicroProfile (por ejemplo, Salud, Open Tracing, Open API, Fault Tolerance, Metrics, Config) continúan evolucionando en línea con la implementación de Jakarta EE.

Conclusión

Es difícil decir qué marcos o herramientas de Java son mejores para los desarrolladores empresariales de Java. Mientras existan oportunidades para mejorar la pila de Java y acelerar el crecimiento empresarial, podemos esperar que surjan nuevos marcos, herramientas y plataformas. Échales un vistazo para ver si pueden mejorar tus aplicaciones Java en 2021.
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION