Tabulaciones versus espacios: ¿cuál es el carácter de sangría adecuado para todo, en cada situación, alguna vez? [cerrado]


84

Los estándares de codificación para el código alojado en drupal.org sugieren usar dos espacios para sangrar el código; otros sitios sugieren usar pestañas para sangrar el código.

¿Cuál es el carácter de sangría apropiado para todo y en cada situación? Por favor explique la respuesta que da.



13
IDE FTW predeterminado: solo presione la tecla de tabulación y vea qué sucede
user281377

Lo que elija, debe ser utilizado por todo el equipo, pero no cuando uno usa pestañas y otros espacios.
Discípulo el

1
Traté de editar esto para corregir la implicación de que las pestañas / espacios son la única forma de sangrar código. Se eliminó la edición, pero esperamos que este comentario permanezca: en lugar de caracteres de sangría, ¿por qué no usar el margen izquierdo en su lugar? - esto puede ser totalmente automatizado por el editor y los procesadores de texto lo han hecho por décadas.
pgfearo

44
Realmente no creo que deba haber una respuesta "aceptada" aquí. El hecho de que la respuesta con menos votos sea realmente lo primero es un testimonio de eso: ¿por qué el autor de la pregunta debería obtener un poder especial (es decir, poder poner su respuesta favorita primero) solo porque hizo la pregunta?
Dean Harding

Respuestas:


129

Espacios

Una pestaña podría ser un número diferente de columnas dependiendo de su entorno, pero un espacio siempre es una columna.

En términos de cuántos espacios (o pestañas) constituyen sangría, es más importante ser coherente en todo el código que usar cualquier valor específico de tabulación.


42
Tu segundo párrafo está mal; la respuesta es 4!
Daenyth

55
@Daenyth: tal vez si está utilizando un lenguaje de llaves. La mayoría de los usos de Pascal / Delphi 2.
Gerry

72
¿Por qué debería ser obligatorio para sus 2 o 4 ESPACIOS de sangría cuando una TAB se puede establecer dinámicamente e indicar un solo nivel de sangría?
Jé Queue

3
@MGOwen El argumento del tiempo de descarga para la codificación del sitio web se resuelve fácilmente hoy en día usando la minificación de fuente en css / javascript y la eliminación de espacios en blanco en HTML. Ver mod_pagespeed para ver a qué me refiero.
Evan Plaice

42
"Una pestaña podría ser un número diferente de columnas dependiendo de su entorno" Sí, esta es exactamente la ventaja. Todos pueden configurarlo a su gusto y ser felices.
Andrea

249

Pestañas

Ahora, por supuesto, la consistencia importa más que cualquiera de los dos, y un buen IDE hace que las diferencias sean insignificantes. Dicho esto, el objetivo de este hilo es ser una guerra santa, así que:

Prefiero pestañas:

  • Son un personaje específicamente destinado a la sangría
  • Permiten a los desarrolladores con diferentes preferencias en tamaño de sangría cambiar cómo se ve el código sin cambiar el código (¡separación de datos y presentación para la proverbial victoria!)
  • Es imposible sangrar algo con pestañas. Entonces, cuando copie código de un sitio web que usa 3 espacios en su archivo sangrado de 4 espacios, no tiene que lidiar con la desalineación.

12
¿Qué hay de copiar ese código con sangría de 3 espacios en su archivo con sangría de pestañas, que ha configurado sus pestañas en 3 espacios? Cuando envía su código a sus compatriotas, se preguntan por qué esa función tiene una sangría tan mala.
Wayne Werner

27
Las pestañas no están destinados originalmente para el sangrado, que son para la tabulación , y hacen un trabajo terrible en ello ...
Timwi

14
@Timwi: Wikipedia parece decir que están destinados a mover el cursor al siguiente de un conjunto de columnas fijas. No parece que la tabulación fuera la función principal. Además, me refería a la era posterior a la máquina de escribir.
Fishtoaster

40
Además, muchos programadores pasan una cantidad significativa de tiempo escribiendo html, css, etc., si el hecho de que un archivo con 4 espacios en lugar de pestañas sea 5-15% más grande es realmente significativo. Ejemplo: esta página en la que se encuentra ahora está cargada al menos un 10% más lento de lo que debería porque el equipo de SE utilizó espacios . Compruébalo por ti mismo.
MGOwen

