Ist die Beschränkung auf 80 Zeichen in Zeiten von Breitbildmonitoren immer noch relevant? [geschlossen]

56

Auf einem Breitbildmonitor können problemlos mehr als 80 Zeichen gleichzeitig ohne Bildlaufleisten angezeigt werden. sogar linus torvalds sieht die begrenzung von 80 zeichen als veraltet an .

Ist die Beschränkung auf 80 Zeichen in Zeiten von Breitbildmonitoren immer noch relevant?

Lesmana
quelle
1
Es gibt einen sehr guten Grund, die Zeilen in zB Eclipse kurz zu halten. Auf diese Weise können Sie Ihre Programme auf einem normalen Drucker in einer lesbaren Schriftart ohne Zeilenumbruch drucken .
In welchem ​​Zusammenhang? Wenn Sie in einem bestimmten Programmierkontext nachfragen, würde ich für eine Wiedereröffnung stimmen.
Nicole
Der Zeilenumbruch in Visual Studio ist fehlerhaft, sodass die meisten Benutzer ihn deaktiviert haben. Stattdessen setzen sie Zeilenumbrüche von Hand ein. Dies sieht für jemanden mit einer anderen Bildschirmbreite furchtbar aus. visualstudio.uservoice.com/forums/121579-visual-studio/…
Oberst Panic

Antworten:

28

Es gibt mehrere Gründe, die Beschränkung auf 80 Zeichen beizubehalten (oder eine Beschränkung auf 74 Zeichen ist sogar noch besser). Dadurch bleibt der Code weniger als 80 Spalten, selbst wenn Diff-Markierungen und E-Mail-Anführungszeichen hinzugefügt werden, wenn Sie die Codeüberprüfung für ausführen Mailinglisten).

Sogar in der Zeit der Breitbildmonitore habe ich gerne mehrere Fenster, die nebeneinander geöffnet sind und verschiedene Teile des Codes zeigen. Zum Beispiel habe ich normalerweise einen Webbrowser und eine E-Mail auf einem Bildschirm geöffnet und zwei Dateien und ein Terminal nebeneinander auf einem zweiten Monitor. Wenn Sie Zeilen mit mehr als 80 Spalten haben, müssen Sie sich mit dem Editor befassen, der die Zeilen umbricht (was hässlich ist und das Navigieren im Code erschwert), oder Sie müssen die Fenster so erweitern, dass nicht so viele auf den Bildschirm passen Einmal.

Auch wenn Sie normalerweise nicht auf diese Weise bearbeiten, werden Sie Dateien mit angemessenen Zeilenlängen zu schätzen wissen, die die Anzeige Ihres Diff erleichtern, wenn Sie jemals ein Side-by-Side-Diff-Tool verwenden.

Es gibt auch ein Problem der Codedichte. Ich mag es, viel Kontext beim Lesen von Code zu haben. Es ist viel, viel schneller, ein Fenster auf und ab zu schauen, als es zu scrollen. Wenn Sie sehr lange Zeilen haben, tendieren Sie auch dazu, Zeilen zu haben, deren Länge stark variiert, was zu viel verschwendetem Platz auf dem Bildschirm führt und insgesamt weniger Code auf den Bildschirm passen kann.

Und schließlich, wenn Sie sehr lange Zeilen haben, bedeutet das im Allgemeinen, dass Sie sehr komplizierte Zeilen, tiefe Einrückungen oder sehr lange Bezeichner haben. All dies kann ein Problem sein. Komplizierte Zeilen tun wahrscheinlich zu viel. Wenn Sie es in mehrere einfachere Zeilen aufteilen können, sollten Sie es wahrscheinlich tun. Tiefes Einrücken bedeutet, dass Sie wahrscheinlich zu viele Schleifen und Bedingungen verschachteln, wodurch der Code verwirrend fließen kann. Betrachtung der Umgestaltung in mehrere Funktionen. Und wenn Ihre Kennungen zu lang sind, kann dies das Lesen Ihres Codes sehr erschweren. Menschen erkennen Wörter im Allgemeinen als einzelne Einheiten. Sie lesen nicht jedes Zeichen einzeln, sondern betrachten die Gesamtform des Wortes. Lange Bezeichner sind auf diese Weise schwerer zu unterscheiden. Wenn sie so lang sind, enthalten sie normalerweise redundante oder sich wiederholende Informationen.

Obwohl es immer noch eine gute Praxis ist, Code unter 80 Spalten zu halten, ist dies keine der Regeln, die religiös befolgt werden müssen. Ich schlage vor, dass Sie versuchen, Ihren gesamten Code unter 80 Spalten zu halten, aber wenn er einfach nicht passt, machen Sie sich keine allzu großen Sorgen.

Brian Campbell
quelle
3
Einverstanden. Lange Bezeichner werden jedoch manchmal empfohlen (durch Codierungsrichtlinien wie "Verwenden von aussagekräftigen Namen" oder "Vermeiden von kryptischen Abkürzungen") oder erforderlich (wie std::vector<...>::const_iterator), obwohl im letzteren Fall die Situation normalerweise durch Typedefs gemildert werden kann.
Musiphil
Gute Gründe. Ich bin mir nicht sicher, ob es auf die genaue Länge der Linie ankommt, solange Ihr Team (oder Ihre Mailingliste?) Dem zustimmt. Ich persönlich folge Onkel Bobs Vorschlag, niemals mehr als 120 Zeichen zu verwenden.
Allan
1
@musiphil Ja, deshalb habe ich den letzten Absatz eingefügt. Ich bin in C ++ auf Zeilen gestoßen, in denen ich beim Deklarieren der Methode den Klassennamen, den Methodennamen und den Rückgabetyp einfach nicht in eine Zeile mit 80 Spalten einfügen konnte. Anstatt wirklich seltsame Zeilenumbrüche vorzunehmen, ist es besser, nur die 80-Spalten- (oder 100-Spalten-) Regel für diese eine Zeile zu brechen.
Brian Campbell
46

Wenn ich meine Zeilen auf weniger als 100 Zeichen beschränke, können zwei Editorfenster nebeneinander auf einem Breitbildmonitor angezeigt werden. Es ist sehr nützlich, sowohl die Klassenheaderdatei als auch die Implementierung gleichzeitig sichtbar zu haben oder auf der einen Seite Code zu haben, der den Code auf der anderen Seite aufruft. Und wenn ich die Zeilen kurz halte, brauche ich keine horizontale Bildlaufleiste in meinen Editorfenstern, wodurch ich mehr vertikalen Raum bekomme.

80 Zeichen mögen veraltet sein, aber es ist sinnvoll, die Dinge im Rahmen der Vernunft zu halten.

Niall C.
quelle
1
+1, ich öffne häufig mehrere Quelldateien nebeneinander in Vim oder anderen Editoren. Mit einer ausreichend kleinen Schrift und einem relativ schmalen rechten Rand kann ich mir sehr schnell einen guten Überblick über das Projekt verschaffen und sogar viele Dokumentationen öffnen.
greyfade
4
80 Zeichen sind immer noch relevant, da viele Benutzer standardmäßig so breite Terminals und Editoren verwenden. Wenn Sie sich also auf 80 beschränken, sind Sie diesen Leuten gegenüber freundlich und müssen nicht alle Fenster neu anordnen oder Zeilenumbrüche oder horizontales Scrollen ausführen.
Brian Campbell
1
80 Zeichen ist immer noch angemessen; Wenn Sie länger als das laufen, wird übermäßig verschachtelter Code gefördert (anstatt neu zu gestalten!) und es ist außerordentlich nützlich, viele Fenster nebeneinander zu haben. Das Hinzufügen eines weiteren Monitors erhöht nur die Anzahl der Fenster, die Sie gleichzeitig sehen können!
Donal Fellows
1
80 ist vielleicht VMS-freundlich. Verzeihen Sie mein neues Zeitalter Denken, aber wir sollten das Limit wo möglich verlängern und es wo nötig behalten ..
Ross
29

Ich glaube nicht, dass der Monitor etwas damit zu tun hat - zumindest nicht mehr.

Wenn Sie eine Zeile mit 80 Zeichen nicht codieren können, ist dies wahrscheinlich ohnehin ein Zeichen für einen schlechten Code. Zu komplexe Ausdrücke. Zu tief eingerückt. usw. Sie sollten aufhören und überdenken, was Sie tun.

Aber wenn Sie sicher sind, dass der Code mehr als 80 Zeilen benötigt, dann machen Sie weiter. Ich denke, es ist besser, einen Code zu haben, der die 80 Zeichen überschreitet, als idiomatische Änderungen hinzuzufügen, nur um ihn kleiner zu machen.

Ich persönlich hasse solche Sachen:

ret = my_function(parameter1, \
                  parameter2, \
                  parameter3, parameter4);

Anstatt einfach:

ret = my_function(parameter1, parameter2, parameter3, parameter4);
Cesar Canassa
quelle
5
Sicher, wenn Zeile 3 im ersten Beispiel nicht zu lang ist, kann Zeile 2 in Zeile 1 kombiniert werden, wodurch es viel lesbarer aussieht. (Welche Sprache erfordert Zeilenumbrüche in Klammern?)
1
Ahh, das ist nur ein Pseudocode, den ich geschrieben habe. Aber ich denke, C erfordert es.
Cesar Canassa,
4
Nur in mehrzeiligen Makrodefinitionen, die selten sind (oder sein sollten). Die Auswahl der maximalen Zeilenlänge wird dadurch erheblich beeinflusst (das Beibehalten solcher Backslashes macht keinen Spaß). Deshalb bin ich gespannt, warum Sie sie anzeigen. Scheint ein Strohmann zu sein ?
2
Wenn ich mir die Mühe machen würde, eine Zeile in einem Funktionsaufruf zu unterbrechen, würde ich jeden Parameter in eine eigene Zeile setzen, die um eine Ebene eingerückt ist.
Starblue
20

Zur Kodierung?

Sicherlich ja. Normale Menschen können nicht gut genug lesen. Mit wenigen Spalten bewegen Sie Ihre Augen weniger, konzentrieren sich besser und verzögern die Müdigkeit. Es ist ein minimaler Gewinn, aber ein wichtiger.

Maniero
quelle
3
Obwohl ich der Meinung bin, dass Code sich stark von Prosa unterscheidet, ist es anstrengend, Code zu lesen, der in regelmäßigen Abständen (dh Prosa wäre im Allgemeinen viel konsistenter) Zeilen auf über 120 Spalten ausdehnt.
6

Ja, es gibt Gründe, die Länge der Codezeile zu begrenzen:

  1. Obwohl unsere Bildschirme immer breiter wurden, müssen Sie manchmal Ihren Code ausdrucken. Wenn nur aus diesem Grund .
  2. Diff-Viewer zeigen häufig Linien mit vertikaler Teilung an - dies wird schwieriger, wenn die Linien so lang sind, wie es ein breiter Bildschirm zulässt.

Allerdings ist 80 ein bisschen zu wenig. Dennoch ist eine gewisse Einschränkung als Konstruktionsprinzip wahrscheinlich eine gute Idee.

Ich würde sagen , dass extra lange Linien sollen nicht verboten werden, weil sie gelegentlich sind notwendig. Wenn die meisten Funktionen jedoch nur auf einem 30-Zoll-Bildschirm angezeigt werden können, weist der Code einige Probleme auf.

Assaf Lavie
quelle
5

Es ist willkürlich, aber die Lesbarkeit ist nicht willkürlich begrenzt. Ich finde, dass sehr breite Textspalten sehr schwer zu scannen und zu lesen sind, unabhängig davon, ob es sich um Code oder Prosa handelt. Wie viele andere Antworten bereits gezeigt haben, wird nicht nur dieser Code auf Ihrem Bildschirm angezeigt. Es ist großartig, wenn zwei oder mehr Codefenster gleichzeitig geöffnet sind und auf einen Breitbildmonitor passen.

Jerwood
quelle
3

Es ist wahrscheinlich nicht relevant, genau ein Limit von 80 Zeichen zu wählen. Was würde sich ändern, wenn das Limit beispielsweise 85 beträgt?

