Warum sollten Sie in Ihrer IDE Monospace-Schriftarten verwenden? [geschlossen]

82

Ich habe einige Schriftartenthemen auf SO gesehen und es scheint, dass die Mehrheit der Leute Monospace-Schriftarten für Programmieraufgaben verwendet. Ich benutze Verdana seit ein paar Jahren zum Programmieren und ich mag die verbesserte Lesbarkeit sehr, ohne etwas zu verpassen, was mit Monospace zu tun hat.

Warum verwenden Sie eine Monospace-Schriftart?

Rik
quelle
4
Hat jemand gute Gründe, keine Skriptschriften zu verwenden? :)
Jammus
1
Persönlich benutze ich gerne San Francisco ( lowendmac.com/backnforth/2k0601.html ) für meine ... :)
John Rudy
Ich denke, Trim geht noch weiter als Verdana, wenn es darum geht, Code lesbar zu machen. ( code.google.com/p/i3project/wiki/Fonts )
user287424
Zumindest bin ich nicht der einzige Ketzer, der Verdana benutzt. :)
Calmarius
16
Öffnen Sie dies erneut. Es lohnt sich auf jeden Fall, das richtige Werkzeug / die richtige Technik für einen Job und die Gründe dafür zu kennen.
Thomas Eding

Antworten:

106

In einer Monospace-Schrift:

  • String-Literale gleicher Länge sehen gleich aus.
  • Es ist einfacher, dünne Satzzeichen wie: () {} zu erkennen
  • Ähnliche Charaktere sehen anders aus: Il 0O vs. Il 0O
  • Sie wissen, ob eine Zeile in einem Fenster mit einer Breite von X Zeichen umbrochen wird. Dies bedeutet, dass Ihr Team beispielsweise 100 Zeichenzeilen standardisieren kann und eine Zeile immer wie eine Zeile aussieht
Ryan
quelle
31
Der zweite und dritte Punkt sind wirklich nicht so spezifisch für monospaced. Dies ist eher eine Frage der von Ihnen verwendeten bestimmten Schriftart, nicht der Frage, ob sie monospaced ist oder nicht. Verdana macht sich in beiden Punkten gut (besser als die meisten monospaced Schriften, imo), weshalb ich es benutze
Rik
8
Um dies zu korrigieren: Äquivalente Zeichenfolgen sehen gleich breit aus, und ich frage mich, warum Sie sich für Zeichenfolgen interessieren, die unterschiedlich sind und nur eine Länge gemeinsam haben. Nicht-Monowidth schreibt nicht vor, dass Interpunktionszeichen dünn sind. Sie sollten eine andere Nicht-Mono-Schriftart verwenden. "Ähnliche" Charaktere sehen im Monospace nicht unbedingt anders aus. SimHei hat zum Beispiel identisches O gegen 0. Es ist eine Eigenschaft der Schriftart, nicht der Breite. Wenn Ihr Team tatsächlich standardisiert, können Sie Nicht-Mono auswählen und auf "Nicht vom Bildschirm abfließen lassen" standardisieren.
Bwerks
103

Ich habe noch nie darüber nachgedacht, in einer proportionalen Schriftart zu codieren. Im Interesse der Wissenschaft habe ich einfach meinen Editor umgestellt, um es auszuprobieren.

