DEV Community

Cover image for The Rise of Microsoft Visual Studio Code
Lyn Levenick for Triplebyte

Posted on with ammonb • Originally published at triplebyte.com

The Rise of Microsoft Visual Studio Code

tl;dr Visual Studio Code usage is rising rapidly! VS Code is now the editor chosen by the majority of engineers during programming interviews, and it appears to be rapidly taking market share from other top editors.

Triplebyte interviews hundreds of engineers every week. For each interview, we record the editor, language and operating system used. We don't use this information to decide who passes our interview (I don't think that would be fair). However, it is fascinating data! It gives us insight into which tools different cohorts of engineers prefer, and how these preferences change over time. It also allows us to identify correlations between the tools engineers choose and their performance during programming interviews.

My co-worker Mike wrote a post about this data a year ago. But Triplebyte has grown a LOT since then, and we now have enough data to dive much deeper. That's my goal for this blog post.

Editor Usage Rates

To get started, I pulled data on the editors used during all interviews conducted over the last year:

editor-popularity-margin.png

The first thing that jumps out from this graph is the prominence of Visual Studio Code. With 17% of the pie, VS Code was the editor used by the plurality of Triplebyte candidates last year. This was a surprise to me for two reasons. First, VS Code is a relatively new product from Microsoft, and, second, last year it didn't even appear on our charts—its share was small enough to fall into the “other” bucket.

To get a better view of this, I graphed the same data over time:

editor-popularity-over-time-margin.png

Yikes! VS Code is eating everyone else's lunch! The story here is pretty clear. Over the past year, VS Code usage has gone from 5% to 22%. Over the same time, Sublime Text usage has fallen from 17% to 11%, and Atom usage has fallen from 11% to 6%. Even Eclipse is falling. And VS Code is accelerating every month. Google Trends shows the same thing:

editor-popularity-google-trends-margin.png

VS Code is on the rise and is poised to become the most dominant editor we've ever seen. Maybe I should give it a try!

Interview Pass Rates

Editor usage is only one part of the story, however. Not all usage is equal. I wanted to see which editors are used by the best programmers. To look at that, I pulled data on how Triplebyte candidates performed during our interview, grouped by the editor they used:

editor-performance-margin.png This chart shows the rates at which each editor's users pass our interview compared to the mean pass rate for all candidates. First, notice the preeminence of Emacs and Vim! Engineers who use these editors pass our interview at significantly higher rates than other engineers. And the effect size is not small. Emacs users pass our interview at a rate 50% higher than other engineers. What could explain this phenomenon? One possible explanation is that Vim and Emacs are old school. You might expect their users to have more experience and, thus, to do better. However, notice that VS Code is the third best editor—and it is brand new. This undercuts that narrative a bit (and makes VS Code look even more dominant).

Do Emacs and Vim users have some other characteristic that makes them more likely to succeed during interviews? Perhaps they tend to be more willing to invest time and effort customizing a complex editor in the short-term in order to get returns from a more powerful tool in the long-term?

On the negative end, engineers who use Eclipse, intelliJ and Visual Studio pass our interview at lower rates. What do Eclipse, IntelliJ and Visual Studio have in common? Well, they are all IDEs. However, PyCharm is also a full-featured IDE, and it shows a high pass rate. What else could be going on? Another distinguishing feature of Eclipes, IntelliJ, and Visual Studio is their strong association with Java and C#, so might we merely be seeing the result of a correlation between specific editors and specific languages?

To investigate this, I looked at interview pass rates by language as well:

language-performance-margin.png Java and C# do have relatively low pass rates, although notice that Eclipse has a lower pass rate than Java (-21.4% vs. -16.7), so we cannot fully explain its poor performance as Java dragging it down.

Also, what's going on with Go? Go programmers are great! To dig deeper into these questions, I looked at editor usage by language:

