Skip to content

Tabs oder Leerzeichen zur Quelltext-Formatierung?

Einmal eine Frage in die Runde, weil die Diskussion hier intern aufkam: Tabs oder Leerzeichen zur Quelltext-Formatierung? Oder beides?

Ich freue mich über alle Kommentare, objektiv wie subjektiv! :-)

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

.t0mmy

Ich als Lehrer rate meinen Schülern zu Tabs, weil:
- in manchen Sprachen ohnehin semantisches Zeichen (Python)
- die Einrückung individuell eingestellt werden kann (1 Tab entweder 2 oder 4 Zeichen, wie man es mag)
Aber ich bin schon froh, wenn es überhaupt benutzt wird :)

hugo

Wenn Du lehrst, lege Deinen Schülern doch bitte PEP8 nahe: http://legacy.python.org/dev/peps/pep-0008/

Dann ist das die Frage zu Tabs auch entschieden.

Alphager

Ich persänlich bevorzuge aus den schon genannten Gründen Tabs, beuge mich aber der deutlichen Mehrheit und nutze Spaces.

hugo

Kommt drauf an. :)

In Python zB verstossen Tabs gegen die Style-Guidelines, in Go darf man keine Leerzeichen verwenden.

Generell tendiere ich zu Leerzeichen.

Kai

Natürlich immer Leerzeichen, gute Editoren (z.B: Eclipse) ersetzen die Tab-Taste direkt durch eine zu konfigurierende Anzahl von Leerzeichen. Vorteil ist, dass die Einrückung unabhängig vom Editor immer gleich ist. Selbst wenn man sich den Code in Word anguckt ;)

uwe

Sorry aber das ist eher ein Zeichen für einen schlechten Editor. Ein guter wirft genau das in das File was ich eingebe. Für alles andere kann ich in meinem Editor shortcuts definieren. Ich brauch keine Software die glaubt schlauer zu sein als ich. Zur Frage selbst: Tabs, dann kann ich die Einrückung ja nach Font/Gusto/Monitorbreite definieren und es funktioniert auch bei Wahnsinnigen die fürs Programmieren in ihrem Editor eine Schriftart mit Proportionalbreite benutzen.

jemand

Falsch. Tabs und im Editor seiner Wahl stellt man dann ein, wie diese dargestellt werden sollen und zwar gerade weil jeder in der Angelegenheit seinen persönlichen Liebling hat.

Leerzeichen gehen einem nur auf den Sack.

NetzBlogR

Tabs. Die verbrauchen bei gleichem Abstand viel weniger Speicher als Leerzeichen. :-)

Kai

Jawoll! Außerdem sind Programmierer faul, deswegen präferiere auch ich einen Tastendruck (Tab) gegenüber vieren (Leerzeichen). Bei verschachtelten Sachen lohnt sich das!

Mo

Tabs bzw. die Tab-Taste. Je nach Editor und Sprache entsprechend dem Style-Guide entsprechend konfiguriert.

FunThomas

Ganz klares "Kommt drauf an".
Wenn man alleine auf dem Code arbeitet oder ganz sicher immer der gleiche Editor (mit der gleichen Tab-Definition) verwendet wird, ist Tab die bessere Wahl.

Wenn man aber (wie ich in den letzen Wochen) Code in die Finger kriegt, der von verschiedenen Programmierern mit verschiedenen Editoren bearbeitet wurde und deswegen eine fröhliche Durchmischung von Tabs, definiert als 4 Leerzeichen, Tabs, die offensichtlich mal 8 Leerzeichen repräsentierten und echten Leerzeichen enthält, dann schmeisst man irgendwann verzweifelt alle Tabs raus.

Besonders lustig übrigens bei Python-Code...

Bluewind

Tabs zum Einrücken, Leerzeichen für Ausrichtung (alignment bei z.b. mehrzeiligen Funktionsaufrufen).

Warum sollte ich meine Vorliebe für 4 Leerzeichen anderen Leuten die meinen Code lesen aufzwingen? Mal abgesehen davon, dass ich meine Vorliebe eventuell später mal ändere und dann vielleicht 2, 6 oder 8 Leerzeichen will. So ist das einfach ne Zahl in der vimrc und fertig.

Bei Projekten die schon existieren natürlich das verwenden was das Projekt nutzt.

Misel

Wird das ein Test für die notwendige Zeit zur Erfüllung von Godwin's law? :D

Zur Frage selbst: Ich bevorzuge Tabs. Die Breite kann man bei gleichen Dateiinhalt (und geringerem Speicherverbrauch) individuell anpassen.

Leider kommen viele Leute damit scheinbar nicht klar und der Code wird verhunzt, sobald die Anzahl der Coder, die an einem Projekt arbeiten größer als 0,5 wird. Auf Arbeit wurde sich daher auf eine verbindliche Anzahl an Spaces geeinigt, was dann mit Tools wie "Lint" erzwungen wird.