Hier einige Beobachtungen nach dem Reparieren einiger einfacher Tickets:

  • Code scheint extrem dicht zu sein. Der größte Teil meines Codes besteht aus etwa 80 Spalten, selten über 100. Eine proportionale Schriftart zerquetscht ihn zu einem winzigen Streifen auf der linken Seite meines Editors. Vielleicht nützlich, wenn Sie wenig Platz auf dem Bildschirm haben, aber es scheint unnötig kompakt zu sein.
  • Die 'Textur' des Codes geht verloren. Es ist schwer zu sagen, um welche Art von Struktur es sich handelt - es ist nur eine große Textplatte, die fast zeichenweise gelesen werden muss.
  • Es ist sehr leicht, den !Bediener zu übersehen if (!foo). (if (! foo), siehe!)
  • Interpunktionszeichen sind sehr schlecht definiert. Viele sind schwer zu unterscheiden ( {}[]()vs {} [] ())
  • Einige Interpunktionszeichen sind viel größer als andere, was auf eine Betonung schließen lässt, bei der keine beabsichtigt ist ( $@%vs $ @%).
  • Einige Zeichen sind sehr eng und sehr schwer zu identifizieren ( '"!;:,.vs '"!;:,.)
  • Einige Zahlen und Buchstaben sind sehr ähnlich ( 0Oo iIlvs 0Oo iIl)
  • Ich bin sehr darauf angewiesen , Syntaxhervorhebung, ohne sie es fast unmöglich ist , Dinge wie confirm Zitate zu tun ausgeglichen werden, usw.
  • Die Ausrichtung (abgesehen vom einfachen Einrücken) ist vollständig unterbrochen. Sie können es beflügeln, indem Sie zusätzliche Leerzeichen einfügen . Aufgrund der Proportionalität der Schriftarten sind die Zeilen möglicherweise nicht genau ausgerichtet - der Code sieht unordentlicher aus .
  • Reguläre Ausdrücke sind .. interessant!

Es gibt jedoch einige positive Punkte. Zugegeben, ich benutze es erst seit einiger Zeit, aber es gibt sicherlich einige Aspekte, die mit proportionalen Schriftarten etwas besser funktionieren:

  • 'Wörter' sind leichter zu lesen - Rechtschreibfehler (z. B. falsche Schreibweise einer Variablen) springen auf Sie zu.
  • Ich fühle mich besser, wenn ich längere, aussagekräftigere Variablennamen verwende (vielleicht weil sie besser scannen, vielleicht weil die horizontale Größe des Textes komprimiert ist)
  • Es scheint etwas einfacher zu sein, solchen Code zu lesen . Es ist für mein Gehirn einfacher, jedes Wort zu "symbolisieren" und seine Bedeutung zu verstehen. Obwohl die Interpunktionszeichen schwerer zu lesen sind, ist es immer noch schwierig - aber vielleicht ändert sich das, wenn man sich etwas Zeit nimmt, um sich daran zu gewöhnen

Ich werde diese Antwort morgen erneut aktualisieren (vorausgesetzt, ich kann einen ganzen Tag wie diesen überstehen!)

Dan
quelle
7
Gute Arbeit! Ich frage mich jedoch, welche Schriftart Sie verwendet haben, da mich die meisten Punkte, die Sie über bestimmte Zeichen haben, die sich zu sehr ähneln, überhaupt nicht stören.
Rik
Ich begann mit Arial und zog nach Calibri. Ich habe ein paar andere ausprobiert, aber auch diese schienen die besten zu sein, basierend auf 20 Sekunden extrem unwissenschaftlichem Durchsuchen meiner Schriftartenliste und einer Empfehlung von Konrad Rudolph.
Dan
6
"Ich habe noch nie darüber nachgedacht, in einer proportionalen Schriftart zu codieren. Im Interesse der Wissenschaft habe ich einfach meinen Editor umgeschaltet, um es auszuprobieren." Wie viele Jahre haben Sie programmiert und sich an die feste Breite gewöhnt? Sie haben hier eine anständige Antwort, aber Sie erklären nicht Ihre eigenen Vorurteile (und es wäre schwierig, dies ohne viel mehr Arbeit zu tun), was keine sehr gute Wissenschaft ist.
2
@ Roger: Es ist vielleicht keine gute Wissenschaft (eine solche Studie wäre fast unmöglich und sehr teuer!), Aber die Gründe sind plausibel. Und die unterbrochene Einrückung ist ein schwer zu übertreffendes Argument (in aktuellen IDEs / Editoren; dieses Problem kann durch intelligentes Einrücken mithilfe von Tabulatoren gelöst werden, die der Semantik entsprechen).
Konrad Rudolph
5
Eine Proportionalschrift, die speziell für die Programmierung entwickelt wurde, würde die meisten üblichen Einwände lösen. Es gibt einige proportionale Schriftarten zum Codieren unter code.google.com/p/i3project/wiki/Fonts
user287424
28

Ich mag es, verwandte Bedingungen auszurichten, um zu verdeutlichen, dass sie gruppiert sind. Zum Beispiel:

if ((var1 == FOO) && ((var2 == BAR) ||
                      (var2 == FOOBAR)))

Schriftarten mit variabler Breite erschweren dies.

DGentry
quelle
2
Gutes Argument. Die vertikale Ausrichtung der Dinge hat jedoch ein Problem: Was ist, wenn Sie etwas an dieser if-Anweisung ändern müssen? Sie müssen wahrscheinlich alle Dinge neu ausrichten.
Calmarius
9
@Calmarius: "Lesbar machen" ist Teil meiner ganztägigen Codierung, ich mache es unbewusst. Wenn Sie sich bemühen, Code zu ändern, sollten Sie sich auch bemühen, die Wartungskosten zu senken.
Sebastian Mach
2
Ein besserer Weg, dies zu erreichen, sind elastische Tabstops , selbst wenn Sie sich an die monospaced Schrift halten. Nicht, dass es eine praktische Alternative in aktuellen Redakteuren wäre ...
Roman Starkov
1
@endolith Nun, sie sind sicher schlauer als Leerzeichen ... :) Sie müssen sich noch entscheiden, was Sie mit was in Einklang bringen möchten. Der große Vorteil ist, dass die Dinge, sobald Sie dies getan haben, ausgerichtet bleiben, auch wenn sich andere Dinge ändern.
Roman Starkov
2
@endolith Sie würden eine Registerkarte zwischen den beiden Klammern in der ersten Zeile und eine Registerkarte vor der öffnenden Klammer in der zweiten Zeile einfügen. Dies würde in einer Vanille-Implementierung etwas mehr Platz zwischen den beiden Klammern in Zeile 1 schaffen, aber Sie würden eine Ausrichtung erhalten, die bei Änderungen beibehalten wird, was für mich nach einem sehr lohnenden Kompromiss klingt. Tatsächlich würde ich nach dem Schließen der Klammer in beiden Zeilen sogar einen Tabstop hinzufügen. Sehen Sie sich den Screenshot in seiner ganzen Schriftgröße an oder probieren Sie es selbst aus .
Roman Starkov
20

