Summary: Visual Studio Code is sufficiently open source.
Explanation
VS Code, the application you download and install in your PC, is a product with Microsoft's branding that comes with telemetry. This means that certain usage information will be sent to Microsoft so Microsoft can (ideally) use this information to improve VS Code.
Its source code is available on Github under an MIT license, which is an open source license. However, the project available on Github doesn't contain Microsoft's branding and telemetry. So the VS Code you normally install isn't created entirely with open source code.
Some people may say that this isn't "open source" because you can't inspect what Microsoft's proprietary code is doing, which is a fair opinion. Lack of transparency is something to be concerned about.
Personally, I think open source isn't about inspecting the code, because most people wouldn't read the source code even if it's available either way, it's about having the independence to build the project from the source code and to modify it to fit your needs. As the user of the program, you aren't beholden to its developer.
To me, VS Code open source "enough" to be called open source. You can fork it if you want. If Microsoft disappears tomorrow, you can continue the project yourself. You're guaranteed all the freedoms Richard Stallman would want you to have. In particular, if you don't want Microsoft's telemetry, you can just build it from the source, and there won't be any telemetry in it. This is what open source is about. You aren't forced to run a program in your PC if you don't want to. You have the freedom to remove the code you don't want and keep only the parts you want.
Unless you would want to customize Microsoft's telemetry, then I guess you don't have the freedom to do that. But that's just a very tiny part of the whole program, so we can just ignore it and say it's open source enough.
There is a fully open source alternative called VSCodium [vscodium.com] that is just the open source parts, without the Microsoft parts if you want. You won't be able to customize the Microsoft's telemetry in it either, so it's fully open source by removing the closed source parts.
This is just like how Google Chrome is a product made by Google, so it has Google's branding and telemetry built into it, while Chromium is an open source project that is essentially Chrome without the Google parts. In fact, I'm assuming it's called "VSCodium" because Chromium is called Chromium.
Quotes
The README
file on VS Code's repository makes it clear that the repository (named "Code - OSS") isn't the same thing as the Microsoft product called "Visual Studio Code."
This repository ("Code - OSS") is where we (Microsoft) develop the Visual Studio Code product together with the community. [...] This source code is available to everyone under the standard MIT license.
[...]
Visual Studio Code is a distribution of the Code - OSS repository with Microsoft-specific customizations released under a traditional Microsoft product license.
https://github.com/microsoft/vscode (accessed 2024-11-22)
An old comment cited by VSCodium explains it better.
When we set out to open source our code base, we looked for common practices to emulate for our scenario. We wanted to deliver a Microsoft branded product, built on top of an open source code base that the community could explore and contribute to.
We observed a number of branded products being released under a custom product license, while making the underlying source code available to the community under an open source license. For example, Chrome is built on Chromium, the Oracle JDK is built from OpenJDK, Xamarin Studio is built on MonoDevelop, and JetBrains products are built on top of the IntelliJ platform. Those branded products come with their own custom license terms, but are built on top of a code base that’s been open sourced.
We then follow a similar model for Visual Studio Code. We build on top of the
vscode
code base we just open sourced and we release it under a standard, pre-release Microsoft license.The cool thing about all of this is that you have the choice to use the Visual Studio Code branded product under our license or you can build a version of the tool straight from the
vscode
repository, under the MIT license.When we build Visual Studio Code, we do exactly this. We clone the vscode repository, we lay down a customized product.json that has Microsoft specific functionality (telemetry, gallery, logo, etc.), and then produce a build that we release under our license.
When you clone and build from the vscode repo, none of these endpoints are configured in the default product.json. Therefore, you generate a "clean" build, without the Microsoft customizations, which is by default licensed under the MIT license (note, i made this commit to help make this more clear).
Reply by Chris Dias, [https://github.com/Microsoft/vscode/issues/60#issuecomment-161792005] "Dec 3, 2015" (accessed 2024-11-22)
Leave a Reply