03-Microsoft-Loves-Open-Source

03-Microsoft-Loves-Open-Source

❤ 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.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    51 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us