Eine Sache, die ich hier immer wieder sehe, ist die Diskussion über "Aneinanderreihen von Code" und Einrückung. Ich möchte auf Folgendes hinweisen:

  • Acht Leerzeichen sind in jeder Schriftart immer doppelt so lang wie vier Leerzeichen.
  • Zwei Registerkarten sind in jeder Schriftart immer doppelt so lang wie eine Registerkarte.
  • Jeder Bezeichner in einer Zeile hat in der nächsten Zeile immer die gleiche Breite ... in jeder Schriftart!
  • Sicher, wenn Ihre Teamkollegen Monospace verwenden und Sie nicht, wird es anders aussehen ... aber Sie sollten sich auf etwas standardisieren - was auch immer es ist - und wenn das wahr ist, wird es für alle gleich aussehen. ..in jeder Schriftart! Zum Lachen könnten Sie auch versuchen, alle auf Monospace zu halten und die Hälfte von ihnen Breitbildmonitore zu geben ... sehen Sie, wie das geht.
  • Wenn Sie etwas tun, das darauf beruht, Code basierend auf der Spaltenposition dieser Zeichen auf dem Bildschirm und nicht auf dem Umfang der von Ihnen verwendeten Bezeichner auszurichten, ist das, was Sie tun, ein Hack. Bezeichner sollten niemals auf Kosten der Qualität ihrer Namen auf eine bestimmte Anzahl von Zeichen beschränkt werden. Abgesehen davon ... zeichnen Sie immer noch keine ASCII-Felder mit Sternchen für Kommentare in Ihrem Code, oder?

Wenn Sie also all dies zusammen zeichnen, wenn Sie jede Zeile an derselben Stelle beginnen und der konsistente Abstand dieselbe Breite hat und die Bezeichner die Breite in jeder Zeile nicht spontan ändern, wird Ihr Code tatsächlich ausgerichtet! ... bis etwas anders ist.

zum Beispiel:

