Microsoft and open source
Microsoft, a technology company once known for its opposition to the open source software paradigm, turned to embrace the approach in the 2010s. From the 1970s through 2000s under CEOs Bill Gates and Steve Ballmer, Microsoft viewed the community creation and sharing of communal code, later to be known as free and open source software, as a threat to its business, and both executives spoke negatively against it. In the 2010s, as the industry turned towards cloud, embedded, and mobile computing—technologies powered by open source advances—CEO Satya Nadella led Microsoft towards open source adoption although Microsoft's traditional Windows business continued to grow throughout this period generating revenues of 26.8 billion in the third quarter of 2018, while Microsoft's Azure cloud revenues nearly doubled its revenue. Microsoft open sourced some of its code, including the.NET Framework and Visual Studio Code, and made investments in Linux development, server technology, and organizations, including the Linux Foundation and Open Source Initiative. Linux-based operating systems power the company's Azure cloud services. Microsoft acquired GitHub, the largest host for open source project infrastructure, in 2018. Microsoft is among the site's most active contributors. This acquisition lead a few projects to migrate away from GitHub. This proved a short lived phenomenon because by 2019 there were over 10 million new users of GitHub.
History
The paradigm of freely sharing computer source code—a practice known as open source—traces back to the earliest commercial computers, whose user groups shared code to reduce duplicate work and costs. Following an antitrust suit that forced the unbundling of IBM's hardware and software, a proprietary software industry grew throughout the 1970s, in which companies sought to protect their software products. The technology company Microsoft was founded in this period and has long been an embodiment of the proprietary paradigm and its tension with open source practices, well before the terms "free software" or "open source" were coined. Within a year of founding Microsoft, Bill Gates wrote an open letter that positioned the hobbyist act of copying software as a form of theft.Microsoft successfully expanded in personal computer and enterprise server markets through the 1990s, partially on the strength of the company's marketing strategies. By the late 1990s, Microsoft came to view the growing open source movement as a threat to their revenue and platform. Internal strategy memos from this period, known as the Halloween documents, describe the company's potential approaches to stopping open source momentum. One strategy was "embrace-extend-extinguish", in which Microsoft would adopt standard technology, add proprietary extensions, and upon establishing a customer base, would lock consumers into the proprietary extension to assert a monopoly of the space. The memos also acknowledged open source as a methodology capable of meeting or exceeding proprietary development methodology. Microsoft downplayed these memos as the opinions of an individual employee and not Microsoft's official position.
While many major companies worked with open source software in the 2000s, the decade was also marked by a "perennial war" between Microsoft and open source in which Microsoft continued to view open source as a scourge on its business and developed a reputation as the archenemy of the free and open source movement. Microsoft CEO Steve Ballmer likened Linux to a kind of cancer on intellectual property. Microsoft sued Lindows, a Linux operating system that could run Microsoft Windows applications, as a trademark violation. The court rejected the claim and after Microsoft purchased its trademark, the software changed its name to Linspire.
Adoption
In 2014, Satya Nadella was named the new CEO of Microsoft. Microsoft began to adopt open source into its core business. In contrast to Ballmer's stance, Nadella presented a slide that read, "Microsoft loves Linux". At the time of the acquisition of GitHub, Nadella said of Microsoft, "We are all in on open source." As the industry trended towards cloud, embedded, and mobile computing, Microsoft turned to open source to stay apace in these open source dominated fields. Microsoft's adoption of open source included several surprising turns. In 2014, the company opened the source of its.NET Framework to promote its software ecosystem and stimulate cross-platform development. In 2016, Microsoft introduced Windows Subsystem for Linux, which lets Linux applications run on the Windows operating system. The company invested in Linux server technology and Linux development to promote cross-platform compatibility and collaboration with open source companies and communities, culminating with Microsoft's platinum sponsorship of the Linux Foundation and seat on its Board of Directors. The Open Source Initiative, formerly a target of Microsoft, used the occasion of Microsoft's sponsorship in 2017 as a milestone for open source software's widespread acceptance. Microsoft delivered the keynote of the 2018 Southern California Linux Expo, a major convention.Microsoft developed Linux-based operating systems for use with its Azure cloud services. Azure Cloud Switch supports the Azure infrastructure and is based on open source and proprietary technology, and Azure Sphere powers Internet of things devices. As part of its announcement, Microsoft acknowledged Linux's role in small devices where the full Windows operating system would be unnecessary.
In 2018, Microsoft acquired GitHub, the largest host for open source project infrastructure. Microsoft is among the site's most active contributors and the site hosts the source code for Microsoft's Visual Studio Code and.NET runtime system. The company, though, has received some criticism for only providing limited returns to the Linux community, since the GPL license lets Microsoft modify Linux source code for internal use without sharing those changes. In 2019, Microsoft's Windows Subsystem for Linux 2 transitioned from an emulated Linux kernel to a full Linux kernel within a virtual machine, improving processor performance manifold. In-keeping with the GPL open source license, Microsoft will submit its kernel improvements for accommodation into the master, public release.
Microsoft transitioned its Edge browser to use the open source Chromium in 2019.
Selected products
- .NET Bio – Bioinformatics and genomics library created to enable simple loading, saving and analysis of biological data
- .NET Compiler Platform – Compilers and code analysis APIs for C# and Visual Basic.NET programming languages
- .NET Core – Software framework
- .NET Gadgeteer – Rapid-prototyping standard for building small electronic devices
- .NET Micro Framework –.NET Framework platform for resource-constrained devices
- AirSim – Simulator for drones, cars and other objects, built as a platform for AI research
- Allegiance – Multiplayer online game providing a mix of real-time strategy and player piloted space combat gameplay
- ASP.NET
- ASP.NET AJAX
- ASP.NET Core
- ASP.NET MVC
- ASP.NET Razor
- ASP.NET Web Forms
- Atom – Text and source code editor for macOS, Linux, and Microsoft Windows
- Blazor – Web framework that enables developers to create web apps using C# and HTML
- Bosque – Functional programming language
- C++/WinRT – C++ library for Microsoft's Windows Runtime platform, designed to provide access to modern Windows APIs
- C# – General-purpose, multi-paradigm programming language encompassing strong typing, lexically scoped, imperative, declarative, functional, generic, object-oriented, and component-oriented programming disciplines
- ChakraCore – JavaScript engine
- ChronoZoom – Project that visualizes time on the broadest possible scale from the Big Bang to the present day
- CLR Profiler – Memory profiler for the.NET Framework
- Conference XP – Video conferencing platform
- Dafny – Imperative compiled language that targets C# and supports formal specification through preconditions, postconditions, loop invariants and loop variants
- DeepSpeed – Deep learning optimization library for PyTorch
- Detours – C++ library for intercepting, monitoring and instrumenting binary functions on Microsoft Windows
- DiskSpd – Command-line tool for storage benchmarking that generates a variety of requests against computer files, partitions or storage devices
- Dynamic Language Runtime – Runtime that runs on top of the CLR and provides computer language services for dynamic languages
- F* – Functional programming language inspired by ML and aimed at program verification
- F# – General purpose, strongly typed, multi-paradigm programming language that encompasses functional, imperative, and object-oriented programming methods
- File Manager – File manager for Microsoft Windows
- Fluid Framework, a platform for real-time collaboration across applications
- – Reference implementation of the FourQ elliptic curve
- GW-BASIC – Dialect of the BASIC programming language
- Microsoft C++ Standard Library – Implementation of the C++ Standard Library
- MonoDevelop – Integrated development environment for Linux, macOS, and Windows
- MSBuild – Build tool set for managed code as well as native C++ code
- MsQuic – Implementation of the IETF QUIC protocol
- Open Live Writer – Desktop blogging application
- Open Management Infrastructure – CIM management server
- Orleans – Cross-platform software framework for building scalable and robust distributed applications based on the.NET Framework
- P – Programming language for asynchronous event-driven programming and the IoT
- PowerShell – Command-line shell and scripting language
- ProcDump – Command-line application for creating crash dumps during a CPU spike
- Project Mu – UEFI core used in Microsoft Surface and Hyper-V products
- PowerToys for Windows 10 – System utilities for power users
- Sandcastle – Documentation generator
- StyleCop – Static code analysis tool that checks C# code for conformance to recommended coding styles and a subset of the.NET Framework design guidelines
- TypeScript – Programming language similar to JavaScript, among the most popular on GitHub
- U-Prove – Cross-platform technology and accompanying SDK for user-centric identity management
- vcpkg – Cross-platform package manager used to simplify the acquisition and installation of third-party libraries
- VFS for Git – Virtual file system extension to the Git version control system
- Visual Basic.NET – Multi-paradigm, object-oriented programming language
- Visual Studio Code – Source code editor and debugger for Windows, Linux and macOS, and GitHub's top open source project
- Vowpal Wabbit – online interactive machine learning system library and program
- WikiBhasha – Multi-lingual content creation application for the Wikipedia online encyclopedia
- Windows Calculator – Software calculator
- Windows Communication Foundation – runtime and a set of APIs for building connected, service-oriented applications
- Windows Console – Terminal emulator
- Windows Driver Frameworks – Tools and libraries that aid in the creation of device drivers for Microsoft Windows
- Windows Forms – Graphical user interface class library
- Windows Package Manager – Package manager for Windows 10
- Windows Presentation Foundation – Graphical subsystem for rendering user interfaces in Windows-based applications
- Windows Template Library – Object-oriented C++ template library for Win32 development
- Windows Terminal – Terminal emulator
- Windows UI Library – Set of UI controls and features for the Universal Windows Platform
- WinJS – JavaScript library for cross-platform app development
- WinObjC – Middleware toolkit that allows iOS apps developed in Objective-C to be ported to Windows 10
- WiX – Toolset for building Windows Installer packages from XML
- WorldWide Telescope – Astronomy software
- XML Notepad – XML editor
- XSP – Standalone web server written in C# that hosts ASP.NET for Unix-like operating systems
- xUnit.net – Unit testing tool for the.NET Framework
- Z3 Theorem Prover – Cross-platform satisfiability modulo theories solver