the journey of visual studio code - gotocon.com studio a tool that combines the code simplicity of a...

47
The Journey of Visual Studio Code Erich Gamma

Upload: phambao

Post on 27-Mar-2018

218 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

The Journey of Visual Studio Code

ErichGamma

Page 2: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

Envision new paradigms for online developer tooling that will be as successful as the IDE has been for the desktop

Page 3: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

2012

Page 4: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

2011

Page 5: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

Eat your own dogfood

h"p

2011

Page 6: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

2012

Page 7: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

2012

Page 8: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

2013

Page 9: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

Meanwhile Microso; Changes

RunonWindows RuneverywhereEditinVisualStudio UseyourfavoriteeditorBlackboxcompilers OpenLanguageServiceAPIsProprietary OpenSource

Page 10: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle
Page 11: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

Hacker News: Microso; “Hit List”

h@ps://hn.algolia.com/?query=MicrosoH

Page 12: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

Pivotor

Persevere?

Page 13: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

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

Page 14: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

editor IDE

lightweight/fastkeyboardcenteredfile/foldersmanylanguagesmanyworkflows

projectsystemscodeunderstanding

debugintegratedbuild

File>New,wizardsdesigners

ALMintegraVonplaWormtools

...

lightweight/fastfile/folders withprojectcontextmanylanguageskeyboardcenteredcodeunderstandingdebugtaskrunning

Page 15: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle
Page 16: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle
Page 17: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle
Page 18: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

Inside Visual Studio Code – OSS in AcGon

Electron,NodeTypeScriptMonacoEditor

Page 19: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle
Page 20: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

It’s fun to program in JavaScript

Page 21: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

Compensating patterns for classes, modules and namespaces.

Refactoring JavaScript code is difficult! Code becomes read only Defining and documentation of APIs is difficult. Type information in comments are not checked

Page 22: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

TypeScript

OpVonalstaVctypes–be@ertooling:IntelliSense,RefactoringBe@erAPIsdocsMoresafety

deletethis.markers[range.statMarkerId];//startMarkerId

Usefeaturesfromthefuture(ES6,ES7)today

Page 23: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

Growing the Code

Page 24: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

VS Code Preview – April 2015

Page 25: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

Extensions

Page 26: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

Eclipse

Everythingis…...apluginwithcontribuVons…implementedinJava…runsinasingleshell/window

Page 27: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

Eclipse Plug-ins

Page 28: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

Extension isolaGon ControlledextensibilityJavaScriptorTypeScriptReusenodemodulesAPI:vscode.d.tsExtensiondescripVon:package.json

MainProcess

IPC

ExtensionHost

ExtensionHostRP

C

ExtensionHost

Node Renderer process

Page 29: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

Language API

Page 30: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

Language API – Providers

EditorregisterHoverProvider()…

ProviderprovideHover()…

Page 31: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

DEMO: Extension Development

Page 32: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

Extensions, Extensions, Extensions

1000+ extensions in the marketplace

Page 33: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

Language/Debug services

RPC

ExtensionHost

Node Renderer process

JSON

PowerShell

OmniSharpServer

GoCLITools

Jedi

vs

racer

javac

TS/JSServer(*) code language protocol

Page 34: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

Tool Protocols Request Response

definiFon ReturnsthefilelocaVonofthesymbolatthegivenfilelocaVon

references ReturnsthefilelocaVonsthatreferencethesymbolatthegivenfilelocaVon

compleFons ReturnspossiblecompleVonsatagivenfilelocaVon

symbolDetails ReturnatypeinformaVonanddocumentaVonforthesymbolatagivenfilelocaVon

format ReturnseditinstrucVonstoformatafile

outline ReturnslistofnavigaVontargetsforaparVcularfile

open NoVfiestheserverthattheeditorhosthasopenedafile

close NoVfiestheserverthatapreviouslyopenedfileisnowclosed

change NoVfiestheserverthatarangeofafilehaschanged

Request launch LaunchadebugeesetBreakpoints SetsmulVplebreakpoints

conFnue,next,stepIn,stepOut

ExecuVoncontrol

stackTrace ReturnsthestacktracefromthecurrentexecuVonstatevariables ReturnsthechildrenofallvariablesgivenavariablereferenceEvent stopped TheexecuVonofthedebugeehasstoppedexited Thedebugeehasterminated

Page 35: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

DEMO: Sublime

Page 36: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

November 2015: VS Code goes OSS

Page 37: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

DevelopmentTeam Community

Transparency

Feedback

Page 38: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

OSS - Transparency

Page 39: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

Feedback Channels

QuesVons:StackOverflowIssues/PullRequests:GitHubFeatureVoVng:UserVoiceSenVment:Twi"erMSFTFTEsusetosamechannels

Page 40: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

Feedback Example - Accessibility

CollaboraVonwithGitHubonElectronaccessibility

h@ps://github.com/MicrosoH/vscode/issues/2108

Page 41: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

More Feedback: Development Channels

DailyupdatesStability

Page 42: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle
Page 43: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

VS Code OSS vs. VS Code Distro

VSCodeOSSEverybodycanbuildfromgithubrepoNotbrandedMITLicenseSupportedbyCommunity

VSCodeDistroBuildsonVSCodeMSbranded(logo,telemetry,gallery)MSStandardLicenseSupportedbyMS

Page 44: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

Easy for Developers

VSCodeconsumes142OSScomponents,90+%arenodemodules

Varietyoflicenses,someVmesnoneWetrack,revieweachlicense,C/Rstatementsforeverydependency

NeedstoolingtogenerateandmaintainthirdpartynoVces

Page 45: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

Easy for Contributors: CLA BOT

Page 46: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

Summary

RunonWindows RuneverywhereEditinVisualStudio UseyourfavoriteeditorBlackboxcompilers OpenLanguageServiceAPIsProprietary OpenSource

Page 47: The Journey of Visual Studio Code - gotocon.com Studio A tool that combines the Code simplicity of a code editor with what developers need for the core code-build-debug-commit cycle

Thank you!

@erichgamma@code