identifier.Method().Property.ToString();
identifier.Method().OtherGuy.ToString(); //how lined up and pretty!
identifier.Method().Sumthing.YouGetThePoint;
  • identifier.Method (). Property.ToString ();
  • identifier.Method (). OtherGuy.ToString (); //Ach nein! verstellt!
  • identifier.Method (). Sumthing.YouGetThePoint; //...aber wen kümmert's? Sie sind verschiedene Eigenschaften!

Der einzige Punkt, den ich zugeben werde, ist, dass nicht alphanumerische Zeichen normalerweise nicht sehr breit sind. Dazu gehören) (] [} {,: | "; ',`! und. Dies könnte jedoch in einem Schrifteditor behoben werden ... einfach indem man sie breiter macht. Es ist kein Problem, das mit Nicht-Monospace verbunden ist; es gibt nur keine Es war keine große Nachfrage danach, und so wurde es noch nicht getan.

Zusammenfassend ist die persönliche Präferenz in Ordnung, aber ich denke, es gibt wenig praktischen Grund, Monospace gegenüber Nicht-Monospace zu bevorzugen. Du magst das Aussehen? Klar, mach Monospace. Sie möchten, dass mehr Dinge auf Ihren Bildschirm passen? Gehen Sie nicht mono. Aber die Art und Weise, wie Menschen Nicht-Monospace wie Häresie behandeln, ist etwas übertrieben.

bwerks
quelle
3
+1 für mehr Sachen auf deinem Bildschirm. Und ASCII-Boxen sind Zeitverschwendung.
Calmarius
2
+1; Diese Punkte sind eigentlich schwer zu verstehen, bis man eine Weile eine proportionale Schriftart verwendet hat.
Roman Starkov
8
+1 für die aufgeschlossene Erkenntnis, dass Proportional-Schriftarten, die speziell für die Programmierung entwickelt wurden, erstellt werden können und nicht monospace sein müssen. Wenn proportionale Schriftarten in der Programmierung üblicher wären, könnte eine neue Kultur der „Programmiertypografie“ entstehen. Nicht so bei der "Häresie" -Mentalität.
Timwi
3
Sie treffen in Ihren Punkten umfassende Annahmen: 1) Die Ausrichtung muss nur am Anfang einer Zeile erfolgen. 2) Die Ausrichtung ähnlicher Aufrufe auf mehreren Zeilen erfolgt immer an derselben "identifier.Method ()" - Objekt. 3) Spaltenposition hat etwas mit Bezeichnernamen zu tun. 4) Das einzige Mal, dass eine Ausrichtung in Kommentaren erforderlich ist, sind "ASCII-Felder mit Sternchen". Entschuldigung, -1.
Droj
3
Ich ärgere mich nicht, weil Sie mich herabgestimmt haben, sondern weil Sie kein Stück Gegenargument anbieten. Sie haben mir im Grunde nur meine Punkte vorgetragen, hah. Aber ja, ich stimme zu! Ausrichtung spielt nur eine Rolle, bis sich die Linien unterscheiden. Ausrichtung von Methodenaufrufen mit unterschiedlichen Argumenten spielt keine Rolle, da Sie die Länge Ihrer Variablennamen nicht einschränken sollten. Spaltenposition INDEED hat nichts mit Bezeichnernamen zu tun; und das einzige Mal, wenn Sie Ausrichtung benötigen, ist, wenn Sie sich auf dem Firmen-Cent mit ASCII-Kunst beschäftigen.
Bwerks
16

Ich bin durch diesen Thread neugierig geworden, weil viele Argumente für monospaced Schriftarten mit einigen Optimierungen wirklich leicht widerlegt werden können. Also habe ich meine IDE auf Calibri umgestellt (weil sie ein schönes, rundes Gesicht hat und für die Lesbarkeit auf Bildschirmen für die Benutzeroberfläche optimiert ist - perfekt). Jetzt muss ich natürlich Tabulatoren anstelle von Leerzeichen zum Einrücken verwenden (wobei alle Probleme ignoriert werden) und die Breite von 4 Leerzeichen reicht eindeutig nicht aus, also habe ich auf 10 umgestellt.

