Hace 7 años | Por ccguy a medium.com
Publicado hace 7 años por ccguy a medium.com

Tabs o espacios. Una guerra casi religiosa entre programadores desde el principio de los tiempos. Incluso un episodio de Silicon Valley tenía una escena [ver #1] al respecto. Un estudio analiza los 400,000 repositorios más populares (por número de estrellas) en GitHub para hacer una estadística definitiva por lenguajes.

Comentarios

Nitros

#1 El video es gracioso, pero un poco chorra. Una cosa es no utilizar el carácter de tabulador y otra es darle al espacio ochenta veces en vez de hacer que el IDE introduzca espacios cuando tabulas. Nadie hace eso.

Pero vamos, me quedo con el hecho que el chico prefiere utilizar carácteres de tabulado y emacs. Seguro que también se hace la tortilla sin cebolla.

Personalmente, creo que a estas alturas ya no hay guerra.

ccguy

#5 Yo mismo tengo una guerra conmigo... para Java prefiero tabs, para Python espacios.
Por supuesto no puedo justificarlo, es así y ya está.

D

#6 Puedes justificarlo porque la tabulación es razonable para cualquier lenguaje salvo python, que como quisieron evitarse las decidieron que estar dentro de un bucle o no dependa sólo de cuántos espacios haya delante de la instrucción, y como los editores hacen con las tabulaciones lo que se les pasa por el forro, o metes espacios a lo seguro o es cuestión de tiempo que alguien abra el código con un editor de mierda y el programa compile pero funcione mal, y a quién van a culpar? al programador, solución? meter espacios en python, y cómo es eso de no tener en un programa? pues como no poner ni un punto en este comentario que estoy vomitando, no ayuda a la lectura a que no? pues menos ayuda quitar las de un programa para que venga luego el bloc de notas, que es un pedazo de hijo de clippo, a reirse de tus indents

ccguy

#11 Lo que pasa es que los tabs representan 8 espacios... el código se hace muy ancho. Cuando estás una temporada usando tabulaciones de 4 te acostumbras.

D

#5 "Nadie hace eso"
Te sorprenderías roll

Campechano

#14 Ha sido un placer, y disculpe que no me levante

Angelusiones

Usar espacios es de pringados. Luego os reíais de los que centraban títulos con espacios en Word.

No seáis mediocres anda

D

#13 #12 el tabulador es un anacronismo que solo sirve para causar problemas de representación cuando editas el código en otros entornos.

Un código indentado con espacios tiene una representación visual homogénea.

No es que la mayoría de gente use espacios, es que los proyectos de software más importante usan espacios, así como las guías de estilo más usadas recomiendan indentar con espacios (p.e. Google o NASA para C/C++)

Quizá confundes usar la tecla tab y añadir el caracter tab. Los editores de código modernos traducen la tabulación a espacios.

Angelusiones

#17

Un código indentado con espacios tiene una representación visual homogénea

Correcto

No es que la mayoría de gente use espacios, es que los proyectos de software más importante usan espacios, así como las guías de estilo más usadas recomiendan indentar con espacios (p.e. Google o NASA para C/C++)

La mierda es buena, millones de moscas no pueden estar equivocadas.

Quizá confundes usar la tecla tab y añadir el caracter tab. Los editores de código modernos traducen la tabulación a espacios.

No me confundas con un programador novel por favor.

Voy a decir ahora en serio razones para usar tabs de menor a mayor importancia:

- tus archivos ocuparán menos.
- podrás ajustar el ancho visual ( que no hablo de sustitución) de un tab a tu gusto sin tener que depender que alguien eligiese 8 o 16 espacios por tabulador.
- tu velocidad de desarrollo se incrementará bastante. Puedes usar las flechas del teclado sin quemarte las manos porque alguien decidió usar espacios (ya se que existe inicio y fin, pero hay vida más allá del inicio y fin de línea)

D

#19 No entiendes que lo importante aquí no es como veas TU código en TU ide favorito.

Es como el mundo va a ver tu codigo en otros entornos y como vas a ver tú el código de ellos.

Las guias de estilo tienen sentido en entornos colaborativos. No es cuestión de gustos, es cuestión de que si tú lo configuras con 4 espacios y yo con 3, voy a ver tu código totalmente descuadrado.

Perdona que te diga pero tus razones para usar tabs son absurdas.

"- tus archivos ocuparán menos"

Por el mismo motivo deberías usar nombres de variable comprimidos. 'a'..'z', 'aa' .. 'zz', así tu código ocupa menos y liberas espacio para almacenar 0.07 fotogramas de video extra en tu HD.


"- podrás ajustar el ancho visual ( que no hablo de sustitución) de un tab a tu gusto "

Repito que no es cuestión de gustos, es cuestión de poder colaborar en el mundo opensource o dentro de una organización.

"- tu velocidad de desarrollo se incrementará bastante"

Absurdo. Todos los editores tienen atajos para ir a la siguiente palabra saltando todo el espacio en blanco ('w' en vi) alt + -> en la mayoría de editores.

D

#17 Si usas tabs el código se adapta a la configuración que tengas en tu IDE. Un mismo código yo lo puedo ver intentado con 4 espacios y otro con 2, todo ello sin tener que cambiar el código fuente. Esa ventaja con espacios la pierdes porque se ve siempre igual.

Además de lo cutre y noob que es estar dándole veinte veces al espacio en vez de lo sofisticado que resulta configurar los espacios del Tab y solo pulsarla 1 vez.

D

#20 "Además de lo cutre y noob que es estar dándole veinte veces al espacio en vez de lo sofisticado que resulta configurar los espacios del Tab y solo pulsarla 1 vez."

Sigues sin entender lo que se está debatiendo aquí.

Busca "hard-tabs" vs "soft-tabs"

Un buen ejemplo: https://opensourcehacker.com/2012/05/13/never-use-hard-tabs/

D

#21 Me has hecho investigar y te tengo que dar la razón en parte. Estaba usando espacios todo este tiempo y no lo sabía ya que mi editor cuando pulso Tab me mete cuatro espacios.

Me queda una duda ¿tu usas también esa configuración o haces como la del video y revientas el espacio? ¿En serio alguien le da 4 veces al espacio para intentar? Me cuesta creer que esa cutrada ineficiente sea el estándar.

D

#23 no creo que nadie en su sano juicio indente dandole al espacio (no he visto el video).

De hecho lo normal es que el ide te indente automáticamente en mayor o menor medida

g

¿Alguien podría traducir de qué va esto? Espacios o tabuladores ¿para qué?, ¿en qué? Todas no somos programadoras...

Campechano

#8 Cuando se programa se introducen bloques de instrucciones dentro de otros bloques, bien porque se han de ejecutar cuando se cumpla una condición indicada en el bloque superior o bien porque tiene que repetirse según unas condiciones del bucle superior. Para que quede claro en qué nivel está cada bloque se añaden espacios o tabuladores de forma que las instrucciones de niveles inferiores quedan más a la derecha que las de niveles superiores. Y el meneo va de cuántos ficheros llevan espacios y cuántos llevan tabuladores para hacer esto

g

#10 Gracias, majestad.

D

Lo de go es normal porque gofmt te obliga a usar tabs. Decisión de estilo de los creadores del lenguaje supongo.

Lo de C me sorprende incialmente, pero luego veo que el estilo del kernel de Linux es usar tabs y seguro que otros proyectos open source han copiado.

En C++ se nota que han herrado en incluir solo la extensión .cc y no .cpp, falta código ahí.

Por suerte la mayoría es lógica y utiliza espacios en lugar de tabs.

D

#4 Los .cpp están separados, la tabla es por extensión no por lenguaje, igual que las .h también están separadas.

D

#7 ups, no sé como he mirado la primera vez, que no he visto los cpp

D

#0 Etiquétala [EN] Por favor

ccguy

#2 La tabla de resultados tiene lenguajes y números...

D

En serio la mayoría de la gente usa espacios??? Nunca he conocido a nadie que haga tal aberración salvo algunos casos contados (siempre chicas no sé por qué). Lo cierto es que desde que trabajo con angular encuentro mucho código con ese formato por la web.