Tabs oder Leerzeichen?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
L@w
Beiträge: 916
Registriert: 24.07.2002 08:12:30

Tabs oder Leerzeichen?

Beitrag von L@w » 16.02.2004 08:12:27

hallo,

ich stelle mit jetzt schon seit längeren die Frage was bei einem source code (php, python, java usw) besser ist. bei z.b. if-scheifen tabs zu einrücken zu verwenden oder rein nur leerzeichen?

wie mach ihr das?
cu L@w
---

LINUX - because booting is for adding hardware!

tylerD
Beiträge: 4068
Registriert: 10.07.2002 17:34:13
Wohnort: Halle/Saale
Kontaktdaten:

Beitrag von tylerD » 16.02.2004 09:01:56

Tabs ist wohl zu empfehlen, da die in den meisten Editoren einstellbar sind und somit auf die persönlichen Bedürfnisse anpassbar. Ausserdem merken sich viele Editoren ein Tab, so das du nach einem Enter wieder auf dem selben "Tablevel" bist wie vorher, was einem unterstützt schön strukturierten Code zu schreiben.

cu

Benutzeravatar
emge
Beiträge: 1525
Registriert: 20.10.2003 22:05:46
Lizenz eigener Beiträge: Artistic Lizenz
Wohnort: 50° 45' 0" N 12° 10' 0" E

Beitrag von emge » 16.02.2004 09:50:32

Tabs finde ich im Prinzip auch praktischer (siehe Posting von tylerD). Leider funktioniert das alles nur, wenn man allein an seinem Source-Code arbeitet oder sich alle Beteiligten streng an einen Styleguide halten.

Wir arbeiten hier mit mehreren Entwicklern an Java und DB-Projekten (PL/SQL auf Oracle) da verwendet jeder tausendundein verschiedene Tools und jedes geht mit Tabs/Leerzeichen anders um. Dazu kommt, dass wir ab und zu Code von dritter Seite bekommen, auf dessen Formatierung wir keinerlei Einfluss haben.

Mein Resumee aus der ganzen Geschichte: Jeder soll es so handhaben, wie er es am besten findet. Bevor Code ins Repository eingecheckt wird, wird mit einem Code-Beautifier (der entsprechend unserem Coding-Styleguide konfiguriert ist, drübergebügelt. Als kleinster gemeinsamer Nenner werden dort z. B. alle Tabs durch Leerzeichen ersetzt.

Grüße, Marco

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Beitrag von peschmae » 16.02.2004 22:28:32

If ist eine Bedingung/Verzweigung/WasAuchImmer aber sicher keine Schleife :twisted:

Grundsätztlich sind Tabs besser. Da verzählst du dich auch kaum je und du kannst es je nach Editor/Projekte passend einstellen.

Gute IDEs wie Eclipse können auch so konfiguriert werden, dass sie das Einrücken in den meisten Fällen automatisch richtig machen. :)

MfG Peschmä

sunfire
Beiträge: 23
Registriert: 04.02.2004 23:37:34

Beitrag von sunfire » 19.02.2004 23:31:01

Naja, Tabs sind auch nicht so das ware. Vor allem bei vielen Entwicklern an einem Projekt, die aber mit unterschiedlichen Tools arbeiten, würde ich leerzeichen Vorziehen. Denn sonst kommt gleich wieder die Diskussion mit der Anzahl der Tabs. Das sieht jeder anders, da jeder andere tabweiten hat. Mit einer Regelung wie 4 Leerzeichen zum Einrücken gibt es da keine Probleme.

Zum größten teil ist das ganze aber Geschmackssache.

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 20.02.2004 02:17:03

Mit der 4-Leerzeichenregelung ist man aber auch festgelegt. Ich bevorzuge "Linus-Style", d.h. 8 Spaces pro Indent, wenn Dein Programm dann hinten bei 80 Zeichen rausläuft stimmt was nicht, mit dem Code (Das funktioniert übrigens in Java vorne und hinten nicht). Der Vorteil von Tabs ist jetzt einfach, dass ich in meinem Editor einfach Tabs auf 8 stellen kann, und dann sieht der Code so aus, wie ich es gerne hätte. Jemand anderes der nur 4 Spaces bevorzugt stellt in seinem Editor die Tabs halt auf 4 und voilà...

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Benutzeravatar
emge
Beiträge: 1525
Registriert: 20.10.2003 22:05:46
Lizenz eigener Beiträge: Artistic Lizenz
Wohnort: 50° 45' 0" N 12° 10' 0" E

