Espacios vs. Pestañas: Un Debate de 20 Años Reavivado por Golang de Google
Los geeks han estado eligiendo lados durante los últimos 16 años – ¿deberían los programadores sangrar su código usando espacios o pestañas? Pero ahora la infame y trivial guerra de las llamas ha recibido una nueva prominencia por un estudio de Google, posiblemente inspirado en el diálogo de un episodio reciente de Silicon Valley de HBO.
» A decir verdad, tengo una ligera preferencia por las pestañas. Pero eso es solo porque soy anal y porque prefiero la precisión.»
» Bueno, no quiero pelear aquí, pero si realmente te importa la precisión, ¿no usarías espacios? Pero lo que sea, una vez que pasa por el compilador, es lo mismo, ¿verdad…?»
» Si todo es lo mismo, ¿por qué no usar pestañas?»
» Porque podría verse diferente en los ordenadores de otras personas.Las pestañas «
» crean archivos de menor tamaño, ¿de acuerdo…? Quiero decir, ¿por qué no usar Vim sobre Emacs?»
» Uso Vim sobre Emacs.»
» Oh, dios nos ayude!»
Finalmente este año, justo antes del fin de semana del Día del Trabajo, el promotor de desarrolladores de Google decidió opinar. «Vamos a analizar mil millones de archivos entre 14 lenguajes de programación para decidir cuál está en la parte superior.»Procesaron archivos de los 400.000 repositorios de GitHub principales, mirando solo archivos de código escritos en los idiomas principales, y su gráfico mostró que los espacios eran, con diferencia, el método más popular de sangría, en todos los idiomas. Excepto Go y C.
«Confirmado, Go es el lenguaje del futuro», bromeó un comentarista en Reddit.
«También formatea automáticamente tu código fuente», respondió otro programador. «¡Uso espacios y escupe pestañas!»
Y en Twitter, un desarrollador bromeó que el ensayo solo había creado otra controversia. «La nueva discusión es ahora ‘¿qué demonios está mal con Go?'»
Al menos un ingeniero canadiense aplaudió el esfuerzo que Google puso para resolver la cuestión.
https://t.co/wuMz1gLwXT así es como se resuelve el argumento am: datos.
— Ian Fosbery (@MisterZia) Septiembre 8, 2016
Pero al final, Google no logró traer paz al mundo de los desarrolladores.
Para ser claros: todos los que usan espacios en lugar de pestañas para la sangría están irremediablemente equivocados.
Déjame ver tu código de la manera que me gusta.
Punto.
Cuando alguien refirió a Castillo al análisis de Google, simplemente agregó: «Lo sabía. Y sí, todos están 100% equivocados.»
» ¿Qué es esta locura?», tuiteó el ingeniero en la nube Ed Morgan.
» ¡Locura que todo el mundo sabe que las pestañas son mejores!»respondió un mantenedor de NetApp con sede en Londres.
«Esto es asqueroso», tuiteó un diseñador web independiente en el Reino Unido
Y no terminó ahí. La publicación de Google pronto se volvió viral, atrayendo 1,620 comentarios en Reddit, y también apareciendo en Gizmodo, Slashdot y Hacker News. «Después de más de 20 años de escuchar el debate de tabs vs spaces y considerar todos los puntos legítimos que tienen ambas partes, muchos han hecho la siguiente observación y es lo que más me suena», escribió un programador en Hacker News.
«En un mundo perfecto ideal, _all_ de programadores y _all_ herramientas de editor de texto usarían pestañas específicamente para sangría y espacios específicamente para alineación. Pero no vivimos en ese mundo perfectamente coordinado, por lo que spaces mantiene la mayor fidelidad, a expensas de que los programadores no puedan personalizar instantáneamente la sangría a partir de anchos de 2,4,6,8.»
¿Los geeks han estado discutiendo sobre esto durante más de 20 años? Eso parece. Ya estaba siendo descrito como un «argumento interminable» por Jamie Zawinski, uno de los programadores de los primeros navegadores Netscape Navigator, en el año 2000. Su post explicó cómo configurar dos editores de texto Linux (Emacs y Vi) para cambiar las pestañas a varios anchos. («Para ir adelante y no aplicar tabulaciones!»)
Alegremente avanzamos, y en 2004, una publicación en la Red de Desarrolladores de Microsoft abordó el mismo tema, señalando que algunas personas combinan espacios y pestañas, y argumentando que en realidad han marcado una cuarta posición: las herramientas de codificación deben configurarse para mostrar la vista preferida de cada usuario, mientras guardan el código de acuerdo con un conjunto acordado de reglas. Pero no todos eran tan abiertos de mente. En 2009, Jeff Atwood, uno de los cofundadores de Stack Overflow, escribió una entrada de blog llamada ¡Muerte a los Infieles del Espacio!. Él hace cabildeo por su posición citando el querido libro de 1984 Code Complete.
» Nuestros estudios apoyan la afirmación de que el conocimiento de los planes de programación y las reglas del discurso de programación pueden tener un impacto significativo en la comprensión del programa not No es simplemente una cuestión de estética que los programas se escriban en un estilo particular programmers los programadores tienen fuertes expectativas de que otros programadores seguirán estas reglas del discurso. Si se violan las reglas, entonces la utilidad proporcionada por las expectativas que los programadores han acumulado con el tiempo se anula efectivamente.»
Y Atwood cita más experimentos, uno de principios de la década de 1970, que encontró que la información se conserva mejor cuando se organiza en un orden significativo. «Así que sí», concluye Atwood, » por absurdo que pueda parecer, la lucha por los caracteres de espacio en blanco y otras cuestiones aparentemente triviales de diseño de código en realidad está justificada. Dentro de lo razonable, por supuesto, cuando se hace abiertamente, de una manera justa y consensuada, y sin apuñalar a tus compañeros de equipo en la cara en el camino.»
Cuatro años más tarde, la pregunta apareció en el corazón de geek nation, en una discusión sobre el desbordamiento de pila.
«Espacios», lee un argumento. «Una pestaña puede ser un número diferente de columnas en función de su entorno, pero un espacio siempre es una columna.»
«Tabs,» lee el argumento del contador. «Son un personaje diseñado específicamente para sangría. Permiten a los desarrolladores con diferentes preferencias en tamaño de sangría cambiar el aspecto del código sin cambiar el código»
¡Así que ahí!
Pero la parte de pestañas de la página en última instancia da una nota conciliadora. «Por supuesto, la consistencia importa más que cualquiera de los dos, y un buen IDE hace que las diferencias sean insignificantes.»Pero, ¿por qué estropear una buena discusión? «Dicho esto, el objetivo de este hilo es ser una guerra santa, así que
Y el propio Jeff Atwood parece estar de acuerdo, hasta cierto punto. En 2009, escribió: «En realidad, no importa qué estilos de codificación elijas. Lo que importa es que tú, y todos los demás en tu equipo, se apeguen a esas convenciones y las usen de manera consistente.»Pero no pudo resistirse a añadir una frase más.
» Dicho esto, solo un idiota usaría pestañas para formatear su código.»
- Los científicos de Stanford construyen una forma de escribir sin manos leyendo señales cerebrales.
- La NASA comparte algunas imágenes espectaculares de Marte.
- América nombra a su primer director federal de seguridad de la información.
- Amazon quiere invadir el centro comercial de su vecindario — ¡ y su hogar!
- La Raspberry Pi celebra su venta número 10 millones.
- John le Carre finalmente publica la historia de su propia vida llena de acontecimientos.
- La «breve historia de la humanidad» de Yuval Noah Harari siguió con una historia especulativa del mañana.
- Nicholas Carr mira el mundo que hemos creado y escribe: «La Utopía es espeluznante.»
En su blog, Carr pregunta ¿podemos aplicar los estándares de las empresas de medios a Facebook? - Recordando el discurso de «Coraje» de Steve Jobs, mientras algunos usuarios de Reddit se burlan de la configuración de auriculares inalámbricos del nuevo iPhone.