miércoles, 2 de julio de 2025

¿Es Java tan difícil como lo pintan?

 ¿Es Java tan difícil como lo pintan?


    Uno de los temas más recurrentes al hablar de Java está relacionado con su supuesta dificultad inicial, con su exceso de código para hacer algo sencillo, con su tipado estricto. Quizá por ser mi lenguaje de programación "materno" no tengo esa sensación que repiten tantas personas a lo largo del mundo.

    Sí que es cierto que comparado con otros lenguajes de alto nivel, es uno de los lenguajes menos accesibles para aprender a programar, precisamente porque es muy estricto para declarar los tipos de datos, compilar el código. Comparados con Java, otros lenguajes como JavaScript o Python son mucho más amables a la hora de iniciarse en este mundo.

    Suelen ser frecuentes los reels o shorts mostrando la "complejidad" de hacer un sencillo "Hola Mundo" en diferentes lenguajes, siendo Java uno de los más verbosos. En este sentido, Java y C# se parecen bastante.

    Como dije antes, aún no siendo del todo objetivo por ser el lenguaje en el que me inicié, Java para nada tiene una dificultad abrumadora ni tampoco es para tanto el hecho del tipado estricto. Una vez que lo integras en tu estructura mental te sale natural escribir el código de esa forma. 

    De hecho, me ha pasado precisamente haciendo mis pinitos con JS y Python, por aquello de investigar cómo se programa en esos lenguajes, que al tener Java como referencia y tan arraigado en mi mente, he echado de menos los ; y la declaración expresa del tipo de dato.

    Java es uno de los lenguajes más potentes y seguros del mercado, de hecho gracias principalmente a su framework Spring y su evolución Spring Boot, se usa masivamente en grandes empresas a nivel de backend. 

    Como los demás lenguajes de programación, Java ha ido evolucionando a lo largo de los años, integrando programación funcional (expresiones lambda a partir de Java 8), el uso masivo de anotaciones (@) para evitar escribir grandes cantidades de código (el compilador de Java en segundo plano sí que genera ese código "invisible"). 

    Como vemos en la imagen, usando una expresión lambda simplificamos mucho el código para recorrer una lista y devolver el dato que nos interesa:


    Otro ejemplo de la simplificación del código fuente de Java usando anotaciones con la librería Lombok en Spring:


    Una clase llamada "Product" sólo con sus atributos y con las anotaciones @Builder y @Data. Completamente funcional, no es necesario crear el constructor, getters y setters, toString(), patrón Builder y demás métodos típicos de una clase, ya que a nivel interno, Lombok "inyecta" en tiempo de compilación el código que nosotros escribiríamos a mano de no usar dichas anotaciones. 

    De hecho, Java en sus últimas versiones es un lenguaje mucho más moderno y con funcionalidades equiparables al resto de lenguajes de alto nivel. En ese aspecto, Java "moderno" es similar a Kotlin, aunque sigue preservando su esencia y singularidad. 

    Un nuevo ejemplo de esta evolución de Java son los records. Se integraron en Java 14 y son como una Data Class de Kotlin, ideal para crear objetos finales, que no vayan a variar. Por ejemplo, en backend se usan mucho para crear DTOs, ya que son objetos que se crean con unos atributos inalterables para devolverlos al frontend, por ejemplo. En las siguientes imágenes vemos un record llamado "ProductDto" y cómo se crea: 



    Una vez creado el objeto, como dijimos antes, no se pueden modificar los atributos, sólo consultarlos: 


    Para finalizar esta entrada, tan sólo hacer hincapié en la idea de que Java no es para nada difícil de abordar para aquellas personas que se estén iniciando en la programación. Curiosamente, si empiezas a programar con Java, la curva de aprendizaje de los demás lenguajes de alto nivel será más sencilla, por lo que en muchos aspectos es muy recomendable comenzar a aprender Java en 2025.

No hay comentarios:

Publicar un comentario