Sieht jetzt ganz gut aus. Es gibt jedoch einige offensichtliche Probleme, die ich erkennen könnte. Weitere könnten später auftauchen, nachdem ich diese Einstellungen für eine Weile getestet habe.

  • Wie bereits erwähnt, sehen einige Zeichen (insbesondere Klammern, Semikolons) viel zu dünn aus. Ich möchte dies in einem fortlaufenden Text, aber nicht in einem Quellcode. Ich denke, das wird das größte Problem sein.
  • Symbole sind nicht gut ausgerichtet. Betrachten Sie als Beispiel den folgenden C # -Code:

    var expr = x => x + 1;
    

    Der Pfeil ( =>) sieht aus wie eine Einheit in etwa jeder Monospace-Schriftart. Es sieht aus wie zwei benachbarte Zeichen in anderen Schriftarten. Gleiches gilt für Betreiber wie >>etc.

  • Räume sehen winzig aus. Ich platziere meine Quellcodes intensiv, um die Lesbarkeit zu verbessern. Dies wird beim Umschalten auf eine proportionale Schriftart zunichte gemacht. Wenn ich die Breite der Räume steuern könnte, würde dies definitiv helfen.
  • Die kontextsensitive Einrückung ist vollständig fehlerhaft: In einigen Kontexten reicht es nicht aus, eine feste Anzahl von Registerkarten einzurücken. Nehmen Sie LINQ-Ausdrücke, die möglicherweise wie folgt eingerückt werden:

    var r = from c in "This, apparently, is a test!"
            where !char.IsPunctuation(c)
            select char.ToUpper(c);
    

    Mit einer proportionalen Schriftart ist dies einfach nicht möglich.

Alles in allem sind die Zeichen zu eng. Auch hier kann ein zusätzlicher Buchstabenabstand hilfreich sein, der im Falle einer Interpunktion unbedingt erforderlich ist. Ich habe jedoch das Gefühl, dass all diese Optimierungen, um proportionale Schriftarten besser lesbar zu machen, nur das emulieren würden, was monospaced Schriftarten natürlich sind. Dies gilt sicherlich für alle bisher genannten Punkte.

Konrad Rudolph
quelle
1
Eigentlich ist Calibri ein bisschen besser als Arial (mit dem ich getestet habe), obwohl es immer noch ähnliche Probleme aufweist
Dan
1
Ich habe mehrere Schriftarten ausprobiert. Calibri und Lucida Sans Unicode scheinen die wahrscheinlichsten Kandidaten zu sein. Es ist kein Zufall, dass Lucida Sans Unicode (unter dem Pseudonym „Lucida Grande“) die UI-Schriftart von OS X ist.
Konrad Rudolph
1
Ja, diese beiden sind sich eigentlich sehr ähnlich. Calibri gewinnt für mich, da es eine etwas klarere Interpunktion hat.
Dan
Es könnte nur ich sein, aber ich habe festgestellt, dass Calibris Abstand unglaublich unvorhersehbar ist - einige Räume scheinen nicht zu existieren, während andere riesig erscheinen. Auch ohne Rücksicht auf die Programmierung habe ich es auf jedem Computer deaktiviert, den ich benutze.
Bwerks
@bwerks: was meinst du - du "deaktivierst" es? Benutze es einfach nicht, wenn es dir nicht gefällt. Wenn Sie außer in der Programmierung Abstände verwenden? Zum Formatieren? Nicht , das ist eine Todsünde. Darüber hinaus kann das, was Sie beobachten, nur die Auswirkung des fehlerhaften Zeilenumbruchalgorithmus von Microsoft Word sein - da der Abstand von Calibri immer gleich ist: Ein Leerzeichen hat immer die gleiche Breite. Insbesondere ist es nicht vom Kerning betroffen.
Konrad Rudolph
11

Ich verwende Comic Sans MS, das als kleine Punktgröße durchaus vernünftig aussieht (bei Überschriftengrößen sieht es erst "witzig" aus). Es schont die Augen und hält den Text dennoch klein genug, um eine angemessene Menge an Code im Textfenster sichtbar zu machen, wobei mehrere angedockte VS-Bedienfelder geöffnet sind.

