
❤ Erich Gamma Distinguished Engineer Daily Active Users of VS Code Connect() ??? Christmas Holidays Envision new paradigms for online developer tooling that will be as successful as the IDE has been for the desktop Build a development experience in a browser … that makes you forget you’re in a browser BEFORE AFTER BEFORE AFTER No expensive operations in the UI thread Main Thread Web Worker Model Mirror Model events events mode.suggest(model.id, position).then((results) => { // render suggestions }); Minified code: an editor’s worst nightmare What’s in 42 lines? 3409 spans (~tokens) 281 spans (~tokens) Eat your own dogfood http Meanwhile Microsoft Changes Run on Windows Run everywhere Edit in Visual Studio Use your favorite editor Black box compilers Open Language Service APIs Proprietary Open Source Hacker News: Microsoft “Hit List” https://hn.algolia.com/?query=Microsoft DEMO: .NET Core Development on OS X 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 https://github.com/Microsoft/vscode/ Focus on the Coding Inner Loop Commit Edit Integrated Git Fast, lean editor, many languages code understanding Debug Build Integrated debugger many build tools (tasks) many debuggers integrated errors 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 integration file/folders with project context platform tools many languages ... keyboard centered code understanding debug task running Inside Visual Studio Code – OSS in Action Electron, Node TypeScript Monaco Editor It’s fun to program in JavaScript Compensating patterns for classes, modules and namespaces. Refactoring JavaScript code is difficult! Code becomes read only and code rots over time. Defining and documentation of APIs is difficult. Type information in comments are not checked TypeScript Optional static types – better tooling: IntelliSense, Refactoring Better APIs docs More safety delete this.markers[range.statMarkerId]; // startMarkerId Use features from the future (ES6, ES7) today DEMO: TypeScript support for JavaScript TypeScript 2.0 Non-Nullable Types Async/await downlevel support Improved typings acquisition https://github.com/Microsoft/TypeScript/wiki/Roadmap Extensions Inside Extensions Controlled extensibility JavaScript or Extension Main Extension TypeScript ExtensionHost Process Host IPC RPC Host Reuse node modules Node Renderer process API: vscode.d.ts Extension description: package.json DEMO: Extension Development Extensions, Extensions, Extensions 1000+ extensions in the marketplace Language/Debug services OmniSharp Server PowerShell Go CLI Tools Jedi Extension RPC Host vs Renderer process Node racer javac TS/JS Server (*) code language protocol JSON DEMO: Sublime November 2015: VS Code goes OSS Transparency Development Community Team Feedback OSS - Transparency Feedback Channels Questions: Stack Overflow Issues/Pull Requests: GitHub Feature Voting: User Voice Sentiment: Twitter MSFT FTEs use to same channels Feedback Example - Accessibility Collaboration with GitHub on Electron accessibility https://github.com/Microsoft/vscode/issues/2108 ASP.net Community Standups https://live.asp.net/ https://live.asp.net/ Feedback Many issues Some great PRs Stars Development Channels Stability Daily updates VS Code OSS vs. VS Code Distro VS Code OSS VS Code Distro Everybody can build from github repo Builds on VS Code Not branded MS branded (logo, telemetry, gallery) MIT License MS Standard License Supported by Community Supported by MS A large organization acts like a smaller organization Transparency across projects, issues roadmaps Contributions via Pull Requests across projects Easy for Developers VS Code consumes 142 OSS components, 90+% are node modules Variety of licenses, sometimes none We track, review each license, C/R statements for every dependency Needs tooling to generate and maintain third party notices Easy for Contributors: CLA BOT Microsoft ❤ Open Source Software It is fun! (with the right tools and processes) Thank you! @erichgamma @code.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages51 Page
-
File Size-