VS Code Logo

VS Code (Visual Studio Code) 對技術的細緻,或許才是拉大與其他競品距離的主要原因。

VS Code 的快速興起,引起了不少人的討論。這篇沒有想要討論這麼大的議題,而是單純分享 VS Code 對於技術細節堅持的故事。

Integrated Terminal Performance Improvements 這篇文章已是 2017 年的舊聞,但仍值得再次提出來分享。

VS Code 是基於 Electron 框架的實現,一般工程師對於 Terminal 這種大量純粹基於 Cursor 和 Characters 的實現,都會習慣用 DOM 來渲染,好處是直覺又簡單。

但是 VS Code 團隊決定改用 Canvas 實現,據官方說法有幾個優點,

  1. 可以只基於「變化」之處重新渲染,也就是當畫面變動時,可以只基於有變動之處重繪,速度更快,但工程處理的邏輯相對複雜許多。
  2. 若機器有 GPU,可以基於 GPU 提速。相較 DOM 渲染為了要節約 CPU,所以只能處理低於 10 FPS,而 Canvas 可以達到 60 FPS。

或許也就是這些小細節的累積,漸漸拉大了 VS CodeAtom 等其他競品的差距。