mmofacts.com

Tabs vs. Spaces

gepostet vor 16 Jahre, 5 Monate von n26
Würde mich mal interessieren was und aus welchem Grund ihr Tabs oder Leerzeichen, und das andere wiederrum nicht, zur Einrückung vom Code verwendet.
Ich persönlich nutze Tabs und habe bisher noch keinen mir einleuchtenden Grund gefunden, warum ich auf Leerzeichen umsteigen sollte. Aber da es anscheindend doch eine große Zahl Leerzeichennutzer gibt, würden mich mal Vorteile davon interessieren.
gepostet vor 16 Jahre, 5 Monate von shoK
auf jedenfall tabs, allein schon weil jeder in seinem editor selber einstellen kann, wie breit die angezeigt werden...
ausserdem hat man dann nur 1 zeichen statt 4 oder wieviele auch immer...
und man kann besser gesamte blöcke einrücken mit tab und wieder zurück mit shift+tab
gepostet vor 16 Jahre, 5 Monate von n26
Original von shoK
auf jedenfall tabs, allein schon weil jeder in seinem editor selber einstellen kann, wie breit die angezeigt werden...
ausserdem hat man dann nur 1 zeichen statt 4 oder wieviele auch immer...
und man kann besser gesamte blöcke einrücken mit tab und wieder zurück mit shift+tab

Da muss ich dich enttäuschen denn in meinem IDE geht das alles auch mit Leerzeichen (habs mal getestet).
Denn in den meisten IDEs kannst einstellen, dass der statt Tabs Leerzeichen nutzt. Du drückst dann auch immernoch die TabTaste auf der Tastatur und der rückt das dann um zB 4 Leerzeichen (je nach Einstellung) ein.
gepostet vor 16 Jahre, 5 Monate von DrakeL
Original von shoK
und man kann besser gesamte blöcke einrücken mit tab und wieder zurück mit shift+tab

Geht bei allen mir bekannten Editoren auch bei der Nutzung von Leerzeichen.
Tabs:
+ Benutzer können die Breite der Einrückungen selbst bestimmen
- Man muss aufpassen, dass auch durchgehend Tabs genutzt werden, ansonsten verschiebt sich der Quellcode, wenn man mal die Breite umstellt
- Nicht alle Editoren lassen die Breite der Tabs einstellen
Leerzeichen:
+ Die Breite der Einrückungen ist in jedem Editor gleich, es kann nicht zu Verrückungen kommen
Ich nutze Leerzeichen und wüsste auch kein Grund zu wechseln.
PS: Beides hat seine Vor- und Nachteile. Daher würde ich eher sagen es ist eine Glaubens- und Geschmackssache. Allerdings sollte man einen der beiden Wege durchgehend machen und nicht beide Arten mischen.
gepostet vor 16 Jahre, 5 Monate von exe
Tabs - weil man hier die Einrückungsbreite individuell einstellen kann. Ansonsten machts keinen Unterschied. Aussehen tuts genau so und mit jedem Editor der "Insert Spaces instead of Tabs" beherrscht kann man auch mit der Tabtaste Leerzeichen einrücken.
gepostet vor 16 Jahre, 5 Monate von Klaus
...weil es semantisch mehr Sinn macht Tabs zu verwenden.
gepostet vor 16 Jahre, 5 Monate von None
Tabs. Grund: So gelernt und immer überall so vorgefunden.
gepostet vor 16 Jahre, 5 Monate von altertoby
Tabs...
find Leerzeichen (mehrmaliges Tippen) einfach doof (und hab im VS jetzt auf die schnelle nichts gefunden, wegen "Convert tab to space").
Beim löschen muss ich dann aber die X-Leerzeichen löschen oder? Mich nerven da manschmal schon die relativ vielen Tabs wenn ich ne ganze Zeile löschen möchte...
Außerdem macht VS die Formatierung so schön von selber mit Tabs...warum sollte ich mich da um sowas belangloses wie "Tabs vs Leerzeichen" kümmern
gepostet vor 16 Jahre, 5 Monate von None
Tabs. Kenne es nicht anders.
gepostet vor 16 Jahre, 5 Monate von TheUndeadable
www.depon.net/temp/3569454.png
Spaces natürlich!
> (und hab im VS jetzt auf die schnelle nichts gefunden, wegen "Convert tab to space").
Siehe Screenshot
Options -> Editor -> C# -> Tabs
gepostet vor 16 Jahre, 5 Monate von n26
Original von TheUndeadable
Spaces natürlich!

