DESARROLLADOR

Por qué un proyecto de código abierto «cerrado» podría ser justo lo que necesita la comunidad

Los proyectos de código abierto como Go han sido criticados por estar cerrados a colaboradores externos, pero esto puede tener menos que ver con Google y más con las mejores prácticas.

opensourceistock 479493570boygovideo
Imagen: boygovideo, Getty Images/iStockphoto

Usamos tanto la palabra «comunidad» en código abierto que corremos el riesgo de creer todo tipo de cosas raras sobre cómo funciona el código abierto. Por ejemplo, el código abierto es pura meritocracia, o igualmente equivocado, es una democracia.Ambos errores entran La crítica de Chris Siebenmann al lenguaje GoComo escribió, «Go es el idioma de Google, no el idioma de la comunidad».

Esto no significa que otras personas no puedan contribuir a Go, pueden hacerlo, pero es una relación de contribución unidireccional. Como continuó, «Google es el guardián de estas contribuciones de la comunidad; solo él determina lo que Go acepta y no acepta».

La pregunta es si esto importa.

Mirar: Cómo construir una carrera de desarrollador exitosa (PDF gratuito) (República tecnológica)

abierto como abierto

El cofundador del chef y ex director de tecnología, Adam Jacob, ciertamente lo cree así. A pesar de tener cuidado de no hacer juicios éticos, Jacob enfatizó en una serie de tuits que, si bien es de código abierto, Go de ninguna manera está abierto en términos de participación de la comunidad:

Cualquiera que quiera ganar la influencia de los miembros principales no puede conseguirla. Como resultado, si bien la decisión puede ser buena, no es un recurso de la comunidad. Este es el equipo central de Go, el más caritativo. Al menos la de Google. Pero como no existe ningún mecanismo que permita la participación de otros,[y] Cerrar Igualdad de Oportunidades.

Es genial que el lenguaje en sí sea de código abierto: la comunidad siempre puede bifurcarse si su liderazgo se vuelve desagradable. Pero ese es exactamente el punto: todo el poder de una marca, en Google, es completamente inaccesible para toda la comunidad. No hay nada de malo en eso, pero significa que el equipo central de Go es un grupo injusto: los que están en el poder lo conservan. Los que no la tienen obtendrán su generosidad. Sin la insignia de Google, cualquiera que quisiera trabajar en la institución no tendría ninguna posibilidad.

El problema con esta línea de pensamiento es que no le da suficiente peso a la virtud fundamental del código abierto: el derecho a la bifurcación. Nada impide que un competidor bifurque Go y cree su propio Go. Go Language es una marca registrada de Google, pero eso no impide que la gente use Go y cree OpenGo. Así que sí, Siebenmann tiene razón en que «Go tiene contribuciones de la comunidad, pero no es un proyecto de la comunidad. Es un proyecto de Google», pero no explica por qué esto es necesariamente un problema.

Participación opcional

después de todo, Lo que dijo sobre Go se aplica a casi todos los proyectos exitosos de código abierto.: «[T]Se cree ampliamente que a Go le va bien porque tiene un pequeño equipo central con buen gusto y una visión consistente del lenguaje, un equipo que es inmune a las voces externas, lento para moverse y sesgado a no hacer cambios. » Sí.

Mirar: Software de código abierto frente a propietario: una mirada a los pros y los contras (Estudios Técnicos Profesionales)

O, como Googler Notas de Ian Lance Taylor,

Todos los idiomas exitosos tienen un pequeño grupo de personas que toman la decisión final. Muchas personas darán su opinión sobre esta decisión, pero ningún lenguaje exitoso (de hecho, ningún proyecto exitoso de software libre de ningún tipo) es democrático. El lenguaje exitoso se enfoca en lo que la gente quiere, pero cambiar el lenguaje de acuerdo con las necesidades de la mayoría de las personas, creo, conduce a la confusión y la incoherencia. Creo que todo idioma exitoso debe tener una visión coherente, compartida por un grupo relativamente pequeño de personas.

Tal vez Go sea diferente porque todos los colaboradores principales trabajan para Google. Pero ya sea que el equipo central esté patrocinado por una empresa o esté compuesto por personas de diferentes empresas, el código abierto nunca ha sido una democracia libre.como Simón Macdonald escribió«Evitar el aumento del alcance de cualquier proyecto de código abierto es la clave de su éxito». Esto es más fácil de gestionar con un equipo pequeño, en parte porque conocen los riesgos si aceptan algo demasiado mixto, Según Paul Ramsay: «Los equipos centrales no adoptan nuevas funciones al azar precisamente porque saben que se quedarán atrapados manteniéndolas para siempre».

En resumen, la democracia no es el camino del código abierto. Desafortunadamente, la meritocracia tampoco lo es (como nos gustaría que fuera), dado lo difícil (o imposible, en opinión de Jacobs) que es penetrar en el equipo principal de compromiso de un proyecto.

Entonces, ¿la comunidad es falsa?

No haga. «Comunidad» no significa (o no debería significar) el derecho ilimitado de aceptar solicitudes de incorporación de cambios. Ni siquiera necesita ser de código abierto. El significado de comunidad varía según el proyecto (o producto) e incluirá una combinación saludable de usuarios, colaboradores y comprometidos. El hecho de que las personas no puedan aceptar sus solicitudes de extracción no significa necesariamente que sea una comunidad cerrada. A veces, lo mejor que una comunidad puede hacer por su salud es que un pequeño grupo de personas examine en profundidad las contribuciones.

LEER  Microsoft's Windows Dev Kit 2023 AKA Project Volterra: Reseñas de desarrolladores

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba