3.4. Erich Gamma#
Swiss computer scientist
Co-author of “Design Patterns: Elements of Reusable Object-Oriented Software”
Co-wrote JUnit software testing framework (which helped kickstart test-driven development)
Lead designer of the Eclipse platform’s Java Development Tools (JDT)
Approached by Microsoft in 2011: What can you do with coding in the browser?
3.5. Monaco Editor#
Lightweight code editor that runs in the browser
Used by OneDrive, Internet Explorer F12 tools
Early version with some thousands of users, but developers & platform not ready yet
2014: Pivot to desktop via node webkit => VS Code
3.6. VS Code Desktop app#
First released in 04/2015
Ships to Windows, Linux, macOS as Electron app (built on top of Chromium and Node.js)
First Microsoft tool to run on Linux
Written in TypeScript (started around the same time)
Only uses standard web APIs, no web frameworks
Extensions run in separate processes, talk to the main process via remote procedure calls
Novelty: Language server protocol (LSP) for language support
talks only about documents and position => reuse same language server between editors!
LSP became a standard, supported by Visual Studio, vim, Emacs, Sublime Text, Atom, …
3.7. VS Code - license#
Source code is MIT licensed (released 11/2015)
Microsoft’s VS Code distribution
adds Microsoft branding
turns on telemetry by default
provides access to extensions marketplace hosted by Microsoft (some extensions are closed source)
Alternative distributions:
VSCodium: desktop build without Microsoft branding & telemetry, uses open-vsx.org marketplace
code-server: VS Code in the browser built by coder.com
OpenVSCode-server: VS Code in the browser built by Gitpod
…
3.8. VS Code - the open source project#
>10 years of development, >1M lines of code
Thousands of issues opened every month
Team goal: reply within 24 hours
Monthly release cycle
Team (2020): 36 = 25 engineers, 6 program managers, 2 doc writers, 1 designer, 1 marketing, 1 UX researcher
Watch later: How we make VS Code in the open