editor-by-language-margin.png The percentages on this graph are per editor. So we can see, for example, that 97% of engineers using PyCharm program in Python (which makes sense — it's in the name). Eclipse is dominated by Java (94%) and Visual Studio is mostly C# and C++ (88%). I can't really say which way the causality goes, but it seems that both the languages (Java, C#) and the IDEs (Eclipse, Visual Studio) are associated with lower pass rates in interviews. This data comes from our internal interviews, but the same result holds for interviews conducted by the outside companies who use our platform.

Triplebyte does not take language or editor selection into account when making interview decisions. And there are tons of great C# and Java programmers out there (and we've helped many of them get jobs with companies on our platform). However, it seems that the average C# or Java engineer who goes through our process does less well than the average Ruby or Go engineer. I have no idea why.

Another finding from this chart is the difference between VS Code and Sublime. VS Code is primarily used for JavaScript development (61%) but less frequently for Python development (22%). With Sublime, the numbers are basically reversed (51% Python and 30% JavaScript). It's interesting that VS Code users pass interviews at a higher rate than Sublime engineers, even though they predominately use a language with a lower success rate (JavaSript).

Experience / Location

To wrap things up, I sliced the data by experience level and location. Here you can see language usage by experience level:

language-by-experience-margin.png Again, rows sum to 100%, so the chart shows what percentage of people with a given level of experience use each language. Most notable here is how popular Python and Java are among candidates with only internships or part time experience. Are we seeing folks who recently graduated from college using the languages in which they were taught?

Then there's editor usage by experience level:

editor-by-experience-margin.png First off, you can see VS Code usage dropping off as experience level increases. It's definitely more popular among junior engineers. You can also see that Vim and Emacs are more popular among more experienced engineers. It seems plausible that this is indeed the main reason why Vim and Emacs users have such a high pass rate in our interviews.

Finally, we looked at the relationship between location and language used:

language-by-location.png I like this chart for what it says about Bay Area geography. On the peninsula, where larger companies tend to be located, you see a lot of Java developers. In San Francisco, where startups dominate, you see more JavaScript.

Conclusions

Here's a summary of the trends in tool usage we saw over the past year along with some intriguing relationships between the tools engineers choose and their programming ability:

Visual Studio Code is on the rise. Over the past year, it has become the most popular editor across the board, and it's gaining ground every month. I wonder if the editor landscape is experiencing a tectonic shift, from a relatively fractured market to a world in which a single editor has over 50% of the market?

Engineers who use old school editors like Vim or Emacs tend to be strong programmers. That said, this finding may be best explained by the fact that these editors are especially popular among more experienced engineers.

Engineers who use Go are also especially strong. If you know why, please let me know.

Engineers who use Eclipse or Visual Studio do less well (on average) in our interviews. This correlation still stands for interviews with external companies who use our platform.

Take all of this with a grain of salt. I want to end by saying that we don't think any of this is causative. That is, I don't recommend that you start using Emacs and Go (or stop using Eclipse and Java) on the basis of this data. There are strong programmers who use every set of tools. The most important thing in any interview is using the tool that you are most comfortable with.

I would really appreciate your feedback. I have a lot of questions about this data, and I would love to know what other programmers think about what we've seen over the past year. Email Ammon at ammon@triplebyte.com or Lyn at lyn@triplebyte.com!

No matter which editor you choose, if you're an engineer interested in being matched with top tech companies in San Francisco, New York, Los Angeles, and/or Seattle, check out our process.

If you're a company interested in hiring great engineers, explore our platform!

Top comments (70)

Collapse
 
jeroka profile image
Esteban Rocha • Edited

Nice data, it is clear that the IDE argument is not so false after all, and I totally agree that editors like VIM and Vs Code are way better than IDE's like eclipse, NetBeans or that crap that jetbrains offers.

It is sad too to see how Sublime Text is slowly dying... It is getting to much behind from the others, even that of Atom. And we all know its performance sucks.

On the other hand if Microsoft moves away from Electron, Vs Code will be unbeatable, much like chrome is on the browser market share space.

Collapse
 
turnerj profile image
James Turner • Edited

I guess it really depends on what you work on. I do .NET development and couldn't see myself not using Visual Studio - I consider it the best development tool I've ever used. That said, I've had terrible experiences with Eclipse and Netbeans when doing Java development though I don't know how much was the editor or the language so its not an IDE vs Non-IDE thing.

When I've done PHP development though, I am using VS Code. I tried Atom but found it crashing too often. Prior to that, I actually used Geany which is probably an uncommon editor for Windows.

Collapse
 
chrisallnutt profile image
Chris Allnutt

I keep VS around for this very reason. If I'm working on a C# or .NET project it's tooling is very well tailored to that work, including additional niceties like break statements, inspections, and memory and CPU profiling.

For Node, Ruby, and Python I almost exclusively use VS Code.

Collapse
 
truggeri profile image
Thomas Ruggeri

I saw very heavy Visual Studio use in a .NET shop, but when I was doing .Net core development, I exclusively used VS code. It is more light weight and integrates with C# nicely. It is possible, given the right stack, to do C# without VS proper.

Collapse
 
mikeschinkel profile image
Mike Schinkel

I've been a developer/software engineer/software architect for over 25 years, and you'll only take my JetBrain's IDEs out of my cold, grey, dead hands.

I can always tell the code people write in VIM, Sublime, Notepad, VSCode, etc. because the code is filled with bugs that my JetBrain's IDEs flag for me and make sure they are errors I do not make.

Collapse
 
jeroka profile image
Esteban Rocha

I don't see the difference.. Linters and the language server protocol are available for all editors too, I personally think that if someone writes bug filled code on a specific tool, it is not the tool for the blame, but the programmer.

Thread Thread
 
mikeschinkel profile image
Mike Schinkel • Edited

Sure it is the programmer's fault. It's their fault for not choosing good tools! He or she would have less reason to be blamed had they used better tools.

By the same logic, mechanics don't need wrenches, they only need hammers, and they should treat everything like a nail and bang on it. That makes no sense.

Good IDEs can make good developers better because they help them learn the language better than they would if they were left to scratching their head trying to understand why something does not work in a text editor. In an IDE the developer can read the hints that explain why it does not work and learn from them. I have been learning Go for the past 3 months and GoLand has been a godsend!

A good engineer knows that one of the most important aspects of being a good engineer is to pick the best tools for the job (and yes, I am a degreed engineer.)

That said, if you think working in a text editor is best for you, more power to you.

Collapse
 
simov profile image
simo

A friendly reminder:

Also:

You can use the pepper grinder to create pepper by turning the crank ...but, a pepper grinder is not pepper, so you must not try to eat it!

Collapse
 
mikeschinkel profile image
Mike Schinkel

JetBrain's IDEs are at 22.3% compared to 16.8% for VSCode.

IntelliJ + PyCharm + Android Studio are all different flavors of JetBrain IDEs, analogous to VSCode with different add-ons.

But grouping them together like this would not support the narrative you chose in the headline, so it seems obvious why you did not.

<sigh>

Collapse
 
neochar profile image
neochar

Moreover, PHPStorm is not pointed here.
When it comes to write PHP code - PHPStorm is #1 IDE and it is also JetBrain's product.

Collapse
 
mikeschinkel profile image
Mike Schinkel

lol, I should have mentioned PhpStorm too! Been using since before 1.0. :-)

Collapse
 
nickytonline profile image
Nick Taylor

I really love it as an editor. One thing I'd recommend to others is to install the Insiders build. You get all the new features as they come out instead of waiting for the official releases. Also, it's really stable.

You can grab it here, code.visualstudio.com/insiders/

Collapse
 
danjmillier profile image
Daniel Millier

Couldn't agree more! Been using VS Code for awhile and absolutely love it! Find it very lightweight compared to using IDEA or PyCharm.

Collapse
 
panta82 profile image
panta82 • Edited

Intellij, PyCharm and Android Studio are basically the same editor with different plugin mixes. Which puts JetBrains/Intellij IDE at #1.

Collapse
 
neochar profile image
neochar

Once again, if we mention PHPStorm the situation will change even more.

Collapse
 
jonhodgins profile image
Jon Hodgins

This is super interesting data! Thanks for compiling it.

I don't see VSCode being overtaken anytime in the near future. The only real improvement that can be made as far as I am concerned is to move off of Electron.

Collapse
 
marthaelax profile image
Angeiͥͥͥͥͥͥͥͥͥͥͥͥͥͥ

Many people complain about Electron being slow and a RAM eater framework, but VS Code is pretty fast, not like sublime, but still much faster than Atom. Why do you think they should move off of Electron and what would be a good alternative to it?

Collapse
 
andhop profile image
Andy Hopwood

What would you recommend as an alternative to electron?

Collapse
 
jeroka profile image
Esteban Rocha

Your totally right! VsCode and specially VIM will not make you a dependent mediocre dev like many of the others IDE's do, I have seen 95% of "IDE engineers" fail miserably when they have no access to their IDE, and the best engineers I have seen and worked with are able to write clean code on sublime, notepad, Atom, VsCode, Netbeans or whatever.

And yeah VIM really, this is not the first data that suggest that VIM or Emacs engineers have more solid core knowledge, and I'm quite happy to see that IDE's are declining, because people sometimes is not objective when it comes to understand that all tools have strengths and flaws, and I believe this actually hurts the industry as it is a red flag for a junior engineer, a senior should know this core principle at heart.

insights.stackoverflow.com/survey/...

Collapse
 
sambenskin profile image
Sam Benskin

Regarding VS Code, Go, and Ruby I think people that are more willing to try new languages and editors exhibit curiosity which is a behaviour that makes a good developer. That inquisitive nature will help diagnose and resolve issues. These types of people are always looking to push themselves further and by result will become better developers and be better equipped to demonstrate their talent in interviews.

Collapse
 
milmike profile image
MilMike

I like VS Code but it is very slow for bigger files (~10k of lines). Thats why I prefer Sublime for these kind of projects, to be fair, almost all of the code editors are painfully slow with big files.

Collapse
 
elmuerte profile image
Michiel Hendriks

People are even slower on big files.

Collapse
 
blazselih profile image
Blaž Šelih

This is a genuine question, not trolling.
What is a use case or reason for 10kloc files?
I see this as more of an architectural issue than editor problem.

Collapse
 
milmike profile image
MilMike

I work in projects having a large "inc/functions.php" file where everything is cramped. Library and logic stuff. This is bad practice, I know.. but no one has the time to refactor it, I tried once but older coworkers then asked why, where, what happend to function x... where is it.

Newer projects were built uppon that first app so the functions.php is growing bigger and bigger, containing unrelevant stuff from the first app. This is pure horror, not just for the code editor.

Thread Thread
 
blazselih profile image
Blaž Šelih

OK, thanks. I see your point (and feel your pain).

Collapse
 
dazlari profile image
Darron Smith

It would be interesting to separate out those who pay for their editor or opt for the freebie.

There's a good reason VSCode is free - MS is gunning for the mind-share of the new developers which is way more valuable to them than just being notable for having the best editor.

They have successfully turned the ship on this one with VSCode. Look out for a paid for VSCodePro when they clear 50%. Developers, developers, developers...

Collapse
 
pzelnip profile image
Adam Parkin

Possibly, though given MS's focus on Azure & the cloud, I think they're less focussed on milking devs for software licenses & more on betting on cloud revenue. VSCode is very much in line with that vision as there's many tools for Azure & such that are either built in or easily installable by extension, so getting as many devs to use VS Code as possible supports the whole Azure play they're riding right now.

Collapse
 
johnkazer profile image
John Kazer

Azure has an in-browser simple version of VSC which is gradually gaining features. I reckon it will eventually be one and the same...

Collapse
 
neochar profile image
neochar • Edited

People who say that IDE guys without their IDEs are nobody. Are you serious?
Why do you ever need to work without IDE? To work through ssh? There are tools created to get rid of working on server with ssh.

I prefer using Intellij IDEA with IdeaVim installed. Yes, I love Vim and I use it everyday in my console because I'm too lazy to setup deployment and earn some money to update my laptop to use IDEA 100%.

I use advantages of both sides: speed of moving through the code with Vim and code refactoring tools + context-based code completion from JetBrains. I really tried to setup comfortable Vim-based IDE but when it comes to everyday coding - there is nothing better than IDE which works on you.

While I'm writing a code with IDEA, in Vim/Neovim I have to deal with ctags problems, which is too stupid to send me to parent class method because there is a method with the same name in a file which has nothing to do with my current class. I need to setup my environment more and more in Vim/Neovim just to get what I already have in IDE out-of-box? Just to play Lego? No, thanks.

PS: sorry for my lack of English knowledge.

PPS: once again, I love Vim when I need to edit some small files / write little script / work through ssh / as IdeaVim plugin.

Collapse
 
m1guelpf profile image
Miguel Piedrafita

Nice article, turned it into audio for easier consumption :)

Collapse
 
jcabraham profile image
Jim Abraham

I will say to you what Dennis Ritchie said about Unix, in the days when Apple and Windows were yet to be consumer products: those who do not understand Unix are doomed to reinvent it -- badly.

Emacs and Vim are so incredibly powerful that they do things most people, including programmers, did not realize were possible in an editor. You probably work incredibly inefficiently, but you don't even realize what you could not be doing.

Collapse
 
kayis profile image
K

I used PHPStorm back in the days when I still used PHP.

I switched to WebStorm when I switched to JS, but it just wasn't the same, because JS just didn't have the same static typing features PHP had.

With TypeScript becoming the de facto type-system for JS, I thought about trying WebStorm again, but VSCode simply has the best TypeScript integration.

Collapse
 
nans profile image
Nans Dumortier • Edited

Actually I find that Webstorm works well with Typescript. It even enables you to generate code (like constructors), and it's really a feature that I miss (or didn't find?) in VS Code.

Collapse
 
ryansmith profile image
Ryan Smith

Interesting data, thanks for sharing. For the Go language, my theory is similar to the Vim/Emacs reasoning with experienced developers using it. It is a language you generally have to want to go and learn, not something you will get too familiar with in university courses or in coding boot camps.