Successfully reported this slideshow.

Microsoft & Open Source - a 'brave new world' - ProgSCon 2017

1

Share

1 of 34
1 of 34

Microsoft & Open Source - a 'brave new world' - ProgSCon 2017

1

Share

Download to read offline

Description

It's a 'brave new world' or 'hell has frozen over' (depending on your point-of-view). Microsoft is the top contributor on GitHub, they have opened-sourced their entire .NET platform and gone cross-platform!

In this talk we will look at what the new 'Open-Source' Microsoft actually looks like, what they've done, how they're doing it and what it all means. From new features to compiler design meetings, from TechEmpower benchmarks to increased community contributions, we will examine it all!

Transcript

  1. 1. Microsoft and Open Source a ‘brave new world’ www.mattwarren.org @matthewwarren
  2. 2. Microsoft and Open Source a ‘brave new world’ What happened when Microsoft Open-Sourced EVERYTHING* * Well, not quite everything, but pretty much all of the .NET Framework
  3. 3. Before
  4. 4. Microsoft takes .NET Open Source
  5. 5. Licensing
  6. 6. Licensing
  7. 7. https://blogs.msdn.microsoft.com/bethmassi/2015/02/25/understanding-net-2015/
  8. 8. https://blogs.msdn.microsoft.com/bethmassi/2015/02/25/understanding-net-2015/
  9. 9. CoreCLR & CoreFX CoreCLR – Runtime or Virtual Machine • Garbage collector • JIT compiler • Base .NET data types • Many low-level classes CoreFX - Core Libraries • System.Collections • System.IO • System.Xml
  10. 10. CoreFX Labs Future work Span<T> (a.k.a Slices) High-performance text processing
  11. 11. Cmd-Line Tooling (CLI) λ dotnet new Created new C# project in C:usersmattdotnet. λ dotnet restore log : Restoring packages for C:usersmattdotnetproject.json... log : Writing lock file to disk. Path: C:usersmattdotnetproject.lock.json log : Restore completed in 23512ms. λ dotnet build Compiling dotnet for .NETCoreApp,Version=v1.1 Compilation succeeded. 0 Warning(s) 0 Error(s) Time elapsed 00:00:01.9025293 λ dotnet run Hello World!
  12. 12. Roslyn (C# Compiler) C# compiler, written in C# Can be consumed by 3rd parties • Syntax highlighting • Analysers • Tooling Language Design Discussions
  13. 13. TypeScript
  14. 14. VS Code
  15. 15. Kestrel Web Server
  16. 16. During
  17. 17. The First PR
  18. 18. Comedy PRs
  19. 19. Good • Organisation and Process • Never let PR’s rot • Provide infrastructure • Allow the community ‘in’ • ‘Getting started’ guides
  20. 20. Bad • Some decisions made behind ‘closed doors’ (e.g. ‘project.json’) • Microsoft still the ‘gate-keepers’ • Issues slipping through the gaps
  21. 21. After
  22. 22. Do .NET developers care?
  23. 23. Do .NET developers care? Did going open-source make any difference?
  24. 24. The organization with the largest number of contributors to open- source projects over the past year on GitHub is, surprisingly, Microsoft, GitHub announced today. https://octoverse.github.com/
  25. 25. Are Microsoft telling the truth?
  26. 26. Are Microsoft telling the truth? There’s only one way to find out!!
  27. 27. async Task<SearchIssuesResult> RunQuery(GitHubClientInfo clientInfo, string query, int pageSize, int pageNumber) { var issue = new SearchIssuesRequest(query); issue.Repos.Add(clientInfo.Organisation, clientInfo.Repository); issue.SortField = IssueSearchSort.Created; issue.Order = SortDirection.Ascending; issue.PerPage = pageSize; issue.Page = pageNumber; var result = await clientInfo.Client.Search.SearchIssues(issue); return result; } C#
  28. 28. Open Source .NET – 2 years later http://mattwarren.org/2016/11/23/open-source-net-2-years-later/
  29. 29. Do .NET developers care? • Sustained contributions • Not just an initial bump • Opening issues and creating pull-requests • Bug fixes, entire features, future ideas • Across the entire stack • Runtime, Class libraries, Compiler, JIT and even GC
  30. 30. Questions? www.mattwarren.org @matthewwarren

Editor's Notes

  • Who here is a .NET dev? Anyone?
    What runtimes/ecosystems do people mostly work with? Java, Javascript, Ruby, Go, something else?
  • Who here is a .NET dev? Anyone?
    What runtimes/ecosystems do people mostly work with? Java, Javascript, Ruby, Go, something else?
  • Go, Python, Javascript, Perl, R and many more

    Extensible

    Based on Chrome (Electron) engine
  • Go, Python, Javascript, Perl, R and many more

    Extensible

    Based on Chrome (Electron) engine
  • This happened DURING the keynote, where they were making the announcement!!
  • Area experts, manages, triages, etc
  • Did it make any difference?
  • Did it make any difference?
  • Open blog post in a browser (full-screen),
    talk though some stats, show trends, discuss methodology, etc
    CoreCLR
    CoreFX
    Roslyn

    Issues v Pull-Requests
  • Open blog post in a browser (full-screen),
    talk though some stats, show trends, discuss methodology, etc
    CoreCLR
    CoreFX
    Roslyn

    Issues v Pull-Requests
  • Tell a story, “I set out to find out….”
  • Open blog post in a browser (full-screen),
    talk though some stats, show trends, discuss methodology, etc
    CoreCLR
    CoreFX
    Roslyn
    Type-Script
    VS Code

    Issues v Pull-Requests
  • Summary, cover main points after showing the web page
  • Description

    It's a 'brave new world' or 'hell has frozen over' (depending on your point-of-view). Microsoft is the top contributor on GitHub, they have opened-sourced their entire .NET platform and gone cross-platform!

    In this talk we will look at what the new 'Open-Source' Microsoft actually looks like, what they've done, how they're doing it and what it all means. From new features to compiler design meetings, from TechEmpower benchmarks to increased community contributions, we will examine it all!

    Transcript

    1. 1. Microsoft and Open Source a ‘brave new world’ www.mattwarren.org @matthewwarren
    2. 2. Microsoft and Open Source a ‘brave new world’ What happened when Microsoft Open-Sourced EVERYTHING* * Well, not quite everything, but pretty much all of the .NET Framework
    3. 3. Before
    4. 4. Microsoft takes .NET Open Source
    5. 5. Licensing
    6. 6. Licensing
    7. 7. https://blogs.msdn.microsoft.com/bethmassi/2015/02/25/understanding-net-2015/
    8. 8. https://blogs.msdn.microsoft.com/bethmassi/2015/02/25/understanding-net-2015/
    9. 9. CoreCLR & CoreFX CoreCLR – Runtime or Virtual Machine • Garbage collector • JIT compiler • Base .NET data types • Many low-level classes CoreFX - Core Libraries • System.Collections • System.IO • System.Xml
    10. 10. CoreFX Labs Future work Span<T> (a.k.a Slices) High-performance text processing
    11. 11. Cmd-Line Tooling (CLI) λ dotnet new Created new C# project in C:usersmattdotnet. λ dotnet restore log : Restoring packages for C:usersmattdotnetproject.json... log : Writing lock file to disk. Path: C:usersmattdotnetproject.lock.json log : Restore completed in 23512ms. λ dotnet build Compiling dotnet for .NETCoreApp,Version=v1.1 Compilation succeeded. 0 Warning(s) 0 Error(s) Time elapsed 00:00:01.9025293 λ dotnet run Hello World!
    12. 12. Roslyn (C# Compiler) C# compiler, written in C# Can be consumed by 3rd parties • Syntax highlighting • Analysers • Tooling Language Design Discussions
    13. 13. TypeScript
    14. 14. VS Code
    15. 15. Kestrel Web Server
    16. 16. During
    17. 17. The First PR
    18. 18. Comedy PRs
    19. 19. Good • Organisation and Process • Never let PR’s rot • Provide infrastructure • Allow the community ‘in’ • ‘Getting started’ guides
    20. 20. Bad • Some decisions made behind ‘closed doors’ (e.g. ‘project.json’) • Microsoft still the ‘gate-keepers’ • Issues slipping through the gaps
    21. 21. After
    22. 22. Do .NET developers care?
    23. 23. Do .NET developers care? Did going open-source make any difference?
    24. 24. The organization with the largest number of contributors to open- source projects over the past year on GitHub is, surprisingly, Microsoft, GitHub announced today. https://octoverse.github.com/
    25. 25. Are Microsoft telling the truth?
    26. 26. Are Microsoft telling the truth? There’s only one way to find out!!
    27. 27. async Task<SearchIssuesResult> RunQuery(GitHubClientInfo clientInfo, string query, int pageSize, int pageNumber) { var issue = new SearchIssuesRequest(query); issue.Repos.Add(clientInfo.Organisation, clientInfo.Repository); issue.SortField = IssueSearchSort.Created; issue.Order = SortDirection.Ascending; issue.PerPage = pageSize; issue.Page = pageNumber; var result = await clientInfo.Client.Search.SearchIssues(issue); return result; } C#
    28. 28. Open Source .NET – 2 years later http://mattwarren.org/2016/11/23/open-source-net-2-years-later/
    29. 29. Do .NET developers care? • Sustained contributions • Not just an initial bump • Opening issues and creating pull-requests • Bug fixes, entire features, future ideas • Across the entire stack • Runtime, Class libraries, Compiler, JIT and even GC
    30. 30. Questions? www.mattwarren.org @matthewwarren

    Editor's Notes

  • Who here is a .NET dev? Anyone?
    What runtimes/ecosystems do people mostly work with? Java, Javascript, Ruby, Go, something else?
  • Who here is a .NET dev? Anyone?
    What runtimes/ecosystems do people mostly work with? Java, Javascript, Ruby, Go, something else?
  • Go, Python, Javascript, Perl, R and many more

    Extensible

    Based on Chrome (Electron) engine
  • Go, Python, Javascript, Perl, R and many more

    Extensible

    Based on Chrome (Electron) engine
  • This happened DURING the keynote, where they were making the announcement!!
  • Area experts, manages, triages, etc
  • Did it make any difference?
  • Did it make any difference?
  • Open blog post in a browser (full-screen),
    talk though some stats, show trends, discuss methodology, etc
    CoreCLR
    CoreFX
    Roslyn

    Issues v Pull-Requests
  • Open blog post in a browser (full-screen),
    talk though some stats, show trends, discuss methodology, etc
    CoreCLR
    CoreFX
    Roslyn

    Issues v Pull-Requests
  • Tell a story, “I set out to find out….”
  • Open blog post in a browser (full-screen),
    talk though some stats, show trends, discuss methodology, etc
    CoreCLR
    CoreFX
    Roslyn
    Type-Script
    VS Code

    Issues v Pull-Requests
  • Summary, cover main points after showing the web page
  • More Related Content

    Related Books

    Free with a 30 day trial from Scribd

    See all

    Related Audiobooks

    Free with a 30 day trial from Scribd

    See all

    ×