最近喺 Twitter 見到一句 Tweet

Readability without syntax highlighting is actually a stress test for readability.

令我開始諗,究竟「有特別豐富 Syntax Highlight 寫出黎嘅 Source Code」V.S. 「冇乜 Syntax Highlight 寫出黎嘅 Source Code」,兩者之間嘅 Readability 會唔會有差別,兩方面互相閱讀對方 Source Code 時又會發生咩情況?

以下會以 Facebook Page Cover Bio 為例,講一講 Syntax Highlight 的矛盾。

情境

假設 A 愉快地運用了不同的 Kotlin 特性寫了一堆 Source Code,然後有 B 指出「好複雜、好難分、好難睇」,但 A 不敢苟同。

發現雙方的差異就在於 IDE 使用的 Syntax Highlighting Scheme。

以下是兩方的視角:(Mobile 可以自行 Zoom 大試下 Trace Code)

A 的視角 - Default(Darcula) UI + GapStyle 3.0
B 的視角 - Default(Darcula) UI + Darcula
No Syntax Highlight

A 認為 B 不能透過 Syntax Highlight 有效地獲得重要資訊,才會覺得堆 Code 「好複雜、好難分、好難睇」,只要安裝一個較好的 Syntax Highlighting Scheme 就可以解決。

矛盾

  • A 認為自己使用的 Syntax Highlight Scheme 是 100% 公開及免費的,任可人都可以隨時一鍵安裝及使用,既沒有貧富差異,亦沒有道德伽鎖
  • B 堅持只會使用 Default IDE 的 Syntax Highlight,不希望使用 Default 以外的東西

不解之謎

  1. 這個矛盾可以怎麼解決?(雙方各有自己的堅持)
  2. 使用不同的 Syntax Highlight Scheme 開發是否會影響最後成品 Source Code 的 Readability?

我的看法

因為冇得做 A/B Test,我自己都搵唔到答案,近一年多咗時間指導同事,喺佢地部機嘅 IDE Trace Bug / Pair Programming 時,望住個 Default(Darcula) / Default(VSCode) 覺得 Read Code 嘅 Productivity 大跌!

所以通常我遇到 Intellij / Android Studio / VSCode 用緊全 Default 嘅同事,我劈頭第一句就會問:

想問下你,你對 Syntax Highlight 啲顏色有冇一份執著?

如果答:「冇」嘅時候,我就會推薦同事試下用 GapStyle 一排,數據顯示多數用過嘅同事通常都「返唔到轉頭」,暫時無乜替代品做到同樣程度嘅 Productivity Boost。

我嘅諗法好簡單

Productivity 高咗,同樣時間做到更多嘅事,亦代表多咗機會提升  Quality, Readability 亦係其中一個 Quality 指標

雖不能以大規模 A/B Test 實証,但我會選擇叫更多人去試下 Default 以外的 Color Scheme,感受一下前人留下的文化遺產。


了解更多

我一向主張

每一位開發者都應該擁有自己一套 Productive 的 Syntax Highlighting Scheme

幾個月前寫了 5000 字去講解 《Productivity 及 Semantic Highlighting》 ,有興趣亦可以了解一下 GapStyle 的設計原理

其它主流 Syntax Highlight Scheme

Night Owl
Atom One Dark
Monokai Pro
Solarized Dark
Material Oceanic
Material Darker
GitHub