Microsoft VS Code turns 5: How GitHub, open source, Google made it a hit, reveals creator

VS Code's Erich Gamma details how GitHub, Electron and Chromium helped deliver world's most popular code editor.
Written by Liam Tung, Contributing Writer

Microsoft has released a new version of Visual Studio Code (VS Code), its hugely popular open-source code editor for Linux, macOS and Windows, which its creator, Microsoft technical fellow Erich Gamma, unveiled in 2015. 

The May 2020 VS Code update, version 1.46, brings more GitHub integrations, layout flexibility improvements, pinned editor tabs, syncing improvements, remote development updates, and Arm64 support for users of VS Code Insiders builds. 

VS Code was originally targeted at JavaScript and TypeScript web developers, but the VS Code marketplace now has nearly 20,000 extensions that extend support to Java, Python for machine learning, and Google's Go system programming language. 

SEE: Windows 10 Start menu hacks (TechRepublic Premium)

This week Microsoft handed the Go VS Code extension to Google's Go Team to maintain and, according to Microsoft, there are now 11 million developers using VS Code, making it possibly the world's most popular code editor, which is also used by over 40% of Go developers.   

This month's VS Code release builds on earlier work to make the VS Code layout more flexible, now allowing all users to switch the view from the Side Bar with the Panel by dragging a header or group.   

The pinned-tabs feature allows users to ensure these tabs appear ahead of non-pinned tabs, and that they don't scroll out of view when many tabs are opened. 

Pinned tabs also don't close when using the command Close Others and they stay open if users break the limit on the number of opened editors. 

The VS Code update includes TypeScript 3.9.4, which Microsoft released last month, offering developers significantly improved compile times

Microsoft notes that when users open Integrated Terminal in VS Code in the browser, there are now several more useful commands that work in the browser.  

Ahead of Microsoft's May Build developer conference, Microsoft announced Visual Studio Codespaces, a rebrand of Visual Studio Online, which allows developers to code from the browser using rented compute power from Azure. It also announced GitHub Codespaces, a take on VS Codespaces. 

The new commands lets developers use the browser-based VS Code as an editor for Git. 

There's an improvement for dropping files into VS Code's File Explorer, which now includes all child folders and files. 

Microsoft has posted an interview from this year's online Build conference with VS Code's creator, Erich Gamma, a technical fellow at Microsoft since it nabbed him from IBM in 2011 to work on what would become VS Code. 

Gamma, the original lead of the Eclipse Java development environment, discusses how VS Code handles the plethora of extensions it now has available.  

Gamma hit the "open-source button" for VS Code's GitHub repository on stage at a Microsoft conference in 2015 as part of his demonstration of the editor's broad extension support. To make the point clear, he demonstrated VS Code with the then Microsoft-maintained Go extension.  

Early on, VS Code had about 1,000 extensions but, according to Gamma, that figure has now grown to 18,000.  

He explains the history around VS Code initially being developed as a browser-based code editor under project Monaco. But it was first shipped as a desktop application and then followed up with browser edition, now known as VS Codespaces.  

"We really started with the Monaco editor in the browser and starting in 2013 we announced VS online Monaco, which was a setup that you could use to edit Azure app services in the browser," said Gamma, adding that user numbers were "pretty low". 

"So like any good startup, you have to decide, 'Do we pivot or persevere?'" he said.

VS Code initially had just 5,000 users, which Gamma says would have rendered it irrelevant at Microsoft. So the group opted to change tack, using a blend of its own technology along with open-source projects from GitHub and Google – respectively, Electron and Chromium – as well as server-side JavaScript runtime Node.js.  

"So we decided to switch to a desktop application, leveraging the web technology we had. It's one of these happy moments in time, just at this time a Node webkit became available, which allows you to run a JavaScript application that uses APIs as a desktop application."

SEE: New Windows 10 preview drops WSL2 Linux kernel, adds AMD nested virtualization

So six months before Microsoft released the beta of VS Code, Gamma decided to switch VS Code from a web-based editor to a desktop editor.     

"That was an important pivot and it was great that we had this technology that later became Electron, which later enabled us to us to do this platform shifting," he said. 

"Think about it. Every month we ship on three platforms at the same time. Shipping on a platform is never free, but Electron really helps us reduce the cost because Chromium already makes sure all the graphics engine, events and so on were cross platform."

Microsoft gained Electron via its acquisition of GitHub in 2018, but it had been working with GitHub on Electron since 2015 and before VS Code was unveiled. Besides VS Code, Yammer and Teams apps were also built using Electron.

More on Microsoft's Visual Studio Code

  • Programming language Go: Microsoft hands VS Code Go extension to Google's Go team  
  • Microsoft: This new update makes VS Code friendlier for Java programming language jobs  
  • Programming language Python VS Code extension: New update has critical security fix
  • Microsoft's VS Code 1.45 is out: GitHub integration plus JavaScript debugger update
  • Microsoft: Bosque is a new programming language built for AI in the cloud  
  • Microsoft's VS Code Python programming language extension gets this new update  
  • Microsoft: Try VS Code's new Python, C++ programming language tutorials, Docker updates  
  • Microsoft makes new GitHub collaboration tools available to testers  
  • Programming languages: Python and Java VS Code extensions get these new updates  
  • VS Code gets a big update: Plays nice with macOS Gatekeeper plus lots of new features  
  • Microsoft: VS Code for PowerShell 7 arrives with ISE mode  
  • New Microsoft VS Code browser editor update – better Go, Python language, Docker support  
  • Microsoft's VS Code Python programming language extension gets this new update  
  • Microsoft VS Code 1.42 is out: New debug tools for TypeScript, JavaScript, Chrome  
  • ServiceNow reveals VS Code alternative to its own web-based code editor  
  • Microsoft boosts programming language Python's popular VS Code extension  
  • Programming language Python's popular extension for Visual Studio Code revamped  
  • Facebook: Microsoft's Visual Studio Code is now our default development platform
  • JPMorgan's Athena has 35 million lines of Python code, and won't be updated to Python 3 in time TechRepublic
  • Mozilla's radical open-source move helped rewrite rules of tech CNET
  • Editorial standards