Google Guava
Google Guava es un conjunto de bibliotecas comunes de código abierto para Java, desarrollado principalmente por ingenieros de Google.
Google Guava | ||
---|---|---|
Información general | ||
Tipo de programa | Bibliotecas de utilidades y colecciones | |
Autor | Kevin Bourrillion y Jared Levy (Google Collections Library)[1] | |
Desarrollador | ||
Licencia | Apache License 2.0 | |
Estado actual | Activo | |
Información técnica | ||
Programado en | Java | |
Versiones | ||
Última versión estable | 31.1 ([github.com/google/guava/releases/tag/v31.1 info]) ( 28 de febrero de 2022 (1 año, 5 meses y 27 días)) | |
Enlaces | ||
Vista general
Google Guava puede ser dividido en tres componentes: utilidades básicas para reducir labores menores para implementar métodos y comportamientos comunes, una extensión a Java collections framework (JCF) anteriormente llamada Google Collections Library, y otras utilidades que proporcionan características convenientes y productivas tales como programación funcional, almacenamiento en caché, objetos de rango y hashing.
La creación y la arquitectura del componente de colección fueron motivadas en parte por los genéricos introducidos en el JDK 1.5.[1] A pesar de que los genéricos mejoran la productividad de los programadores, el estándar JCF no proporciona suficiente funcionalidad, y su complemento Apache Commons Collections no ha adoptado los genéricos con el fin de mantener la retrocompatibilidad.[1] Este hecho llevó a dos ingenieros, Kevin Bourrillion y Jared Levy, a desarrollar una extensión de JCF, que proporciona clases genéricas adicionales, tales como multisets, multimaps, bimaps y colecciones inmutables.[1]
El diseño y código de la biblioteca fueron revisados por Joshua Bloch, el diseñador jefe original del Java Collections framework, y Doug Lea, uno de los diseñadores principales de las utilidades de concurrencia del JDK.[1]
A fecha de abril de 2012, Guava ocupa el 12º puesto de las bibliotecas Java más populares, tras los proyectos de Apache Commons y algunos otros.[2] Una investigación realizada en 2013 en 10.000 proyectos de GitHub descubrió que bibliotecas hechas por Google, como Google Web Toolkit y Guava, consisten en 7 de las 100 bibliotecas más populares de Java, y que Guava es la octava más popular biblioteca de Java.[3]
Controversia
Si bien Guava es un proyecto de código abierto, no se alienta que terceros externos a Google contribuyan a su desarrollo.[4] Kevin Bourrillion escribió en una entrada en Google+ explicando que aunque Guava es de código abierto es también una colección de API a la que se hace referencia en toda la base de código interno de Google. Bourrillion escribió: "No creo que muchos de ustedes entiendan:. El trabajo hecho para producir un parche en realidad es minúsculo en comparación con la cantidad total de trabajo que tenemos que hacer para aplicar ese parche en Guava" Este post y la reacción a esta entrada provocó un debate sobre la naturaleza pública o privada de proyectos como Google Guava y un amplio debate sobre lo que constituye un proyecto de código abierto[5]
Véase también
- Apache Commons, otro conjunto de bibliotecas comunes para Java.
- Google Guice, un framework Java para inyección de dependencias, desarrollado por Google.
Referencias
- Wielenga, Geertjan (23 de octubre de 2007). «What is the Google Collections Library?». Javalobby. Archivado desde el original el 19 de noviembre de 2015. Consultado el 3 de febrero de 2013.
- O'Brien, Tim (14 de mayo de 2012). «Google Guava Shows Strong Growth in April». Sonatype. Consultado el 3 de febrero de 2013.
- Weiss, Tal (20 de noviembre de 2013). «We Analyzed 30,000 GitHub Projects – Here Are The Top 100 Libraries in Java, JS and Ruby». Archivado desde el original el 9 de julio de 2014. Consultado el 4 de febrero de 2014.
- Bourrillion, Kevin (14 de octubre de 2011). «The story with #guava and your patches» (en inglés). Consultado el 2 de noviembre de 2015.
- «Discusión en Hackernews sobre el artículo de Bourrillion» (en inglés). 15 de octubre de 2011. Consultado el 1 de noviembre de 2015.