Beitrag von emge » 20.02.2004 07:27:33

pdreker hat geschrieben:...Das funktioniert übrigens in Java vorne und hinten nicht...
Nur so zu Befriedigung meiner Neugier: wie meinst'n das? Ist der Code dann schlecht lesbar? Kann Java das nicht?...

Grüße, Marco

[edit] Jetzt habe auch ich verstanden (danke Bert), das du vermutlich auf die Probleme mit Java bei einer 8er-Einrückung hinaus willst. Da muss ich dir recht geben, nur ist bei Java eigentlich eine 4er-Einrückung Standard ([1], [2]).

[1] http://java.sun.com/docs/codeconv/html/ ... .doc3.html
[2] http://jakarta.apache.org/cactus/partic ... tions.html
Zuletzt geändert von emge am 20.02.2004 11:13:04, insgesamt 1-mal geändert.

Benutzeravatar
eagle
Beiträge: 2282
Registriert: 05.11.2002 11:20:53
Wohnort: Berlin

Beitrag von eagle » 20.02.2004 09:07:39

Blöd an der Tab Regelung ist das man für jedes Programm mit dem man den Sourcecode betrachten will die Tab Size entsprechend verändern muss.

Die Sache mit den Tab ging bei unserem Projekt extrem in die Hose, so das der Source Code schlecht lesbar ist. Danach wurde sich auf die "4 Leerzeichen" geeinigt, dummerweise haben sich nicht alle daran gehalten ;).

Man sollte darauf achten nicht ständig zu wechseln, dass erschwert das Mergen nur unnötig.
peschmae hat geschrieben:Grundsätztlich sind Tabs besser. Da verzählst du dich auch kaum ..
8O Wer da selber zählt der sollte vielleicht einen richtigen Editor zum Programmieren benutzen!

eagle
"I love deadlines. I love the whooshing sound they make as they fly by." -- Douglas Adams

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 20.02.2004 19:09:50

emge hat geschrieben:
pdreker hat geschrieben:...Das funktioniert übrigens in Java vorne und hinten nicht...
Nur so zu Befriedigung meiner Neugier: wie meinst'n das? Ist der Code dann schlecht lesbar? Kann Java das nicht?...
Grundsärzlich ist das kein technisches Problem, Java stört sich daran nicht. Aber während in C oder C++ Identifier eher "count" oder "listPtr" heissen, sind sie in Java (schon der API) sehr lang, z.B. "ArrayIndexOutOfBoundsException". Wenn man jetzt noch 8 Spaces tief einrückt, und das 80 Zeichen Limit beachtet, wandert man bei Java viel zu schnell rechts aus dem Fenster...

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Benutzeravatar
emge
Beiträge: 1525
Registriert: 20.10.2003 22:05:46
Lizenz eigener Beiträge: Artistic Lizenz
Wohnort: 50° 45' 0" N 12° 10' 0" E

Beitrag von emge » 20.02.2004 20:54:27

pdreker hat geschrieben:
emge hat geschrieben:
pdreker hat geschrieben:...Das funktioniert übrigens in Java vorne und hinten nicht...
Nur so zu Befriedigung meiner Neugier: wie meinst'n das? Ist der Code dann schlecht lesbar? Kann Java das nicht?...
Grundsärzlich ist das kein technisches Problem, Java stört sich daran nicht. Aber während in C oder C++ Identifier eher "count" oder "listPtr" heissen, sind sie in Java (schon der API) sehr lang, z.B. "ArrayIndexOutOfBoundsException". Wenn man jetzt noch 8 Spaces tief einrückt, und das 80 Zeichen Limit beachtet, wandert man bei Java viel zu schnell rechts aus dem Fenster...
Das mag sein, aber niemand verwendet eine 8er Einrückung in Java.

Ansonsten gilt dann auch nur das was du schon gesagt hast: wenn dann der Code aus den Zeilen hinausläuft, ist am Code etwas nicht in Ordnung und man sollte sich mal schnellstens ans Refactorisieren machen oder sich mal überlegen, ob man Variablen mit unendlich langen Namen definieren muss.

Das Klassen-Namen gelegentlich recht lang ausfallen halte ich persönlich nicht unbedingt für einen Nachteil sondern eher förderlich für die Lesbarkeit des Codes.

Grüße, Marco

Antworten