The Journey of Visual Studio Code
The Journey of Visual Studio Code
Erich Gamma
Envision new paradigms for online
developer tooling that will be as successful
as the IDE has been for the desktop
2012
2011
Eat your own dogfood
h"p
2011
2012
2012
2013
Meanwhile Microso; Changes
h@ps://hn.algolia.com/?query=MicrosoH
Pivot
or
Persevere?
Visual Studio
Code
A tool that combines the simplicity of a code
editor with what developers need for the core
code-build-debug-commit cycle
editor IDE
lightweight/fast project systems
keyboard centered code understanding
file/folders debug
many languages integrated build
many workflows File>New, wizards
designers
lightweight/fast ALM integraVon
file/folders with project context plaWorm tools
many languages ...
keyboard centered
code understanding
debug
task running
Inside Visual Studio Code – OSS in AcGon
Electron, Node
TypeScript
Monaco Editor
It’s fun
to program in
JavaScript
Compensating patterns for classes, modules and namespaces.
More safety
delete this.markers[range.statMarkerId]; // startMarkerId
… implemented in Java
JavaScript or
Main Extension TypeScript
Extension
Process Extension
Host
Host
IPC RP Host Reuse node modules
C
Renderer process Node
API: vscode.d.ts
Extension descripVon:
package.json
Language API
Language API – Providers
Editor Provider
registerHoverProvider() provideHover()
… …
DEMO: Extension Development
Extensions, Extensions, Extensions
PowerShell
Go CLI Tools
Jedi
Extension
RP Host vs
C
Renderer process Node racer
javac
stackTrace Returns the stack trace from the current execuVon state
variables Returns the children of all variables given a variable reference
Event
stopped The execuVon of the debugee has stopped
exited The debugee has terminated
DEMO: Sublime
November 2015: VS Code goes OSS
Transparency
Development
Community
Team
Feedback
OSS - Transparency
Feedback Channels
QuesVons: Stack Overflow
Issues/Pull Requests: GitHub
Feature VoVng: User Voice
SenVment: Twi"er
h@ps://github.com/MicrosoH/vscode/issues/2108
More Feedback: Development Channels
@erichgamma
@code