Sie können das Projektmappen-Explorerfenster ausblenden lassen und trotzdem 100 Textspalten ohne horizontales Scrollen lesen. Außerdem kann ich das DXCore Documentor-Bedienfeld (das formatierte XMLDOCs anzeigt) weit genug öffnen, um es lesen zu können, während ich immer noch genug Text sehen kann, um die XMLdocs zu dokumentieren.

James Curran
quelle
4
Oh Mann. Warum? Ich würde gerne Ihre Rechtfertigung dafür hören!
Dan
4
Verwenden von Comic Sans für alles :)
Dan
4
Ihre Rechtfertigung ist "es ist klein"? Von allen Merkmalen von Comic Sans wird seine "Kleinheit" selten oft gegenüber anderen Schriftarten ausgewählt. Außerdem siehst du so aus, als wärst du 12 Jahre alt. Wenn ich mit dir zusammengearbeitet hätte, hätte ich dich jetzt definitiv ausgelacht :)
Dan
5
Ganz Makrele - ich habe es gerade versucht und es funktioniert. James hat wahrscheinlich den einzigen verbleibenden Grund für die Existenz von Comic Sans entdeckt - es ist bis auf 7pt klar lesbar. Wenn ich das nächste Mal das Code-Durcheinander eines anderen mit tausend Zeilenmethoden umgestalten muss, ist dies die Schriftart, die ich verwenden werde.
Bevan
7
Es könnte sehr gut lesbar sein, aber ich würde es trotzdem nicht öffentlich zugeben :)
patricksweeney
10

Wenn Sie in einem Team arbeiten, stellen Mono-Schriftarten sicher, dass der Code für alle klar und korrekt angeordnet ist, unabhängig davon, welche Mono-Schriftarten sie bevorzugen.

Ihr Code sieht für Sie möglicherweise klar aus, wenn Sie eine Schriftart mit variabler Breite verwenden. Es ist jedoch unwahrscheinlich, dass er gleich aussieht, wenn ein Benutzer mit Monoabstand ihn öffnet.

Tom Robinson
quelle
10

Es dauert nur ein paar Stunden, um herauszufinden, warum eine Suche etwas nicht findet, weil Sie 2 statt 1 Leerzeichen in Ihrem Literal haben, um zu erkennen, dass Sie Monospace-Schriftarten verwenden sollten. Dies ist mir einmal passiert, als ich versucht habe, einen Lotus Notes-Agenten zu reparieren, als der Designer keine Monospace-Schriftart verwendete. Erst als ich den Code in CodeWright einfügte, um ihn auszudrucken, war klar, wo das Problem lag.

Bruceatk
quelle
1
Die Breite des Leerzeichens ist konstant, wenn eine proportionale Schriftart verwendet wird, nicht wahr?
Calmarius
6
Oder Sie können eine proportionale Schriftart mit einem größeren Abstand verwenden. Proportionalität verursacht nicht das von Ihnen erwähnte Problem.
Roman Starkov
10

Monospaced-Schriftarten erleichtern das Ausrichten von Code erheblich.

Dies gilt insbesondere für die Arbeit mit einem Team. Jeder im Team kann verschiedene Schriftarten verwenden, und solange sie alle monospaced sind, wird alles in einer Reihe stehen. Wenn eine einzelne Person viele verschiedene Entwicklungswerkzeuge verwendet, wird alles in einer Reihe stehen, wenn sie alle monospaced sind. Wenn sie nicht alle monospaced wären, müssten Sie sicherstellen, dass sie alle dieselbe Schriftart verwenden, und wenn Sie auf zwei Plattformen entwickeln, kann dies schwierig sein.

Tatsächlich unterstützen einige Entwicklungstools nur monospaced Schriftarten.

Ein weiterer Grund ist, dass monospaced Schriftarten tendenziell deutlichere Zeichen haben. Wenn Sie lIiO0 mit vergleichen lIiO0, werden Sie sehen, was ich meine. Sie machen es auch viel einfacher, Leerzeichen zu zählen.