S2B2

Tabs! Aus nahezu allen hier genannten Gründen.

Jörg

Jeder wie er/sie mag. Ein guter Editor kann den Code so neu formatieren, wie man es gerade haben möchte.
Wir arbeiten mit teilweise 30 Jahre altem Code, der wahrscheinlich noch ausgedruckt wurde. Einmal Steg+Alt+F und schon ist der Code wieder lesbar und auf meinen breiten Monitor angepasst.

Diese ganzen Style guides sind imho relativ überflüssig, sobald die Editoren den Code formatieren können. Und mit clang-format(ok das ist c/c++ und nicht html) wird das auch immer besser.
Und diese sinnlose Begrenzung auf 80 Zeichen, die viele verwenden ist bei den heutigen breitbildmonitoren Kontraproduktiv, weil der halbe Bildschirm leer ist.

Malte

Wir haben eine Pre-Commit-Hook: Dateien mit Tabulatoren werden rejected ;-)

Kopernikus

Ich bevorzuge Tabs. Eben weil ich die Anzeigebreite einstellen kann und auch mit einem einfachen Editor sind die Einrückungen schneller mit Tabs gemacht als mit x Leerzeichen.

damage

VI IST BESSER ALS EMACS!!!!

Diese Aussage ist in IT Kreisen ungefähr genauso Objektiv diskutierbar wie die Frage nach Tabs oder Leerzeichen.

Andere Idee: das VCS zieht diese Problematik glatt, ersetzt also Tabs durch Leerzeichen oder anderesherum. Das kannst du per Order Mufti entscheiden. Jeder nimmt sich dann sein Editor seiner Wahl und baut das so lange um, bis ihm das gefällt. Evtl. kann man auch beim checkout aus dem VCS das gleich auf die jeweiligen Nutzer anpassen?!

Aber das festzulegen wird dir nicht gelingen (Erfahrung). Entweder du lebst damit das es im Source mal so und mal so auftaucht (was ich persönlich nicht so schön finde) oder baust irgendwas technisches drum rum, damit deine Mitarbeiter wie gewohnt arbeiten können. Eine andere Lösung sehe ich hier nicht :)

Gruß
Daniel

killerbees19

Ganz klar Tabs! Meine Gründe wurden bereits alle mehrfach genannt…

hoschi

Einrueckung: Tabs
Ausrichtung: Leerzeichen

Begruendung:
Mit Tabs laesst sich Code bequem Einruecken und die Einrueckung kann man an die eigenen Praeferenzen (meist 4 oder 8 Zeichen) anpassen. Die Eingabe von Leerzeichen ist Aufwaendiger und zwingt dem Leser die Einrueckung des Autors auf. Eine schlimme Unsitte ist die Ersetzung von Tabs durch Leerzeichen oder Umgekehrt, weil es keine gute Loesung ist sondern ein schlechter Kompromiss.

Erklaerung:
Die meisten Leute unterscheiden nicht zwischen Tabs (Einrueckung) und Leerzeichen (Ausrichtung), daher kommt das leidige Thema.

Beispiel:
Die Einrueckung eines Blocks erfolgt mit Tabs, die Kommentare dahinter richtet man bitte mit Leerzeichen aus.

Bonus:
Das ist nicht nur ein guter Kompromiss, sondern eine richtige Loesung.

Manuel Schmitt (manitu)

Die sinnvollste Empfehlung, die ich je gelesen habe. Exakt so handeln wir es intern auch!

john

Man einigt sich im jeweiligen Projekt auf einen Stil und konfiguriert dann seinen Editor entsprechend - Thema erledigt.

Bei eigenen Geschichten ziehe ich i.d.R. 4 Zeichen breite Tabs vor (+ Spaces zur Einrückung), außer für Python, da greife ich zu PEP8.

pikapika

Bei unserem Produkt, welches seit über 30 Jahren auf dem Markt ist und auf offenen Plattformen (Windows/Unix) und Mainframes läuft, haben wir uns auf Leerzeichen geeinigt. Einfach deshalb, weil jeder unterschiedliche Editoren nimmt und meist die Tabs anders umgesetzt werden. Klar war nicht jeder damit zufrieden, doch auf lange sicht (s.o) hat es sich bewährt. Auch wenn mancher eclipsianer/VisualStudio-aner/vi-aner und sonstiger Indi-aner Kröten schlucken mussten.


dat pika²

Kommentar schreiben

Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.

Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden. Bitte beachten Sie, dass Ihr Browser Cookies unterstützen muss, um dieses Verfahren anzuwenden.
CAPTCHA

BBCode-Formatierung erlaubt
Formular-Optionen