Codestyle: Einrücken von Leerzeilen?
-
Hi,
die Frage mag zwar möglicherweise etwas eigenartig anmuten, aber mich würde dennoch interessieren, ob ihr Leerzeilen einrückt. Mit Leerzeile ist eine Zeile gemeint, die nur whitespaces enthält, also mindestens linefeed, jedoch keinen Code oder Kommentare.
Wie man es damit hält, hängt natürlich auch stark vom Texteditor ab. Habt ihr euch vielleicht trotzdem mal darüber Gedanken gemacht? Leerzeilen miteinrücken oder lieber nicht?
Gerade bei so Späßen wie Python -- wo es afaik egal ist -- ist mir deswegen immer etwas unwohl bei der Sache.
-
Meine IDE macht das für mich.
-
cooky451 schrieb:
Meine IDE macht das für mich.
Ja klar, aber wie?
-
Ich mach Leerzeilen leer.
-
Es ist wichtig, dass keine Zeile mit einem Leerzeichen beendet wird. Auch Leerzeilen müssen unbedingt immer ganz leer sein. Sonst gehen die compilezeiten in die Höhe, da der Parser immer unnötigerweise Leerzeichen überspringen muss.
Einrückungen können mit Tabs erledigt werden. Ein Tab ersetzt mehrere Leerzeichen und spart dadurch compilezeit. Vom Speicherplatz auf der Platte ganz zu schweigen. Wer viel einrückt verschwendet auf seiner Festplatte sehr schnell mal das eine oder andere Kilobyte. Und wenn man daran denkt, was so ein Kilobyte früher mal gekostet hat...
Na ja - Kilobytes sind natürlich billiger geworden. Daher kann es schon Situationen geben, wo die eine oder andere Einrückung doch zu verschmerzen ist.
-
Leerzeilen immer leer lassen! Anderweitig sieht es extrem hässlich aus, wenn man whitespaces im Editor anzeigen lässt. Und Versionskontrollsysteme beschweren sich auch.
Zum Einrücken Tabs und Spaces mischen! Das klingt antiintuitiv, ist aber besser so: "tabs for indentation, spaces for alignment". Das stellt sicher, dass unabhängig von Tabbreite der Quelltext richtig angezeigt wird.
Das gilt nicht für Python, da sollte man sich an PEP 8 halten, und am besten im Editor den PEP 8 checker anmachen. Dann muss ich nicht so (würfel)husten wenn ich euren code lese
-
Ein Ruecker schrieb:
"tabs for indentation, spaces for alignment". Das stellt sicher, dass unabhängig von Tabbreite der Quelltext richtig angezeigt wird.
Du hast in einen Satz gebracht, woran ich im C++ Forum über mehrere Seiten gescheitert bin.
-
314159265358979__ schrieb:
Ein Ruecker schrieb:
"tabs for indentation, spaces for alignment". Das stellt sicher, dass unabhängig von Tabbreite der Quelltext richtig angezeigt wird.
Du hast in einen Satz gebracht, woran ich im C++ Forum über mehrere Seiten gescheitert bin.
Ouch sind wir schon wieder gebannt?
-
Edit: Nein, doch nicht.
-
Zeus schrieb:
Ouch sind wir schon wieder gebannt?
Wieso Ouch? Tut doch nicht weh. Das einzig nervige ist, dass ich nie ein Email krieg, wie lange, wieso, etc.
-
schlaumeier2 schrieb:
Einrückungen können mit Tabs erledigt werden. Ein Tab ersetzt mehrere Leerzeichen und spart dadurch compilezeit.
Tabs sind schlechter Programmierstil.
Frag mich nicht warum, aber das sagte immer mein Professor im Fach Programmieren (wir haben mit C++ progammiert).Er ist auch so einer der Oldskool Professoren, also sicher schon über 60.
Der hat früher möglicherweise auch mit vi, edit, edlin, emacs und Co programmiert.
Seine Programmiersprachen dürften damals das üblich gewesen sein, Fortran, Cobol, C und später dann C++. Assembler dürfte der auch können.
Also so ein richtiger Oldsckool-Entwickler.Und der sagt, Tabs sind pfui.
Und da war die Compilezeit und der Speicherplatz sicher noch viel wichtiger.
-
314159265358979__ schrieb:
Zeus schrieb:
Ouch sind wir schon wieder gebannt?
Wieso Ouch? Tut doch nicht weh. Das einzig nervige ist, dass ich nie ein Email krieg, wie lange, wieso, etc.
Schätzung: Weil du wieder ausfallend geworden bist, sich 'n paar über dich beschweren, ca. eine Woche?
Edit: Widerspruch: HF!! Was laberst du da! Wer proggt ohne Tabs? Ja, ein Oldschool-Progger hat hier nix zu suchen, wahrscheinlich schreibt er noch iostream.h.
-
Professoren haben ja auch üblicherweise keine Ahnung.
-
Hacker schrieb:
Edit: Widerspruch: HF!! Was laberst du da! Wer proggt ohne Tabs? Ja, ein Oldschool-Progger hat hier nix zu suchen, wahrscheinlich schreibt er noch iostream.h.
Siehe:
Damit das ganze sauber funktioniert sollte man immer die gleiche Anzahl von Zeichen einrücken. Früher war es üblich, mit Hilfe eines Tabs einzurücken. Somit ergab sich eine Laufweite von 8 Zeichen. Heutzutage ist es eher üblich Tabs zu vermeiden und weniger einzurücken. Heute übliche Größen sind 4 Leerzeichen oder 2 Leerzeichen:
http://www.proggen.org/doku.php?id=c:style
Er hat uns auch die Einrückung mit 2 Leerzeichen beigebracht, damit wurden Tabs völlig unnötig.
Insofern ist das was unser Prof uns gelehrt hat, hoch modern. Du machst es falsch. Bist du Java Programmierer? Da ist es nämlich normal mit riesigen Tabs zu arbeiten, siehe die ganzen IDEs wie Eclipse und Co, die mindestens 4 zeichen mit einem Tab einrücken.
-
Hier sind sich die Leute übrigens auch einig, ohne Tabs zu arbeiten:
http://www.mikrocontroller.net/topic/130218Einer Begründet es auch.
-
Die Google Coding Guidlines schreiben auch vor Leerzeichen zu verwenden und keine Tabs:
http://programmers.stackexchange.com/questions/114560/c-spaces-vs-tabs
Fazit:
Wer Tabs nimmt, der hat keine Ahnung.
Und mein Professor hatte Recht.Aber deswegen bist du ja auch daheim selbst beigebrachter Hacker und kein an einer Hochschule mit akademischem Grad studierter Informatiker.
Daheim brüht man sich oft schlechte Angewohnheiten an, die man dann nicht mehr los wird.
-
Die Boost Library verlangt auch Leerzeichen anstatt Tabs.
Und die Boost Entwickler müssen es ja wissen.
-
Zum Thema:
use what ever you want for indenting, but use spaces for aligning.
Genau darum macht es Sinn auf Tabs gänzlich zu verzichten.
Denn dann kann man in seiner IDE bzw, in seinem Editor einstellen, daß alle Tabs beim Speichern in Leerzeichen umgewandelt werden sollen und beim eigentlichen Programmieren spart man sich dann Tipparbeit, weil man beim Ausrichten dann auf die Tab Taste zurückgreifen kann, ohne das es später stört.
Die Tabs werden ja dann schließlich vom Editor in Leerzeichen umgewandelt.Wer also nur Leerzeichen für den gespeicherten Code benutzt, ist somit bei der Arbeit viel effizienter.
Eimfaches Beispiel
Ihr könnte ja mal so etwas ausrichente:int megasuperlang 1; double kurz 2.0; char c 'c'; String megalangersuperstring "blabla";
Wer hier zwischen den Wörtern die Tabs-Taste benutzen darf, weil der Editor sowieso alle Tabs in Leerzeichen umwandelt, erspart sich sehr viel Zeit beim Programmieren.
Somit habt ihr nun auch eine gute Begründung warum Tabs Pfui sind.
-
Also wir verwenden bei unseren Projekten grundsätzlich Leerzeichen. Man kann sich natürlich darüber streiten, aber mein Argument ist, dass ich das leichter prüfen kann.
Ich kann einfach im Editor (oder mit grep über alle Dateien) nach Tabs suchen. Wenn ich einen finde, ist die Regel gebrochen.
Andersrum wenn Tabs zur Einrückung verwendet werden und ich nach Leerzeichen suche, werde ich wohl eine Menge false-positives bekommen da fast alle Codezeilen Leerzeichen enthalten
.
Wenn ich Code lese, und er sieht gut aus, ist es nur bei Leerzeichen gewährleistet, dass der Code auch bei anderer Tabeinstellung des Editors noch gut aussieht. Ich sehe einfach zu oft Codestellen, wo eine Zeile mit Tabs eingerückt ist und die nächste Zeile mit Spaces. Und die übernächste Zeile verwendet 2 Tabs, die mit einem Space getrennt sind. Solche Sachen sind einfach zu üblich. Und mit grep kann ich solche Sachen aber auch sehr einfach lokalisieren.
-
Widerspruch schrieb:
Hacker schrieb:
Edit: Widerspruch: HF!! Was laberst du da! Wer proggt ohne Tabs? Ja, ein Oldschool-Progger hat hier nix zu suchen, wahrscheinlich schreibt er noch iostream.h.
Siehe:
Damit das ganze sauber funktioniert sollte man immer die gleiche Anzahl von Zeichen einrücken. Früher war es üblich, mit Hilfe eines Tabs einzurücken. Somit ergab sich eine Laufweite von 8 Zeichen. Heutzutage ist es eher üblich Tabs zu vermeiden und weniger einzurücken. Heute übliche Größen sind 4 Leerzeichen oder 2 Leerzeichen:
http://www.proggen.org/doku.php?id=c:style
Er hat uns auch die Einrückung mit 2 Leerzeichen beigebracht, damit wurden Tabs völlig unnötig.
Insofern ist das was unser Prof uns gelehrt hat, hoch modern. Du machst es falsch. Bist du Java Programmierer? Da ist es nämlich normal mit riesigen Tabs zu arbeiten, siehe die ganzen IDEs wie Eclipse und Co, die mindestens 4 zeichen mit einem Tab einrücken.
Also die Seite als Referenz zu nehmen, sollte man vorsichtig sein, immerhin ist das Beispiel so gröttig schlecht, das vermittelt nix, weil sowohl "Guter Stil" und "Schlechter Stil" einfach schlechter Code ist.