VS Code is not what it seems...

I know that you might have clicked on this article only because of the title. So, to not let you down, here's your TL;DR - VS Code isn't (entirely) open-source. Interested or surprised? Good. Now, let's dive deep!

Open-source code editors

With increasingly popular JavaScript and interconnected web development sector growing rapidly, it's no surprise that modern code editors heavily focus on these two areas. Especially when the editors themselves rely on web technologies, like VS Code or Atom do. And, while most of these two's user bases consist mainly of web developers, there are many other people from the programming industry that also like them. But, what's also important to consider - especially for Open-Source Software (OSS) enthusiasts and this article alike - is the fact that both of the mentioned tools are open-source... or are they?

VS Code

Let's first examine the VS Code - a code editor originated from Microsoft, available to everyone for free with an open-source core. Core, because there are things that are put inside your favorite editor that aren't part of OSS. Probably the most obvious example is the telemetry system. You get a little pop-up about it (that you most likely ignore anyway) just after any VS Code installation. Of course, telemetry code isn't something that most companies would like to open-source. But, don't get me wrong here - it's not something that I'm mad about. Microsoft has made a great editor. They also made a significant and most substantial chunk of it truly open-source, and the telemetry can be freely disabled from the settings. I only want you to grasp the overall idea.

Repo

Next, even on the official VS Code repo - not much hidden, silenced, or anything like that - there's an issue with a comment explaining what the official binaries come with.

When we [Microsoft] 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.

It mentions telemetry, but also some other MS-specific settings (like the logo and other defaults). Maybe there are some other things put inside, but it doesn't matter. The thing to note is that they indeed let you know (if you look close enough), that you're not getting an open-source-only package.

Website

Similar stuff is going on on the official VS Code website. There's a lot of info about the VS Code itself and how it supports OSS, but there's no mention whatsoever that the therein provided software is fully open-source. Adding up to it - there's a visible message at the top of the main page (above the download button) that VS Code is "built on open-source". Kudos to MS for telling the truth... and intelligent marketing.

So, does it all even matter? Well, for die-heart OSS enthusiasts - maybe - but for day-to-day programmers - not so much. I think it's nice to know this little detail, especially next time when you'll be recommending VS Code to others. Yet still, you have to remember that a big chunk of the VS Code is open-source after all. This way, if you have time, you can simply grab the source code, build it, and happily use this great editor, without any Microsoft interference. But, as this can be a time-consuming and pretty unpleasant process, you might be happy to know that there's another way...

VS Codium

There's a project on GitHub that provides you with ready, pre-built, and MS-free VS Code binaries. It's called VSCodium, with the name being a nod to a duo of a similar kind - Google's Chrome and Chromium web browsers - which share an almost identical approach to handling distribution. It already has over 6K stars on GitHub and is constantly growing! Definitely worth checking out!

Atom

So, that's it for VS Code. What about Atom, you might ask? Does the same phenomenon take place here as well? Let's go through a similar investigation process to find out!

Atom - "a hackable text editor for the 21st century" - was initially developed by GitHub (now owned by MS) to be a great code editor, as well as a foundation and first Electron app ever created. Even to this day, it's well-known by many programmers and is often stack up against VS Code. Although its greatest days have (seemingly) passed, we have to remember that without it, there would be no VS Code or any other Electron-based app as we know and love (or hate) them today.

Website

Right off the bat, when visiting Atom's official website, there's a message (at the bottom of the main page) that it's 100% open-source. Sounds nice. How about we go deeper to confirm this claim?

Telemetry

If you visit Atom's terms of use or privacy page, you'll learn that Atom collects different kinds of telemetry data that you can naturally opt-out from. It's nothing new, but doesn't sound too "open-sourcey", does it? Well, it might surprise you if you here about it for the first time, but Atom provides its telemetry system in an external package that is actually open-source!

You can go to the Atom's metrics repo and check out what specific kinds of data Atom collects and how it does so. It's very detailed and open, so if it interests you, check it out! It's amazing to see an actual telemetry tool being open-source!

So, yes, Atom is truly open-source, and I'm pleased to say that. In today's world, with OSS becoming increasingly popular, it's hard to distinguish the real OSS from everything else. And even though open-source in any form is welcomed, it's good to know what's what.

What do you think?

That's it! I hope you enjoyed this little investigation. Both the VS Code and Atom are still excellent and highly-recommended tools - whether they're fully open-source or not. If you're deciding between the two right now, consider checking out my previous post to know the differences.

If you like this article, consider sharing it. To stay up-to-date with the latest content, follow me on Twitter, Facebook, Reddit, or through my weekly newsletter. Also, you can check out my new YouTube channel (new video is out!) and support me on Patreon. Have a nice day!