23
Otro beneficio de este enfoque: menos pulsaciones de teclas al usar las teclas de flecha para la navegación izquierda-derecha.
Nicole

117

Use pestañas para sangrar el inicio de la línea, una pestaña por nivel de sangría, y deje que todos elijan qué tan ancho quieren que sea.

Use espacios si está alineando caracteres dentro de una línea, para que siempre se alineen independientemente del tamaño de la pestaña.

Y encuentre y golpee a todos los primeros autores de software que dejaron que esta estupidez se convirtiera en un problema en primer lugar.
(En serio, ¿por qué esto es algo que se discute? ¡Luego me dirás que también quieres usar varios caracteres para los saltos de línea!)


33
Si si SI SI SI. Cien por ciento sí. Esto permite a todos establecer su propio ancho de pestaña mientras se conserva el formato tabular. Si le preocupa mantenerse dentro de las 80 columnas (¡como probablemente debería estarlo!), Simplemente elija un tamaño de pestaña máximo arbitrario esperado (como 4) y manténgase dentro de los márgenes para las pestañas en ese ancho. Honestamente, ¿es tan difícil?
Jon Purdy

Sí, pero no use espacios para alinearse dentro de una línea. Sus colegas pueden estar usando una fuente proporcional para que su arte ASCII se vea extraño en sus pantallas.
paperjam

3
Esta es la única respuesta correcta aquí
J.Ashworth,

76

Pestañas

  • Permitir que los errores sean más notorios , es molesto micro administrar los espacios.
  • son consistentes , solo se usan para sangrar, a menos que esté comentando mal.
  • son personalizables , puede especificar en las opciones del editor qué tan anchos son.
  • son más productivos , ¿por qué escribir 4 espacios cuando puedes presionar 1 pestaña?
  • tomar menos tamaño que múltiples espacios.
  • ocupa más espacio que un espacio.
  • Tómese menos tiempo para pasar .
  • tienden a funcionar mejor en IDEs.

Se deben usar espacios donde las pestañas son completamente inútiles.

Incluso para alinear parámetros y comentarios, las pestañas aún funcionan mejor .


24
wrt "más productivo", personalmente presioné TAB y dejé que el IDE realizara la conversión para el número apropiado de caracteres de espacio para introducir. Tal vez que necesita actualizar: p?
Matthieu M.

3
-1: Errores más notables: no es cierto; consistente: difícilmente por personalizable: sí, pero también es una desventaja al mismo tiempo; más productivo: no es cierto, prácticamente todas las ides pueden convertir pestañas en espacios; menos tamaño: sí, pero práctico? No; menos tiempo: no con IDE razonable; tienden a funcionar mejor: nada si usa múltiples entornos y herramientas
MaR

@MaR: Los errores notables son ciertos, el ancho de una pestaña es mayor. También ... ¡Python! Las pestañas son consistentes, ya que una sola pestaña es una sangría, mientras que de lo contrario debe definir cuántos espacios usará para una sangría. La personalización es una ventaja. Estás usando pestañas en primer lugar, por lo que es más productivo. Parece que ni siquiera puedes dar un buen razonamiento de por qué no es práctico, los que odian odiarán ...;)
Tamara Wijsman

@TomWij: ¿Cómo es la pestaña más grande que el número equivalente de espacios? Python es prácticamente el único lenguaje que tiene espacio en blanco para usar las pestañas de forma segura (pero aún así, ofrece una pequeña ventaja en comparación con los "espacios de inserción"). Pruebe también otros idiomas, entornos heredados, diffs / merges, terminales, sccs para ver por qué las pestañas siguen siendo utópicas "ideales".
Marzo

@MaR: ¿Dónde dije 'número equivalente de espacios'? He probado todos esos, las pestañas funcionan perfectamente en ellos!
Tamara Wijsman

41

Todos los argumentos para las pestañas son geniales en teoría. Pero...

En teoría, práctica y teoría son lo mismo. En la práctica, no lo son.

