Studien zum Hervorheben von Syntaxfarben


39

Die meisten Programmierer haben ihre eigenen Vorlieben für die Syntax-Hervorhebung von Farbschemata, aber ich habe mich gefragt, ob jemand jemals eine tatsächliche wissenschaftliche Studie über das beste Farbschema durchgeführt hat. Ich stelle mir vor, eine solche Studie würde Dinge wie die Lesbarkeit des Codes untersuchen, ob die Augen des Programmierers auf die wichtigsten Teile gerichtet sind usw.

Vielleicht wurde dies bereits für so etwas wie das Standarddesign von Visual Studio durchgeführt, aber ich würde gerne wissen, ob es öffentlich verfügbare Studien gibt und was sie gefunden haben.


Ich denke, niemand hat sich speziell mit Syntax-Farbschemata befasst, aber Prinzipien aus anderen Bereichen haben sich immer noch übertragen. Beispielsweise zieht die Farbe Rot die Aufmerksamkeit auf sich.
Maxpm

+1 Ich habe mich schon gefragt, ob es sich um dieselben oder um dieselben Farbschemata von Anwendungen und Betriebssystem handelt.
6.

Antworten:


17

Bestimmte Farbschemata können objektiv nicht besser sein als alle anderen Farbschemata. Ihre Einstufung wäre individuell subjektiv, basierend auf Geschmack und kulturellen Faktoren.

Es gelten jedoch bestimmte Regeln für die Lesbarkeit / Klarheit, die Verwendung in bestimmten Umgebungen mit Umgebungslicht usw. usw., die sich aus Grafikdesign / Typografie, Mensch-Computer-Schnittstelle und anderen verwandten Studien ergeben.

Das Solarized-Projekt von Ethan Schoonover ist eine interessante Arbeit: http://ethanschoonover.com/solarized


Es ist möglich, ein objektiv bestes oder zumindest gruppensubjektives Farbschema zu haben. Wenn wir "am besten" sagen, meinen wir im Durchschnitt die Mehrheit einer Bevölkerung oder unserer Subkultur / Bevölkerung. Wir benötigen lediglich eine Möglichkeit, Artikel zu bestellen und zu klären ('X ist am besten gegeben, wenn Y'). Ansonsten verliert das "Beste" an Bedeutung. Es gibt auch die reale Möglichkeit der besten Farbschemageneratoren, die jede einzelne Eigenart berücksichtigen, indem sie Ihr Gehirn scannen (Jahrzehnte in der Zukunft).
Annan

@Annan: Wenn man es im Durchschnitt in einer Gruppe macht, führt dies zu einer Erfahrung, die entschieden SCHLECHTER ist als nur mittelmäßig für die Menschen an den Rändern des Spektrums. Gehirnabtastung ... ja, das wäre schön, aber ich gehe davon aus, dass der dritte Weltkrieg früher stattfinden wird.
Darren Ringer

7

Es handelt sich um eine nur mäßig aktuelle Studie aus dem Jahr 2004, die in entferntem Zusammenhang mit dem mir bekannten Thema steht: "Der Einfluss von Kombinationen aus Text und Hintergrundfarbe auf Lesbarkeit, Beibehaltung, Ästhetik und Verhaltensabsicht" von Hall & Hanna . Es ist jedoch nicht für den Code, sondern für Webseiten bestimmt und das einzige Farbschema, das sie berücksichtigen, sind Vordergrund- und Hintergrundfarben.

Ich habe Studien gestellte Frage nach Farbschemata für Programmierer auf Skepics.SE bezogen werden : „Sind Licht-on-dunkle Farbschemata für Computer - Bildschirme besser für Programmierer?“ . Es wurde seit fast 2 Jahren nicht mehr beantwortet, während diese Art von Frage dort normalerweise recht schnell beantwortet wird. Das lässt mich glauben, dass es solche wissenschaftlichen Studien nicht gibt.


7

Wir haben kürzlich eine Anwenderstudie zu Code-Präsentationen durchgeführt, die visuell umfangreicher sind als das Hervorheben von Syntax. Obwohl es sich nicht um eine Studie zu Syntaxhervorhebungsschemata handelt, finden Sie sie möglicherweise aufschlussreich:

D. Asenov und O. Hilliges und P. Müller - Die Auswirkungen umfangreicherer Visualisierungen auf das Codeverständnis und hier ist das Video des 10-minütigen Vortrags auf der CHI 2016.

