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!
Microsoft & Open Source - a 'brave new world' - ProgSCon 2017
1. Microsoft and Open Source
a ‘brave new world’
www.mattwarren.org
@matthewwarren
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
14. 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!
15. Roslyn (C# Compiler)
C# compiler, written in C#
Can be consumed by 3rd parties
• Syntax highlighting
• Analysers
• Tooling
Language Design Discussions
27. 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/
31. 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#
32. Open Source .NET – 2 years later
http://mattwarren.org/2016/11/23/open-source-net-2-years-later/
33. 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
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