Sí, con pestañas puedes decidir tu nivel de sangría. Y sí, puede usar una combinación de pestañas y espacios para alinear cosas. Y en un mundo ideal sería

En realidad, no puede ver la diferencia entre espacios y pestañas, siempre parecen confundirse al mover el código, y ver el código en otro programa que tiene pestañas configuradas en 8 columnas es una molestia.

Yo solía usar pestañas. Luego comencé a trabajar como parte de un equipo y a compartir código. Rápidamente me convertí en un defensor de los espacios. Entonces, aunque puedo simpatizar con la utopía de las pestañas, no puedo imaginar no usar espacios.


66
puedes obtener un editor como Kate que presente pestañas con un carácter 'fantasma'. Puedo ver fácilmente pestañas vs espacios al codificar.
HorusKol

8
Todos los editores tienen una opción de "mostrar espacios en blanco" ahora, y Visual Studio tiene una opción de 'tabulación'
Chris S

2
Buen argumento Esa es la razón por la que dejé de tratar de convencer a la gente de que las pestañas son más lógicas. Incluso los programadores que deberían estar acostumbrados al pensamiento abstracto parecen confundir las pestañas y los espacios ("si parece cuatro espacios, ¡entonces deben ser cuatro espacios!"). El clavo en el ataúd para mí fue que parece imposible configurar Emacs para sangrar solo con pestañas.
Martin Vilcans

3
+1 La utopía de pestañas es excelente, pero cada vez que moví el código entre editores con diferentes anchos de pestañas, el código se ha desordenado y desalineado. Es demasiado fácil hacer lo incorrecto en silencio con pestañas.
Mankarse

También solía usar pestañas, pero tenía problemas con algunos IDE que no podían insertar espacios para líneas de continuación y odiaba reemplazar todas esas pestañas insertadas automáticamente con espacios (Visual Studio era uno de ellos). Así que me quedé con los espacios. Los espacios más le permiten usar sangrías de tamaño medio para cosas como public:en las declaraciones de clase C ++ para que se vean más bonitas (especialmente con clases anidadas).
szx

31

Algunas opiniones relevantes que pueden ser de interés:


105
Solo porque eres famoso no te hace correcto.
Jé Queue

@Xepoch: ¿has leído su justificación :)?
Matthieu M.

55
@ Matthieu M., sí, he leído cada uno, pero aún no estoy de acuerdo. Tampoco me gustan las aceitunas, pero no me equivoca porque a otros sí. Me parece absurdo que la gente no use la ficha para el sangrado, pero esto es por lo que ellos llaman CS guerras santas ...
Jé cola

2
@Xepoch: sí, supongo que todos tienen derecho a la opinión de uno :) Creo que Guido ha señalado el problema principal: mezclar pestañas y espacios es malo, porque ambos aparecen como "espacio en blanco" para el usuario.
Matthieu M.

3
@Fishtoaster: Cuando dices que Joel dice espacios, ¿no debería ser el enlace a una cita real de Joel? El enlace solo va al foro de JoelOnSoftware donde algunas personas (probablemente no hablan por Joel) discuten pestañas vs espacios.
Andreas Magnusson el


20

Yo absolutamente. odio. 4. espacios.

¿Por qué? Principalmente porque estoy cansado de navegar mi código con un teclado y tener que presionar constantemente left left left leftpara pasar por una sangría. Esto nació de las primeras versiones de Notepad ++ e incluso del bloc de notas simple de Windows donde no existía un botón de formato. Tuve tantos problemas cuando la gente solo usaba 3 cuando había usado 4 en todas partes, entre otras cosas.

La otra razón es que el carácter de tabulación existe específicamente para la sangría y solo se adoptó más tarde para la navegación. ¿Por qué estamos haciendo space space space spacecuando un simple tabfuncionaría? ¿Por qué los IDE tienen que lidiar con 2-5 códigos espaciados y formatear correctamente cuando una pestaña simple y una opción de preferencia funcionaría?

Lamentablemente soy la minoría.


31
Eres ineficiente en la exploración del código del teclado. Debe usar CTRL + IZQUIERDA y CTRL + DERECHA para omitir espacios en blanco y tokens. Entonces la sangría no importaría.
Wizard79