SLaks
quelle
5
"Alles wird in einer Reihe stehen" - nur wenn Ihr Team den einen heiligen Krieg der Tabs gegen Leerzeichen beigelegt hat und / oder eine einheitliche Einstellung für die Tab-Breite hat.
Roman Starkov
2
Selbst wenn Sie die Einrückung von Registerkarten verwenden, sollten Sie Leerzeichen für die Ausrichtung nach dem Einrücken verwenden.
PeterAllenWebb
6

Ich vermute, dass monospaced Schriftarten von Programmierern als Übertragung aus den textbasierten DOS-Tagen bevorzugt wurden.

Auf der anderen Seite habe ich selbst Verdana und einige andere empfohlene proportionale Schriftarten ausprobiert, aber ich konnte mit der Änderung nicht umgehen. Mein Auge ist für Monospace zu gut trainiert. Symbolreiche Sprachen wie C / C ++, C #, Perl usw. sehen für mich zu unterschiedlich aus. Durch die Platzierung von Symbolen sieht der Code völlig anders aus.

Spoulson
quelle
Dies scheint die eigentliche Antwort zu sein, ich denke auch, dass dies hauptsächlich gewohnheitsmäßige / historische Gründe hat, und der Rest sind nur Einschränkungen eines Code-Editors oder schlechte Schriftarten.
Mikhail V
6

Aufgrund der Natur des Codes und nicht der normalen Sprache ist es besser, ihn richtig auszurichten. Bei der Codebearbeitung möchten Sie manchmal auch die Auswahl blockieren, das Kopieren und das Einfügen blockieren. In Visual Studio können Sie die Blockauswahl mit der ALT-Taste durchführen, während Sie die Maus auswählen. Es mag in verschiedenen Editoren unterschiedlich sein, aber ich fand diese Option in einem Editor in einigen Fällen immer sehr wichtig, und sie würde nicht sehr gut funktionieren, es sei denn, Sie verwenden eine Schriftart mit einem Abstand.

stephenbayer
quelle
Jetzt gibt es einen neuen Tastenanschlag, den ich noch nie gekannt habe. Prost.
Kev
5

Ich persönlich finde die Mono-Spaced-Schriftarten in Code-Editoren leichter zu lesen. Natürlich bin ich fast blind. Das könnte einen Unterschied machen. Ich verwende derzeit Consolas-Schrift bei 15 Punkten mit dunklem Hintergrund und kontrastreichen Buchstaben.

John Kraft
quelle
Consolas ist eigentlich eine Schriftart mit einem Abstand. Ein sehr guter dazu. Ich benutze es auch.
Joel Mueller
+1 für Consolas und Inconsolata auf dem Mac
the_mandrill
@ Joe Mueller - Ich habe keine Ahnung, wie ich das geschrieben habe. Ich meine das Gegenteil von dem, was ich geschrieben habe. Lass mich das bearbeiten .... ok. :)
John Kraft
Ich würde empfehlen, dass Sie versuchen, eine gute, nicht monospaced Schriftart zu finden, die für Code optimiert ist, und zum hellen Hintergrund wechseln, bevor Sie völlig blind werden, nichts für ungut, genau das, was mir meine Erfahrung sagt.
Mikhail V
2

Das Verwenden von Leerzeichen zum Einrücken wäre ein Problem, sobald Sie tiefer als eine Ebene sind.

Jammus
quelle
6
Eigentlich sollte jede anständige IDE damit umgehen können.
Rik
8
Dies ist nur ein weiterer Grund, Tabulatoren zum Einrücken zu verwenden (dies ist der Grund, den der gute Herr überhaupt als Tabulatoren angegeben hat)
James Curran,
5
+1 für Tabs (wo ist jetzt die Debatte im Gange ...)
Bobby Jack
2

Meistens zu Ausrichtungszwecken (z. B. wenn Funktionsparameterdeklarationen mehrere Zeilen umfassen und Sie sie aneinanderreihen möchten oder Kommentare usw. aneinanderreihen möchten).

Mipadi
quelle
1

Ich denke, genau wie bei der Ausgabe von Tabulatorzeichen ist der komplizierende Faktor, wenn etwas zum Zwecke der Ausrichtung eingerückt wird und jemand anderes andere Vorlieben hat. Die Dinge werden falsch ausgerichtet.

Alan Hensel
quelle