Why You Should Boycott VS Code
Microsoft's Visual Studio Code, commonly just called VS Code, is a great piece of software. This is in no small part due to all extensions on the extensive marketplace providing extreme flexibility. It has proven it to be adaptable to most, if not all, software development projects. My editor of choice, neovim, provides no such benefits out of the box, requiring me to configure everything, install language plugins, code completion, myself. Vim and neovim are by far more powerful editors, but lacking the ease-of-use of VSCode, and easy discoverability of new features; I don't recommend beginners to use these. Configuration is done through code, not a nice UI allowing you to browse a marketplace and take popularity into consideration when choosing between different plugins for the same task. And while both pieces of software are distributed as Open Source software, Microsoft is actively preventing the modification and distribution of the source code under the ethos of Open Source. What is Open Source Software? For software to be considered "Open Source", you must be able to make modifications, distribute the modifications, and run the software or your modified software for any purpose without any restrictions. The term "open source" is predated by "free software" The FSF (free software foundation)'s goal was to promote the development and use of free software, which they defined as software that grants users the freedom to run, study, share, and modify the code.1 "Free software" had a unclear meaning however, as "free" is unclear. It was free as in "free speech", not "free beer". "Open source" was coined instead to avoid confusion. While Richard Stahlman and FSF didn't adopt this, as the term might indicate you only had the ability to inspect software The Open Source Initiative still governs the core principles; that open source software can be modified and shared, regardless of its purpose. They also have a list of approved licenses you can use. Distributing Source Code is not Open Source. MongoDB is a piece of software by MongoDB Inc.2 who provides hosted MongoDB databases as a service. The source code of MongoDB is available under the conditions of their own proprietary SSPL license. The license provides a lot of flexibility in how you can use the software; you can even use it with no licensing fees to power your own web applications. But if you offer MongoDB as a service; the license impose some extreme requirements. MongoDB's approach is IMHO reasonable and fair. They are basically making the software freely available to anyone who is not a direct competitor to their own hosted service. But it's not "Open Source", as you do not have the freedom to modify and run the code without restrictions. How Visual Studio Code Violates the Ethos Visual Studio Code is distributed under the MIT license, a permissive license that allows you to do anything with the source code. This license is recognised by the OSI as an Open Source license. And quite predictably, a few forks of VSCode exists. VSCodium seems to be the most popular. This was all perfectly well, if it wasn't because of the barriers Microsoft impose on derived works ... VSCode has little value without any extensions. The VSCode marketplace has an almost infinite list of extensions, so almost no matter which tool or language you use, you will find an extension to provide support. If you want a new programming language to succeed, it's almost vital that you have proper VSCode integration. Microsoft also provides VSCode extensions as well. And this is where the problem lies, as you are not allowed to use these extensions in any a fork of VSCode. Two popular extensions provided by Microsoft are pylance and C/C++ for Visual Studio Code. Both of these contain the following condition in their license: You may install and use any number of copies of the software only with Microsoft Visual Studio, Visual Studio for Mac, Visual Studio Code, Azure DevOps, Team Foundation Server, and successor Microsoft products and services to develop and test your applications. The "Open Source Theatre" I call this the "Open Source Theatre", somewhat inspired by the "Security Theater" Security theater is the practice of implementing security measures that are considered to provide the feeling of improved security while doing little or nothing to achieve it.3 So while Microsoft distributes VSCode itself as an Open Source product, providing a feeling of commitment to Open Source, they are not just "doing little" to achieve it, they are actively fighting against this. The ethos dictates that you should be able to make modifications and run without restrictions, but they are actively placing barriers on those modifications. I would call this a legal loophole, as they managed to place "open source" in a context where they can violate the principles in the surrounding context. The Value of VSCode is it's Com