77
¿De dónde viene esta idea errónea de que "las pestañas existen específicamente para la sangría"? Las pestañas se llaman pestañas (tabuladores) porque fueron inventadas para tabulación, no sangría , y hacen un trabajo terrible en ambas.
Timwi

77
@Lorenzo: Eres ineficiente en la exploración del código del teclado. Debe usar wy b(o ey ge) para saltar espacios en blanco y tokens: P
R. Martinho Fernandes

66
Por el bien de la defensa diabólica: no inflijas código mal formateado en editores que consideres inferiores. Usa pestañas.
Jon Purdy

11
@Timwi: perdón por necro, pero la tecla de la pestaña de la computadora NO fue inventada para la tabulación La versión de TYPEWRITER de esa tecla era, pero para cuando los teclados evolucionaron para usarse con computadoras, la tecla tab se usaba para sangrar más que la tabulación, y el término "pestaña" se había convertido en sinónimo de sangría. Las pestañas para COMPUTADORAS deben sangrar, y es solo por convención que el nombre de la tecla coincide con el de la máquina de escribir. Su argumento es similar a afirmar que la tecla de retorno de la computadora tenía la intención de comenzar una nueva línea y mover el cursor hacia el extremo izquierdo, porque para eso estaba en una máquina de escribir :)
Beofett

12

Personalmente, me gusta usar pestañas en todo, ya que cada desarrollador puede controlar la cantidad de sangría por pestaña. De esa manera obtienes flexibilidad en la visualización.

Dicho esto, generalmente imito cualquier estilo de codificación en el archivo para comenzar (ya que paso mucho tiempo haciendo trabajos de mantenimiento).


3
Eso se rompe tan pronto como comience a sangrar cualquier otra cosa que no sea el anidamiento de instrucciones. Por ejemplo, si desea alinear argumentos de función en la misma columna, uno por línea. Es posible mezclando pestañas y espacios pero muy tedioso.
finnw

2
No es tedioso en absoluto, ya que significa que puede tabular la mayor parte del camino y luego usar solo un par de espacios, en lugar de tener que escribir docenas de espacios solo para llegar a la columna correcta.
Jordan Reiter

1
@finnw asume que todos están usando una fuente monoespaciada: en 2012, un número significativo de desarrolladores usa proporcionalmente. Si tiene caracteres que no son espacios en blanco a la izquierda de su primer argumento, no hay forma de garantizar que los argumentos en las líneas posteriores se alinearán para todos.
paperjam

Nunca has intentado escribir HAML, ¿verdad?
alt

2
Odio decir esto, pero no puedo imaginar la programación en una fuente de ancho variable. La pura equivocación de eso enana estándares de llaves, tabuladores vs espacios, todo ... ¿Me estoy haciendo viejo? (¿Qué sucede cuando recibe un mensaje de error con una línea y un número de columna?)
lunchmeat317

10

No creo que exista una sangría adecuada (al menos no sin una guerra menor).

Personalmente me gustan cuatro espacios. Me permiten leer el código mucho más rápido y se ven iguales en todos los editores, incluso Vi.


99
vi (o más bien vim) es uno de los mejores editores para trabajar con pestañas, además de poder establecer el ancho de la pestaña y expandirse automáticamente a espacios (como la mayoría de los editores pueden) también tiene la softtabstopopción y los comandos retaby retab!.
finnw

¿Morirían realmente los bebés si dijéramos 4 espacios, en todas partes, siempre, no hay otra opción , y continuamos?
MGOwen

2
Cuatro espacios no se ven iguales en todas partes. Más programadores ahora eligen fuentes proporcionales en su IDE para una experiencia de codificación más agradable y productiva. Cuatro espacios pueden parecer una sangría bastante pequeña en estas situaciones.
paperjam

8

Espacios, porque cuando alinea comentarios a la derecha del código, o listas de parámetros de funciones, o expresiones complejas multilínea, o cosas de esa naturaleza, quiere que su hermoso trabajo se vea bien para todos . Si usa pestañas y permite que las personas configuren sus pestañas de manera diferente, romperán la alineación para todos, excepto los casos más simples de sangría de código.