Und welche Vorteile siehst du in Spaces? Bzw. was ist der Grund der Überzeugung ?
Denn ich muss mich vielen anschließen ich kannte es bis vor kurzem nicht anders und würde aber gern verstehen, warum es Programmier gibt, die darauf schwören.
gepostet vor 16 Jahre, 5 Monate von exe
Er nennt die reine Spaces-Methode aber auch nicht als Optimal. Am besten schneidet die Mischung aus Tabs und Spaces ab, welche ich auch für am besten halte. Tabs um auf Blockebene einzurücken, Spaces um den Code auszurichten.
Die Methode mit der (automatisierten) Umformatierung halte ich für eher unhandlich. Man kann sich nunmal nicht darauf verlassen, dass der Code nur über die IDE betrachtet wird die diese Mechanismen unterstützt. Also muss in jedem Fall ein vernünftiges "konventionelles" Format her. Ich möchte zumindest dem Sysadmin, der sich Nachts um 3 via SSH & Vim meinem Code ansehen muss weil ihn ein Notfallticket aus dem Bett geholt hat, nicht am nächsten Morgen erklären "Sry das der bei dir so scheisse aussah, benutz nächstes mal einfach $INSERT_IDE_NAME_HERE zum Code ansehen"
gepostet vor 16 Jahre, 5 Monate von TheUndeadable
Tabs um auf Blockebene einzurücken, Spaces um den Code auszurichten.

Leider ist ein solcher Idealzustand häufig Utopie...
Aber ja: Ich stimme dir zu!
gepostet vor 16 Jahre, 5 Monate von altertoby
Original von TheUndeadable
> (und hab im VS jetzt auf die schnelle nichts gefunden, wegen "Convert tab to space").
Siehe Screenshot
Options -> Editor -> C# -> Tabs

mhh so sieht es bei mir auch aus, hab trotzdem überall Tabs (oder Leerzeichen die so groß sind wie Tabs?!)
Im Notpad auf mach--> ah da sind es plötzlich ganz normale Spaces...dann nutze ich wohl doch Spaces ohne es davor gewusst zu haben^^
gepostet vor 16 Jahre, 5 Monate von n26
Original von TheUndeadable
Einer der Gründe:
blogs.msdn.com/cyrusn/archive/2004/09/14/229474.aspx

Finde der Artikel bringt das ganze genau auf den Punkt - und das ist auch ein sehr passender Vergleich, genau was ich gebraucht habe (danke ).
Zur Folge hat das für mich, dass ich auf jeden Fall bei Tabs bleibe und wahrscheinlich demnächst drauf Achte, in sinvollen Situationen Spaces zu verwenden (siehe dem Bsp des Autors).
gepostet vor 16 Jahre, 5 Monate von Klaus
full ack.
gepostet vor 16 Jahre, 4 Monate von Todi42
Ich benutze spaces, weil sich mehre Zuweisungen an Variablem mit unterschiedlicher Länge mit unterschiedlichen Tablängen nicht am Gleichheitszeichen ausrichten lassen:

int a = 14;
int recht_langer_name = 15;
gepostet vor 16 Jahre, 4 Monate von Dunedan
Original von Todi42
Ich benutze spaces, weil sich mehre Zuweisungen an Variablem mit unterschiedlicher Länge mit unterschiedlichen Tablängen nicht am Gleichheitszeichen ausrichten lassen:

int a = 14;
int recht_langer_name = 15;

Und was geht daran mit Tabs nicht?
gepostet vor 16 Jahre, 4 Monate von Klaus
man müsste den Tabspace für diese Datei seperat setzen. Das übersteigt bereits den Funktionumfang der meisten Editoren.
Und wenn das nur über ein paar Zeilen gehen soll, dann geht es quasi gar nicht. Vielleicht mit vi oder emacs. *G*
Also hat Todi42 damit Recht in diesem Fall Leerzeichen zu benutzen. Andererseits ist diese Methode total unflexibel wenn man längere Listen hat.
gepostet vor 16 Jahre, 4 Monate von n26
Wie in dem Beitrag, der von Undeadable verlinkt wurde, beschrieben ist macht es in der Situation auch Sinn. Genauso wie es in anderen Situationen mehr Sinn macht Tabs zu nutzen.
gepostet vor 16 Jahre, 4 Monate von exe
Man sollte IMHO Tabs auch nur für die führenden Einrückungen verwenden.
$foo....=."blah";
$foobar.=."baz";
if($foo.==.$foobar).{
echo."blah";
}
So in der Art. Für Einrückungen auf Spaltenebene Tabs zu verwenden würde keinen Sinn machen, da damit der große Vorteil von Tabs - variable Spaltenbreite - verloren gehen würde. Schliesslich würden die Einrückungen nur mit bestimmten Tabbreiten stimmen.

Auf diese Diskussion antworten