Heutzutage verwendete Monitore haben zwar höhere Auflösungen, in einem Texteditor / einer IDE wird jedoch nicht der gesamte Platz in der Textansicht beansprucht. Im Editor, den ich verwende, wird links die Liste der im Projekt enthaltenen Dateien angezeigt.

Die in einem Netbook oder einem Notebook verwendete Auflösung ist nicht die gleiche, die in Monitoren verwendet wird. Es ist wahrscheinlich sinnvoll, eine Zeichenbeschränkung zu verwenden, die für niemanden "Probleme" verursacht.

kiamlaluno
quelle
5
80 Zeichen war die harte Grenze der Anzahl der Spalten auf Lochkarte!
ChrisF
5
Es spielt keine Rolle, was der Standard ist, aber wenn alle nach demselben Standard arbeiten, erleichtert dies das Leben.
Skilldrick
2

Das hängt wirklich von der Entwicklungsumgebung ab.

Zum Beispiel gibt es in einem großen Unternehmen mit Tausenden von Entwicklern wahrscheinlich Hunderte von Menschen, die sich im Laufe der Lebensdauer eines Produkts einen Teil seines Codes ansehen müssen. Bei so vielen Menschen wird es sicher einige geben, die aus irgendeinem Grund (ältere Hardware, Netbooks usw.) mit einer Auflösung von 800 x 600 oder weniger arbeiten. Es hat einen gewissen Wert, sie unterzubringen.

In meiner 25-köpfigen Firma sage ich jedoch, scheiß drauf. Wir alle verwenden zwei moderne Monitore mit einer maximalen Auflösung von 120 bis 140, so lautet die informelle Richtlinie.

Fischtoaster
quelle
2

Ein Limit zu haben macht sicherlich Sinn. Die Beschränkung auf 80 Zeichen ist jedoch zu eng. Ich bevorzuge so etwas wie 96 Zeichen. Es ist breit genug für den Großteil des Codes, mit dem ich zu tun habe, und schmal genug, damit zwei Dateien nebeneinander abgelegt werden können, um sie zu unterscheiden (auf einem Breitbildschirm).

Ich glaube, dass die Lesbarkeit von Code alle anderen Bedenken übertrifft. Und mit 96 Zeichen pro Zeile kann der Code deutlich lesbarer gemacht werden als mit 80.

Ich kaufe mir nicht das Argument, dass die meisten Leute ihre Terminals auf 80 Zeichen setzen, nein, dass Drucker Zeilen umbrechen müssen, die länger als 80 Zeichen sind. Es ist keine harte Grenze, wie es in der (fernen) Vergangenheit war. Sie können das Terminal und die Druckerbreite einfach auf 100 Zeichen einstellen.

alexeiz
quelle
1

Nein, es ist nicht mehr relevant:

  • Die meisten in Anwendungen und im Web verwendeten Schriftarten haben ohnehin keine feste Breite. Mit anderen Worten, 80 Zeichen! = 80 Zeichen.
  • Wie Sie sagten, haben sich die Bildschirmbreiten geändert - 80 Zeichen sind keine sinnvolle Grenze.

80 Zeichen waren wirklich eine Richtlinie für Schriftarten mit fester Breite in einer Konsolenumgebung.

Natürlich, wenn Sie in einer Konsolenumgebung immer noch eine Schriftart mit fester Breite verwenden ... dann sind 80 Zeichen sinnvoll :)

Damovisa
quelle
3
Ich bin mir ziemlich sicher, dass er sich auf die Verwendung einer Beschränkung von 80 Zeichen im Quellcode bezog, die fast überall in monospaced Schriftarten angezeigt wird.
Fishtoaster
1
Hmm ... in diesem Fall ... immer noch nicht, aber aus anderen Gründen :)
Damovisa
1
80 Zeichen war die harte Grenze der Anzahl der Spalten auf Lochkarte!
ChrisF
0

Wenn Sie einen Editor in einer GUI verwenden, sind die 80 Zeichen pro Zeile irrelevant, da die meisten anständigen Editoren - zum Beispiel Notepad ++ - eine Schaltfläche zum Umschalten des Zeilenumbruchs haben. Damit sollte es kein Problem sein, auch wenn der Code in einem dünnen Fenster angezeigt wird.

Lajos Meszaros
quelle