Google Guava
# Google Guava

Google Guava es un conjunto de bibliotecas comunes de código abierto para Java, desarrollado principalmente por ingenieros de Google.

## 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. 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. 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.

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.

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

## Controversia

Si bien Guava es un proyecto de código abierto, no se alienta que terceros externos a Google contribuyan a su desarrollo. 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