Wir haben die Standard-Eclipse-Syntaxhervorhebung mit zwei umfangreicheren Codedarstellungen mit visuellen Extras verglichen, z.

  • Umrisse statt geschweifte Klammern
  • Wechselnde Hintergrundfarben anstelle von Kommas zum Trennen von Listenelementen
  • Symbole anstelle einiger Schlüsselwörter
  • Zusätzliche Hintergrundfarben für einige Aussagen und Ausdrücke

Die Studie zeigte, dass die Erhöhung der visuellen Vielfalt der Präsentation einen ziemlich großen Einfluss auf die Geschwindigkeit hatte, mit der Entwickler die Codestruktur verstehen konnten - die Zeit wurde um bis zu 75% reduziert. Es ist wichtig zu beachten, dass es sich um einfache Fragen zur Codestruktur handelt (z. B. "Gibt es verschachtelte Schleifen in der Methode?"). Wir haben keine Aufgaben getestet, die komplexes Denken erfordern (z. B. "Was macht diese Methode?"), Da diese eher von den Fähigkeiten der Person als von den Auswirkungen der Codedarstellung bestimmt werden.

Ein interessantes Ergebnis unserer Studie ist , dass wir konnten nicht aufgrund der reicheren Visualisierungen jede visuelle Überlastung beobachten. Obwohl viele Teilnehmer angaben, visuell überlastet oder verwirrt zu sein, zeigten die von uns gesammelten Daten (Zeit für die Beantwortung und ob sie korrekt waren) nur eine Verbesserung mit umfangreicheren Visualisierungen.

In Bezug auf die Syntaxhervorhebung legen unsere Ergebnisse indirekt nahe, dass die Verwendung einer größeren visuellen Vielfalt (z. B. mehr Farben und Farben für mehr Arten von Programmierkonstrukten) von Vorteil ist. Ein Thema mit einer eigenen Farbe für eingebaute Typen, Kontrollfluss-Schlüsselwörter und den Rest der Schlüsselwörter verbessert möglicherweise in einigen Fällen das Verständnis der Codestruktur im Vergleich zu einem einfachen Thema, das eine einzige Farbe für alle verwendet Schlüsselwörter.


2

Ich glaube nicht, dass solche Studien existieren. Wenn ein Unternehmen eine neue IDE erstellt, basiert das Syntaxhervorhebungsfarbschema in der Praxis auf den vorhandenen Schemata anderer IDEs.

Zum Beispiel hat das Standard - Visual Studio Thema nichts neu noch originell . Die blaue Farbe wurde jahrelang für Keywords verwendet, auch von alten Ada IDEs. Gleiches gilt für grüne Kommentare. Einige Farben waren mehr oder weniger "neu", wie z. B. blaugrün für die Namen der Klassen, aber Sie können den Grund für die Auswahl dieser Farben leicht verstehen: Es wäre vernünftig, eine Farbe festzulegen, die nicht weit von Blau entfernt ist (da dies der Fall ist) Ähnlich wie reservierte Wörter: Int32für .NET, intfür C # usw.), aber es muss eine Grundfarbe bleiben, die sich vom bereits verwendeten Blau unterscheidet.

Was ist nun mit alternativen Schemata, wie dem beliebten hellen Text auf dunklem Hintergrund? Sie wurden nicht von einem Wissenschaftler erstellt, der sich jahrelang mit dem Thema befasst und komplizierte Berechnungen anstellte, um die exakt perfekte Übereinstimmung zu erzielen. Stattdessen erstellt ein Entwickler ein Schema, das für ihn lesbar ist. Er teilt es auf einer Website, und es wird populär . Das ist die ganze Magie.