Microsoft's Visual Studio Code, commonly just called VS Code, is a great piece of software. This is in no small part due to all extensions on the extensive marketplace providing extreme flexibility. It has proven it to be adaptable to most, if not all, software development projects.
My editor of choice, neovim, provides no such benefits out of the box, requiring me to configure everything, install language plugins, code completion, myself.
Vim and neovim are by far more powerful editors, but lacking the ease-of-use of VSCode, and easy discoverability of new features; I don't recommend beginners to use these. Configuration is done through code, not a nice UI allowing you to browse a marketplace and take popularity into consideration when choosing between different plugins for the same task.
And while both pieces of software are distributed as Open Source software, Microsoft is actively preventing the modification and distribution of the source code under the ethos of Open Source.
What is Open Source Software?
For software to be considered "Open Source", you must be able to make modifications, distribute the modifications, and run the software or your modified software for any purpose without any restrictions.
The term "open source" is predated by "free software"
The FSF (free software foundation)'s goal was to promote the development and use of free software, which they defined as software that grants users the freedom to run, study, share, and modify the code.1
"Free software" had a unclear meaning however, as "free" is unclear. It was free as in "free speech", not "free beer". "Open source" was coined instead to avoid confusion. While Richard Stahlman and FSF didn't adopt this, as the term might indicate you only had the ability to inspect software
The Open Source Initiative still governs the core principles; that open source software can be modified and shared, regardless of its purpose. They also have a list of approved licenses you can use.
Distributing Source Code is not Open Source.
MongoDB is a piece of software by MongoDB Inc.2 who provides hosted MongoDB databases as a service. The source code of MongoDB is available under the conditions of their own proprietary SSPL license. The license provides a lot of flexibility in how you can use the software; you can even use it with no licensing fees to power your own web applications. But if you offer MongoDB as a service; the license impose some extreme requirements.
MongoDB's approach is IMHO reasonable and fair. They are basically making the software freely available to anyone who is not a direct competitor to their own hosted service.
But it's not "Open Source", as you do not have the freedom to modify and run the code without restrictions.
How Visual Studio Code Violates the Ethos
Visual Studio Code is distributed under the MIT license, a permissive license that allows you to do anything with the source code. This license is recognised by the OSI as an Open Source license. And quite predictably, a few forks of VSCode exists. VSCodium seems to be the most popular.
This was all perfectly well, if it wasn't because of the barriers Microsoft impose on derived works ...
VSCode has little value without any extensions. The VSCode marketplace has an almost infinite list of extensions, so almost no matter which tool or language you use, you will find an extension to provide support. If you want a new programming language to succeed, it's almost vital that you have proper VSCode integration.
Microsoft also provides VSCode extensions as well. And this is where the problem lies, as you are not allowed to use these extensions in any a fork of VSCode. Two popular extensions provided by Microsoft are pylance and C/C++ for Visual Studio Code. Both of these contain the following condition in their license:
You may install and use any number of copies of the software only with Microsoft Visual Studio, Visual Studio for Mac, Visual Studio Code, Azure DevOps, Team Foundation Server, and successor Microsoft products and services to develop and test your applications.
The "Open Source Theatre"
I call this the "Open Source Theatre", somewhat inspired by the "Security Theater"
Security theater is the practice of implementing security measures that are considered to provide the feeling of improved security while doing little or nothing to achieve it.3
So while Microsoft distributes VSCode itself as an Open Source product, providing a feeling of commitment to Open Source, they are not just "doing little" to achieve it, they are actively fighting against this. The ethos dictates that you should be able to make modifications and run without restrictions, but they are actively placing barriers on those modifications.
I would call this a legal loophole, as they managed to place "open source" in a context where they can violate the principles in the surrounding context.
The Value of VSCode is it's Community.
As I mentioned, I think VSCode is a good product, particularly as your first editor.
The value of VSCode comes from the ecosystem of extensions. While some are developed by Microsoft, the majority are developed by individuals or small teams made who provided their solutions as free and open source software. In effect, a large number of individual developers are increasing the value of VSCode, often in their spare time; but under the assumption that they are contributing to an Open Source community.
This isn't just a theoretical case, of some outdated licenses they forgot to update. Microsoft are actively enforcing the restriction, as this issue from the vscodium project shows. The plugin used to work from VSCodium, but Microsoft has actively taken measures to prevent this.
To be fair
While researching for this article, I notice that the restrictions is in the license for the compiled .vsix file distributed to the VSCode marketplace. Their source code have more permissive licenses. Maybe you could compile the extensions your self and use them? But the situation isn't clear from what I learned.
pylance has a license I think should be fine, but it's not an OSI approved license.4 At first, things looked better for the C/C++ extension, as it uses the OSI approved MIT license. But it also includes a notice that the code depends on runtime files "built and distributed by Microsoft; these are governed by the more restrictive proprietary license".
I did not research whether you could legally use these plugins if you were to compile them yourself. So these two plugin could be possible, but requiring extra work.
It doesn't change the fact that Microsoft are taking steps to actively prevent using the compiled version distributed to the VSCode marketplace, thus actively imposing barriers for VSCode forks.
Conclusion
The revolution of open source software is by far the most important change in the software industry I've witnessed during my career. When I started, software development required the purchase of tools, compilers and component libraries. Bugs in libraries meant bugs in your own code; with no ability to fix them yourself.
Open source has democratised software development. Large companies like Netflix, Meta, Google, have distributed tools as free and open source software.
And the linux kernel is a massive Open Source project. It's safe to say that the internet runs on Linux; and Google is also making a fair bit of profit from 2.5 billion active Android devices.
Even VSCode is build on the Open Source Electron framework, created by Github (later acquired by Microsoft) as a foundation for their Atom editor. And Electron is based on Chromium, the Open Source core powering Google Chrome.
I don't argue that companies are obligated to distributing their products as open source. Not at all. One of my favourite pieces of software, Obsidian is closed source, and I have no objection to that. They as a company need to make a profit, and they are free to chose their own strategy.5
But I do expect when a company release a product as Open Source, they support the ability to modify and distribute, rather than actively imposing barriers for derived works, while using this legal loophole to justify an "Open Source" label.
Open Source is important. Open source is worth fighting for.
If you are using VSCode, I encourage you to try something new. See if VSCodium works for you. Or even, see if you are ready to move on to vim or neovim. It's a completely different paradigm, but once you grok vim, you don't go back. Or even try out emacs.6
Hell, even check out JetBrains' products and see if they work for you. JetBrains have build development tools for decades, and have an insane amount of experience in that field. Unfortunately, their tools are closed-source7 paid products.8
But JetBrains don't pretend that they are not.
-
https://en.wikipedia.org/wiki/Open_source#Open_source_as_a_term ↩
-
Pylance source code is distributed under the Creative Commons Attribute 4.0 International license. Creative Commons is normally used for other creative arts, such as images, graphics, audio, etc. I've never seen it applied to software before. AFAIK it does follow the ethos of Open Source software. According to my research is not an OSI approved license. But that could simply be because it was never evaluated for that purpose. ↩
-
Obsidian is a safe investment because data is stored in an open format, markdown files. If at any point in the future I should want to abandon Obsidian, while I ca't rely on a fork suited for my purposes, I can still access my notes; using a plain text editor; like vim. ↩
-
Emacs seem to have decreased significantly in popularity. Many of the advantages emacs previously had over vim are easily achievable in neovim today. ↩
-
JetBrains have a staggering amount of Open Source projects, including the Kotlin programming language. But to the best of my knowledge, their IDEs are closed source. ↩
-
There appears to be free plans for non-commercial use. ↩