El «Java Community Process» es un ente que regula y permite a todos los interesados participar en la definición de las especificaciones y características de las tecnologías JAVA actuales y para las versiones venideras. Estas especificaciones permiten que JAVA sea estándar, es decir, asegura que cada fabricante de software desarrolla su implementación garantizando compatibilidad y portabilidad.

En el año 2016, el JCP creó dos nuevos tipos de membresía muy importantes para las comunidades Java: Afiliados (Associate) y Socios (Partner). Para dar a conocer y entender un poco mejor el por qué estos dos nuevos tipos de membresía son tan importantes, Reza Rahman, ex Oracle y entusiasta de los Java EE Guardians, escribió una entrada en su blog la cual interpretamos para nuestra comunidad de habla hispana (previa autorización del autor). Si deseas ver la entrada original, puedes acceder a este enlace.

El año pasado, el «Java Community Process» (JCP) dio a conocer dos nuevos tipos de membresía muy importantes. Desde Java EE 5 la comunidad ha jugado un papel cada vez más importante en la creación de estándares para Java EE y estos dos nuevos tipos de membresía facilitan que dicha participación continúe creciendo. En esta entrada explicaré ambos tipos y lo que significan en realidad. También explicaré como el grupo de usuarios PhillyJUG y mi persona los hemos usado.

Tipos de membresía existentes
Antes de entrar a revisar los nuevos tipos, creo conveniente explicar primero cuáles eran los existentes. En el pasado, existían dos formas de unirse al JCP: ya fuera como compañía o como individuo. La membresía que originalmente existía en el JCP era la membresía como compañía. Y tan tenebroso como suena, esta era el tipo de membresía más común para la mayoría de estándares (uff). Menos mal también ha sido el tipo de membresía menos común en el JCP por un buen tiempo.

Sin embargo, incluso si querías unirte al JCP como individuo, necesitabas un permiso oficial de la compañía para la cual trabajabas. Esto era una barrera para algunos y personalmente conozco de casos de personas que no se pudieron unir al JCP exactamente por esa razón. Debido a mi condición de consultor independiente esto no fue un obstáculo para mi (simplemente tenía que auto-otorgarme el permiso para unirme :-)). De esta manera he contribuido en los grupos experto de EJB 3.1, Java EE 6, JMS 2, Java EE 7 y EJB 3.2 y me considero como uno de los miembros más activo de éstos.

Ya sea como individuo o como compañía, básicamente eres considerado como un «miembro completo», lo cual significa que puedes hacer casi cualquier cosa en el JCP – incluyendo nominar tu propio requerimiento (JSR), convertirse en líder de especificación de requerimientos, unirse a grupos experto o postularse para un puesto en el comité ejecutivo del JCP, que incluye a organizaciones sin ánimo de lucro reconocidas como lo es Apache.

Membresía: Afiliado
Esta membresía es básicamente la misma «Individuo» que he usado por todo este tiempo, pero con una gran excepción: para unirte como «Afiliado» no requieres permiso de la compañía para la cual trabajas. Esto tiene algunas limitantes que no considero tan importantes: 1. No podrás convertirte en líder de especificación de requerimientos. 2. No podrás postularte para un puesto en el comité ejecutivo del JCP. De hecho, tampoco podrás unirte al grupo experto de los requerimientos. Sin embargo, podrás «contribuir» a cualquier requerimiento.

En la práctica, la diferencia entre «contribuir» y pertenecer al grupo experto de un requerimiento (JSR) es prácticamente nula para muchos. Solo «contribuir» significa que no puedes escribir el texto del requerimiento o escribir código fuente para las pruebas de compatibilidad (TCK) ni código fuente en la implementación de referencia (RI). Eso sí, puedes hacer todo lo demás como: revisar el requerimiento y participar de las discusiones. Lo cierto es que yo soy el contribuyente más activo de la mayoría de requerimientos de JavaEE en los que he participado y básicamente eso es lo que he hecho. Como resultado, he escogido unirme al JCP bajo la membresía «Afiliado» y no como un un «miembro completo» y así, contribuyo a los requerimientos: Servlet 4, Java EE 8 y Java EE Security. De esta manera, puedo hacer lo mismo que he hecho por años y continuo recibiendo el crédito por ello en el documento del requerimiento.

Para ser honestos, era muy fácil para mi obtener permiso de mi compañía para unirme como un «miembro completo». La razón por la cual no lo hice es porque no era necesario y porque quiero animar a otros a hacer exactamente lo mismo. Particularmente, esto es importante para grupos de usuarios Java y el programa Adopta un JSR tal y como lo explico en las siguientes secciones.

Membresía: Socios
Además de unirte como una entidad legalmente constituida, organizaciones sin ánimo de lucro también pueden unirse ahora bajo la membresía «Socios». En otras palabras, básicamente este tipo de membresía está destinada para grupos de usuarios Java (JUGs). Varios de los grupos Java más grandes son en realidad entidades legalmente constituidas y para este tipo de grupos, unirse como «miembros completos» es una opción y está bien. Sin embargo, la mayoría de grupos Java en el mundo no están legalmente constituidos y con este nuevo tipo de membresía ahora pueden unirse al JCP como «Socios». Ser un «Socio» tiene algunas limitaciones como son: No se pueden convertir en líderes de especificación de requerimientos ni tampoco pueden unirse al grupo de expertos ni «contribuir» al requerimiento… Lo que sí pueden hacer, sin embargo, es algo muy importante: Postularse para un puesto en el comité ejecutivo del JCP.

En mi grupo de usuarios, PhillyJUG, no somos una entidad legalmente constituida aún porque simplemente es mucho trabajo y no representa muchos beneficios para nosotros. Por ello, PhillyJUG se ha unido al JCP como «Socio». Aún no nos hemos postulado para el comité ejecutivo del JCP, pero tal vez lo hagamos a futuro.

Adopta un JSR
Es importante entender como todo lo anterior se relaciona con el programa «Adopta un JSR«. Lo primero que se debe entender es que puedes participar del programa aún sin ser miembro del JCP. El problema de esto es que en realidad no puedes obtener reconocimiento por tu aporte en el documento del requerimiento (aunque el líder de la especificación te puede mencionar si lo desea). Tu grupo de usuarios sí que aparecería en la página que lista los grupos que apoyan el programa.

Una forma aún mucho mejor de apoyar el programa es que tu grupo de usuarios se una al JCP como «Socio» y que los miembros de tu grupo que participan del programa lo hagan oficialmente uniéndose como «Afiliados». Todo esto puede hacerse sin involucrar ninguna compañía y es exactamente la forma en la que lo ha hecho PhillyJUG. PhillyJUG ha adoptado Java SE 9, Servlet 4, Java EE 8 y también Java EE Security.

Espero que este informe te anime a unirte al JCP usando alguno de los nuevos tipos de membresía. En los muchos años que he trabajado con el JCP, la parte más extraña ha sido la poca cantidad de personas excepcionales que en realidad participan activamente. Esto realmente requiere cambiar si queremos que Java continúe siendo exitoso. Tú debes ser parte del cambio.

Si tienes alguna pregunta al respecto, no dudes en contactarme y trataré de ayudarte lo más que pueda. Un recurso en el que puedes encontrar más información es la página de membresías del JCP.