Dark Mode in Clubhouse is here! Learnmore

"It's free", "it's open source" and 5 other reasons why VS Code is so popular with developers

Tobias Merkle

If you’re like me, you’ve heard everything about every text editor. If there’s one thing developers love to do more than bike-shedding about things nobody will ever use, it’s bike-shedding about things we use every day. “Anything you can do in Emacs, you can do in Vim with less finger pain,” somebody once said. “Ah, but Emacs could have an IRC client in it,” the other guy replied, and now look. Look what happened.

Leaving aside the Big Two editors for a moment, it’s genuinely difficult to find something satisfying to work with for larger projects where you may need to jump around files and references rapidly. I’ve heard that I should use Atom, which is now practically dead in the water and tends to lag. Sublime is only useful if you don’t know Emacs or Vim yet. And God help you if somebody tells you to use an IDE before you’re experienced enough to know what you're doing - did you know Eclipse users fail interviews more frequently than any other single group of editor users?

One engineer I know uses LightTable with a zillion customizations, many of which he’s written himself. Watching him code is painful in the same way that watching a child prodigy play violin brilliantly is painful - the knowledge that you will never have that level of technical skill. But perhaps that’s what LightTable is: an editor for mad geniuses and the rest of us brainlets need something that takes care of the hard stuff and sensitive edge decisions. Something to help us avoid thinking too much and just get to coding. Something that looks good, feels good, plays nice with complexity, supports lots of extensions, and won’t randomly die one day because it’s mysteriously funded by a shadowy and unaccountable corporation.

Enter Visual Studio Code. Released just four years ago, it’s rapidly becoming one of the most popular editors on the market, and is a comfortable distance between the hyper-customizable clean slate editors and the fully-featured licensed IDEs like IntelliJ or Visual Studio. It’s Electron-based, so it runs on Linux, Mac, and Windows, it supports compilation for a bunch of languages, and it’s both free as in beer and free as in speech. Yes, really: Microsoft, not only purchased Github (therefore indirectly deprecating Atom), but they completely open sourced their professional IDE and have made it freely available to all comers. I, personally, was astonished when I learned all this because the name “VS Code” sounds exactly like something I expected to pay around $80 for.

VS Code in action.

I don’t mean to rib Sublime or any other proprietary text editor too much, really; it’s perfectly respectable to expect to get paid for your work (and it’s not like open source developers get paid). But in the case of VS Code, the editor has a billion-dollar corporation paying who knows how many developers to improve it, 40 hours a week. And, just like React, it's an open source tool used by a rapidly increasing number of developers every day and must support scores of extensions and improvements. The effect that VSC could have on the editor landscape can hardly be overstated.

Let’s examine in more detail why VSC is suddenly the coolest thing you can do with your fake Chromium process. I asked some engineers that use VS Code why they like it so much. Each offered me a different opinion:

  1. It’s free ($0).
  2. It’s Free (open source).
  3. It’s written in Typescript, meaning bugs in the program are less weird than other Electron things are, usually. (Not everyone uses strong types when writing JavaScript apps, and that's terrible.)
  4. It works on all three big operating systems, but it handily supports the development of (among other things) Electron apps. One said: “There’s something beautiful about using a universally-compatible app to write other universally-compatible apps.” And yes, young devs, this does mean that you can get open source contribution cred by making helpful pull requests to their source code.
  5. It implements Microsoft’s Language Server Protocol, which means hover-over definitions, tips, and suggestions for any language. I was very surprised at this one.
  6. While it needs extensions to be truly good, the window display/positioning is super configurable. With a little tweaking, you can even change the font to Old English, or Comic Sans, if you are so inclined.
  7. Apparently, a sizable group of .NET devs are of the opinion that it’s the best PowerShell script editor out there.

All that said, there were some things people didn’t like:

  • A personal gripe from the author: “Code” is the most business-y word you could possibly name your editor, and I will not defend it. Name your editor Bubble Code? Everyone calls it Bubble, it’s cute, we’re all happy. Crystal Code? Take all of my money. But Microsoft Marketing decided to call it VS Code, and now we all have to say “vee ess code” to refer to this editor because why would developers use the word “Code” to mean anything but actual code? Just what I need in my life: another unnecessarily long and nondescript variable name.
  • “It’s like a terrifying forest of trees, made of windows. I get lost.”

The view from my (covered in books, toy dinosaurs, and colorful crystals) desk is that VS Code is a sophisticated program with an accessible interface that more experienced devs can modify to suit their needs. It isn’t one of the fully-featured cruise liners like Visual Studio proper or IntelliJ, and it’s not specialized to a single platform like Android Studio, but as far as I can tell it’s about as good as you can get for a free cross-platform editor.

Do you use VS Code? Maybe you believe every new developer should start out learning with VSC. Or perhaps you are vehemently opposed to it for a fundamental and important reason, some lack of a feature that is impossible to overlook? However you feel, share your thoughts with us in the comments or on Twitter! We're always hungry for your insights into the big developments in programming, code tooling, and all the other sundries of this fast-paced industry.