Además, es claramente obvio que todos en el mundo deberían usar vim, lo que hace que sea trivial sangrar, desangrar y navegar a través de "tabulaciones" incluso en archivos con sangría espacial.


Esa es una característica realmente buena de muchos editores: la capacidad de recorrer rápidamente montículos y montículos de espacios.
Christian Mann

18
Parece que estás dibujando arte ASCII en lugar de codificar.
rmac

3
Yo agregaría: las pestañas no deben usarse para la alineación. Si es usuario de pestañas y desea alinear, primero debe escribir la cantidad correcta de pestañas para la sangría y LUEGO la cantidad correcta de espacios para la alineación. Solo entonces verá el código con formato de pestaña en todos los usuarios y editores.
MaR

6

Las pestañas son la opción natural y ortodoxa, ya que, por definición, se utilizan para la sangría.

Desafortunadamente, las pestañas se implementan de manera desigual, por lo que la única solución del mundo real es 4 espacios.


8
¿Desde cuándo se usan las pestañas (tabuladores) para la sangría "por definición"? Por su propia definición, fueron inventados para la tabulación (aunque también hacen un trabajo terrible en eso).
Timwi

2
Técnicamente, la tecla de retorno se inventó para mover el cabezal de la máquina de escribir al frente de la línea, mientras que el movimiento a la siguiente línea se realizó girando el rodillo. Más tarde, la tecla de retorno también avanzaría automáticamente el rodillo. Sin embargo, no se ve a las personas colgadas en la tecla de retorno / entrada. La tecla de tabulación se agregó claramente a las computadoras para realizar la sangría. Es un análogo digital de la tabulación, que tenía en mi vieja máquina de escribir no eléctrica. Se pueden configurar tabulaciones para mover el rodillo a cualquier posición que elija, casi idéntico al papel actual de la tecla de tabulación en la sangría.
Jordan Reiter

@JordanReiter RE: "Sin embargo, no se ve a las personas colgadas en la tecla de retorno / entrada": ¿Nunca se ha enfrentado a CR (representa mover la cabeza de la máquina de escribir al frente de la línea) / LF (representa girar el rodillo a la siguiente línea) problemas?
Max Nanasy

1
Sí, pero eso es realmente un problema del sistema operativo, no un problema de teclado. No importa en qué computadora esté, espera presionar la tecla Intro o Retorno para ir al siguiente enlace. No utiliza una tecla para emitir un salto de línea y otra para emitir un retorno de carro.
Jordan Reiter

4

Obviamente necesitas un enfoque combinado.

Si comparte código con otros desarrolladores, necesita estandarizar, y como eso es imposible (koff koff), debe hacer que todos hagan cuatro espacios.

Entonces necesita un editor que sea lo suficientemente inteligente como para no ser estúpido al respecto, para saber que debe tratar una línea con cuatro espacios al frente como si tuviera sangría. Cualquier IDE moderno o editor de programadores puede hacer fluir automáticamente el código con espacios en lugar de pestañas.


4

¿Por qué alguien no puede implementar esto?

  • el código se almacena en un formato compacto beneficioso para el sistema en cuestión
  • a medida que cada desarrollador abre el código, se formatea exactamente como lo quiere
  • cuando hayan terminado con él, de vuelta al formato compacto

Todos están contentos ya que todos ven su propio formato

¿Eso es tan difícil?


2
Debido a que no tengo suficiente tiempo libre para arreglar todos los editores e IDE existentes que la gente usa, e incluso si lo hiciera, convencer a todos para que se actualicen sería aún más difícil.
Peter Boughton

Estoy seguro de que podrían construirlo en SVN o encontrar alguna otra forma de dejar las herramientas finales fuera de él.
Adolf ajo

13
Suena como a pestañas. Cada desarrollador abre el archivo y obtiene el ancho de sangría que desea.
rmac

1
Ya puede configurar RCS o CVS para usar el indentprograma.
Jé Queue

3
y es prudente usar la sangría para forzar la sangría / codificación de la estandarización de la estructura para que los desarrolladores con ideas divertidas de espaciado no sean culpados / anotados por todos esos cambios de formato
Tim Williscroft