Letzte Sache: Gibt es Lesbarkeitsregeln? Nicht zu viel.

  • Meistens ist es subjektiv : Man kann nicht behaupten, dass ein blaues Keyword besser lesbar ist als ein lila Keyword, weil jemand antworten könnte als für ihn. Auf seinem Monitor ist das lila Keyword viel besser lesbar als das blaue .

  • Zum anderen ist es nur logisch . Ein Schwarzweißschema wäre nicht so lesbar wie das Standardschema. Auf die gleiche Weise können Sie Keywords nicht auf hellgelb und Kommentare auf hellgrau (sagen wir #eee) auf weißem Hintergrund einstellen , da sie nicht lesbar sind und Sie nicht einmal erklären müssen, warum. Dies sind die gleichen Regeln, wenn Sie eine Website erstellen, ein Buch drucken oder was auch immer.


1

Als eine Art grobe Studie zeigen die folgenden Screenshots drei Farbthemen, die zur Syntaxhervorhebung von XSLT verwendet werden. Ich habe mich für XSLT entschieden, da es aufgrund der großen Anzahl von Sprachelementen eine besondere Herausforderung darstellt - und auch, weil es von vielen Entwicklern als hässlich beschrieben wird.

Solarisiert

Bildbeschreibung hier eingeben

Morgen Nacht

Bildbeschreibung hier eingeben

Github

Bildbeschreibung hier eingeben

Beobachtungen

Die Anzahl der in dem Beispiel verwendeten Farben hilft bei der Unterscheidung der verschiedenen Sprachelemente, kann sich jedoch für einen Entwickler als ablenkend erweisen.

Es hilft, wenn möglich von kalten zu warmen Farben überzugehen, wobei kalte Farben für die neutraleren Teile der Sprache verwendet werden. Eine Alternative besteht darin, von Pastelltönen zu lebhafteren zu wechseln (Farbtonsättigung).

Die Hintergrundfarbe hat einen großen Einfluss auf die Wahrnehmung der Vordergrundfarben.

Einige benachbarte Vordergrundfarben können zu starken Kollisionen führen, die das Auge stören. Insbesondere Rot und Grün passen nicht gut zusammen.

Bei einem dunklen Hintergrund ist es einfacher, eine Vielzahl von Vordergrundfarben mit ausreichendem Kontrast zueinander und zum Hintergrund bereitzustellen.

Schließlich machen externe Faktoren wie Umgebungslicht sowie die Qualität und Kalibrierung des Monitors einen großen Unterschied.

Fazit

Es ist am besten, Tools zu verwenden, die eine erweiterbare Möglichkeit zum Festlegen von Farbthemen bieten, da es unwahrscheinlich ist, dass ein einzelnes Farbthema die Anforderungen aller Entwickler erfüllt, und sogar derselbe Entwickler kann seine Präferenz in Abhängigkeit von einer Vielzahl von Faktoren häufig ändern.


0

Nun, ich denke, die erste Frage wird sein, ob der weiße Hintergrund eine so großartige Idee ist oder nicht. Nur weil es fast wie echtes Papier ist und wir es heutzutage überall im Internet finden können, ist es nicht unbedingt eine gute (oder ich kann sagen perfekte) Wahl.

Ich erinnere mich, dass wir vor (vielen, vielen) Jahren nur das gelb-auf-schwarz "Farbschema" hatten. Und ich erinnere mich auch, dass es nicht so schlimm war. Es hatte diesen Kontrast nicht wie Schwarz-Weiß. Vor nicht allzu langer Zeit habe ich gelernt, dass es auch für das menschliche Auge besser ist.

Manchmal frage ich mich wirklich, wer die Farbschemata entwirft, die z. B. mit Betriebssystemen geliefert werden. Normalerweise ignoriere ich sie, aber ich erinnere mich, dass ich wirklich tolle Mischungen aus Pink und Grün und so weiter gesehen habe. Nun, ich nehme keine Drogen ...

Es gibt einige Studien darüber, wie Farben Ihr Unterbewusstsein beeinflussen (beruhigen, Aggressionen hervorrufen, ...). Ich denke, dass die allgemein verwendeten Farbschemata etwas darauf basieren. Vielleicht haben sie nur die Lesbarkeit erhöht. Codierung sollte keine Selbstmordmission sein.

Aber was das Farbschema der aktuellen IDEs betrifft, bin ich damit einverstanden. Seien wir ehrlich: Die einfache Idee dahinter ist, es einfacher zu machen, etwas zu finden, das sich vom allgemeinen "Code-Rauschen" unterscheidet. Und ehrlich gesagt ist es mir egal, welche Farben sie verwenden, um das zu ermöglichen. Es sollte nur nicht meine Augen verletzen oder Teile des Codes in meinen Hinterkopf brennen, wie ein grelles Rot auf einem Grünton.

Die Codierung sollte entspannend sein. Und das ist es für mich.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.