Un desarrollador Java experto debe dominar su API, todas las opciones recogidas en el JKD (Java Development Kit), pero también las librerías de terceros disponibles para Java. Para ayudarte a hacerlo, en este post recogemos algunas de las librerías Java open source más útiles para desarrollar software.
Qué vas as ver en esta entrada
¿Qué es Java?
Java es un lenguaje de programación orientado a objetos, de tipado estático, robusto, seguro e interpretado. Su simplicidad, arquitectura neutral y portabilidad (los programas desarrollados en Java funcionan en cualquier ordenador y sistema operativo) le han convertido en uno de los lenguajes más utilizados por los desarrolladores.
¿Por qué usar librerías en Java?
Una librería es código reutilizable que proporciona diversas funcionalidades. Su utilidad reside fundamentalmente en el ahorro de tiempo que aportan a los desarrolladores. Al usar una librería en vez de dedicar su tiempo y esfuerzo en desarrollar ellos mismos la funcionalidad que necesitan, pueden centrarse en las funcionalidades principales de su aplicación.
Además, las librerías están ampliamente testadas, al haber sido utilizadas por otros desarrolladores anteriormente en infinidad de escenarios y casos. Esto hace que ofrezcan mayores garantías: mejor algo probado, que algo nuevo. Asimismo, si cuentan con una comunidad involucrada en su mantenimiento y crecimiento, la librería será estable en el tiempo. En definitiva, utilizar librerías es más rápido, más sencillo y más seguro.
Las librerías estándar de Java, las que ofrece directamente la plataforma, son muy potentes, pero para desarrollar software de forma profesional es interesante también utilizar otras librerías de terceros que ofrecen nuevas funcionalidades o amplían las del JDK. De todas las librerías open source disponibles para desarrollar en Java, hemos seleccionado seis de las más útiles, por el ahorro de tiempo que suponen, su actualización y por disponer de más documentación o recursos en los que poder apoyarte.
Apache Commons
Es un proyecto de Apache que ofrece componentes Java reutilizables, que amplían la librería estándar de Java. Una colección de 43 librerías dedicadas a clases, colecciones, bases de datos, formatos (como CSV), almacenamiento en caché, matemáticas, utilities de Input/ Output y muchos otros aspectos.
Algunas de las librerías de Apache Commons más utilizadas son:
- Commons Lang. Proporciona métodos adicionales para la manipulación de las clases en la API java.lang, para manejo de strings, métodos numéricos básicos, reflexión de objetos, concurrencia, etc.
- Commons Collections, amplía el framework de colecciones de Java con nuevas interfaces, implementaciones y utilities.
- Apache Commons CSV, para la lectura y escritura de archivos en formato CSV.
- Commons Math, librería de componentes matemáticos y estadísticos para abordar los problemas más comunes no disponibles en Java.
- Commons IO, librería de utilities para ayudar en el desarrollo de funcionalidad Input/ Output, facilita la ejecución de operaciones Input/ Output .
Descubre más sobre Apache Commons en este enlace.
Guava
Guava es un conjunto de librerías principales de Java desarrollado por Google. Incluye nuevos tipos de colecciones (MultiMap y MultiSet), colecciones inmutables, una librería para modelar datos estructurados en grafos, así como utilities para concurrencia, I/O, hash, almacenamiento en caché, strings y mucho más. Como Apache Commons, es modular, pero presenta un diseño mejor.
Descubre más sobre Guava aquí.
Log4j2
El logging es fundamental para el desarrollo de un software, especialmente en su etapa de producción. Al registrar todos sus eventos, permite entender su funcionamiento y ayuda a localizar la causa de un error cuando éste se produce. Java cuenta con sus propios recursos de logging, pero existen otras librerías que ofrecen funcionalidades más avanzadas.
Log4j2, junto con Logback, es la librería simple de logging más conocida. Destaca por ofrecer una mejor performance a través del logging asíncrono. Además, su API está separada de la implementación, lo que permite que el equipo de Log4j2 haga mejoras de forma segura y compatible. Proporciona filtros avanzados, basados en datos de contexto, marcadores, expresiones regulares y otros componentes en el Log Event. Utiliza una arquitectura de plugin.
Más información sobre Log4j2 en este enlace.
SLF4J
En lugar de ofrecer una implementación determinada, como Log4j 2 o Logback, SLF4J ofrece una fachada o abstracción para varios frameworks de logging (por ejemplo, los antes mencionados), permitiendo al usuario final conectar el framework de logging que desee en el despliegue. De este modo, aporta una mayor flexibilidad y facilita la tarea de cambiar de una librería de logging a otra si fuera necesario.
Más detalles sobre SLF4J aquí.
Jackson
Jackson es un conjunto de herramientas imprescindible para el procesamiento de datos en Java. Incluye una librería interpretadora / generadora de JSON en tiempo real (JSON es actualmente el formato por excelencia para la transmisión de información entre cliente y servidor). Asimismo, dispone de una librería de Data-Binding, que convierte POJO en JSON y viceversa, y módulos para el procesamiento de datos en formatos como Avro, BSON, CBOR, CSV, Smile, Java Properties, Protobuf, XML o YAML. Además, admite otros tipos de datos ampliamente utilizados, como Guava, Joda y PCollections. Es modular, con un núcleo con funcionalidades básicas y numerosas extensiones.
Más información sobre Jackson en este enlace.
Gson
Es una librería de Java creada por Google que se utiliza para convertir objetos Java en su representación de JSON. También permite convertir un string de JSON en su equivalente objeto Java. Igualmente, transforma objetos invariables preexistentes, de los que no tiene el código fuente. Gson se distingue de otros proyectos open source similares en que no requiere colocar anotaciones Java en tus clases y admite el uso de Java Generics. Su manejo es sencillo.
Conclusiones
En este artículo hemos diseccionado seis de las librerías de Java más usadas, que te serán de gran ayuda para desarrollar software de forma profesional.
¿Trabajas habitualmente con alguna de estas librerías para Java? ¿Cuál te resulta más útil? Compártelo con nosotros a través de las redes sociales.