3

Espacios o pestañas: lo que Atwood realmente dice es elegir una cosa y ser coherente en su proyecto. El único santo grial del formato de código es asegurarse de que sea coherente para que el psicópata que mantiene su código después de usted no se sienta obligado a remediar la situación de forma permanente.

Dicho esto, si está trabajando en Python o en cualquier otro lenguaje donde el espacio en blanco es una construcción de programación real, no puedo imaginar el uso de pestañas.


44
Yo uso pestañas. No sé si has hecho alguna programación de Python, pero lo que importa es la sangría relativa. Si la línea 1 tiene x sangrías y la línea 2 tiene x + 1 sangrías, se considera más sangría. Las sangrías pueden ser espacios dobles, 4 espacios, pestañas, no importa siempre y cuando sea consistente.
Macha

@Macha - Gracias por los comentarios. Nunca he trabajado en el desarrollo de Python, pero todos los que me han dicho que usan espacios son interesantes, así que es interesante conocer a alguien que usa pestañas.
Noah Goodrich

3
Yo uso pestañas con python en el trabajo. Es terrible.
rhettg

3

Soy un tipo de hombre de 4 espacios, las pestañas simplemente no son consistentes.


55
¿Cómo son "no consistentes"? Siempre son un solo personaje que representa un solo nivel de sangría. Esa es la definición misma de un esquema de sangría consistente. (Y que usted puede personalmente, sin afectar a nadie más, representar visualmente que cualquier forma que elija es una ventaja ).
Lightness Races in Orbit

3

Aparentemente las pestañas estropean cosas en Delphi, así que no uso pestañas en Delphi.

Sin embargo, hago todo lo demás con Emacs y siempre uso pestañas porque mis pestañas van exactamente donde quiero que vayan.


¿Puedes dar un ejemplo de esto? Sinceramente, tengo curiosidad porque he estado usando Delphi durante 15 años y nunca he visto esto.
GrandmasterB

1
edn.embarcadero.com/article/10280#4.3 Esa es solo la guía de estilo, pero hemos tenido algunos errores extraños que no puedo explicar debido a las pestañas. También puede deberse a Visual Source Safe. No puedo explicarlo, es solo parte de la tradición de nuestra empresa.
Peter Turner

1
El problema es que los valores predeterminados de instalación para (al menos) algunas versiones de Delphi no coinciden con las expresiones idiomáticas habituales de Delphi. Entonces terminas con un código que tiene AMBOS.
Gerry

3

La respuesta es que no puede haber un solo carácter de sangría adecuado para cada situación. El formateo con caracteres es inflexible y puede causar conflictos cuando se utilizan diferentes estilos dentro de un equipo.

El único método para formatear código de manera impecable y flexible con diferentes estilos de formateo es hacerlo virtualmente, es decir, sin caracteres de sangría. Sin embargo, el único editor de código que sé que admite esto es el que se usa en el ejemplo a continuación:

Para demostrar el formato virtual , la captura de pantalla a continuación es de un editor XSLT * que usa este método de sangría (también hay un video corto aquí ). Todos los caracteres en el XSLT se han resaltado en amarillo, con fines ilustrativos, para permitir que las únicas pestañas o caracteres de espacio en el contenido se vean claramente. La sangría del código es manejada por el sistema de renderizado del editor ajustando el margen izquierdo (que tiene un fondo blanco).

ingrese la descripción de la imagen aquí

Los únicos caracteres de espacio iniciales preceden a las líneas de Libros , ya que se trata de contenido de texto literal, no de código, estos caracteres de espacio deben conservarse.

Con el formato virtual, usted elige el ancho de sangría que se adapte al entorno y al estilo de sangría sin afectar los caracteres del archivo fuente. Incluso puede establecer el ancho de sangría en 0, si necesita una vista plana del código como se muestra a continuación:

ingrese la descripción de la imagen aquí

Para contrastar esto con el formato de caracteres de espacio, el mismo XSLT abierto en un editor sin formato virtual se transforma mediante el formateador automático de ese editor a esto:

ingrese la descripción de la imagen aquí

