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 Google
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

Referencias

  1. 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.
  2. O'Brien, Tim (14 de mayo de 2012). «Google Guava Shows Strong Growth in April». Sonatype. Consultado el 3 de febrero de 2013.
  3. 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.
  4. Bourrillion, Kevin (14 de octubre de 2011). «The story with #guava and your patches» (en inglés). Consultado el 2 de noviembre de 2015.
  5. «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.

Enlaces externos

Este artículo ha sido escrito por Wikipedia. El texto está disponible bajo la licencia Creative Commons - Atribución - CompartirIgual. Pueden aplicarse cláusulas adicionales a los archivos multimedia.