Los bloques amarillos en blanco más grandes en la captura de pantalla anterior muestran claramente los caracteres de espacio agregados por el formateador del editor convencional. Desafortunadamente, estos no se pueden distinguir del contenido real, por lo que el XSLT tendría que modificarse para corregir este problema.

Resumen

XSLT es posiblemente un caso extremo, pero este principio es válido para muchos lenguajes de programación: los caracteres se deben usar para el contenido y se debe buscar un método alternativo cuando se trata de formatear.

** Divulgación: el editor XSLT con formato virtual fue desarrollado por mi propia empresa *


1
Lamentablemente, probablemente estés unos 50 años adelantado a tu tiempo. La idea francamente absurda de que los programas son secuencias de personajes todavía está muy arraigada en la mente de la mayoría de los programadores.
Tom Anderson

3

No mencionado hasta ahora: hay lenguajes (Python, Haskell) donde la sangría es importante. Pero 1 carácter cuenta como 1 carácter, ya sea un espacio o una pestaña, por lo que la sangría que ve el compilador puede no ser la misma que ve en la pantalla si usa pestañas.

Por lo tanto, en idiomas como Haskell, los espacios son imprescindibles. En Makefiles, TABS son imprescindibles. En todos los demás, es una cuestión de gusto personal y hoy en día no es un gran negocio: cada editor decente tiene un comando "(principales) pestañas a espacios" y "espacios (principales) a pestañas".


2

Solía ​​usar espacios, pero últimamente he estado usando pestañas puramente porque eso fue lo que Eclipse estaba configurado cuando finalmente me di cuenta. Todos los demás desarrolladores de mi equipo usan Eclipse, por lo que tenía sentido estandarizar las pestañas cuando nos dimos cuenta de que ya las habíamos estado usando durante años y no había razón para molestarnos en cambiar a espacios. Me ha sorprendido lo poco que ha sido un problema.

Establecer el tamaño de la pestaña que se muestra en 3 o 5 caracteres en su IDE simplifica enormemente la distinción entre las secciones de código que están sangradas por espacios (casi siempre 4 en estos días) y las que están sangradas por pestaña.


1

Ya se han dado muchos argumentos, pero nadie mencionó hacia dónde podríamos dirigirnos en el futuro .

Pestañas ni espacios!

Idealmente, el código debe considerarse datos y no almacenarse en ningún formato de texto específico. Cualquier desarrollador puede aplicar su propia vista preferida. Además, esta vista no debe limitarse solo al texto , sino que puede incluir tablas, selectores de color y fórmulas matemáticas.

Esta idea no es demasiado descabellada. Fue el editor de programación orientada al lenguaje de JetBrain, Meta Programming System (MPS), que primero me hizo darme cuenta de que esto resuelve toda la discusión, al mismo tiempo que agrega muchas posibilidades adicionales. (Sí, esto es posible con los complementos del editor, pero trabajar en el texto agrega directamente muchas complejidades innecesarias, en oposición al enfoque que adopta MPS).

A diferencia de las pestañas y los espacios, existen pequeñas desventajas que se pueden mencionar para trabajar directamente en árboles de sintaxis abstracta . Todo lo que se necesita es que la tecnología madure a un producto comercialmente viable. Los primeros signos de esto están apareciendo. Desarrollado en gran parte sobre MPS, un editor de ActionScript comercial, se creó Realaxy .

¡Me encantaría ver a uno de los grandes jugadores saltar sobre el concepto de esta tecnología y ver qué sucede!


0

Ninguno de los dos es mejor ni peor. Lo único importante es ser consistente.

Si eres un equipo de uno, elige lo que quieras personalmente. Considere cuál es el comportamiento predeterminado de su editor favorito, pero elija lo que quiera.

Si estás en un equipo, haz lo que hace el equipo. Período.

En mis diversos trabajos he usado dos espacios, cuatro espacios, ocho espacios, pestañas, espacios y pestañas, creo que también podría haber usado un espacio. Le digo a mi editor qué hacer, luego no lo pienso otra vez, el editor resuelve los detalles.

La única otra cosa es asegurarse de elegir un editor inteligente. Emacs o vi? Ahora que es una guerra santa, estoy dispuesto a pelear :-)

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.