Small Bytes: Visual Studio Code (Premium)

As happens with most popular Microsoft brands, Visual Studio is used as the name for several different products, some of which have little to do with each other. There’s the flagship Visual Studio integrated developer environment (IDE), which came to life in the 1990s as Developer Studio and runs only on Windows. There’s Visual Studio for Mac, which started as Xamarin Studio and focuses largely on mobile app and game development. And then there is Visual Studio Code, a free, open-source, cross-platform, lightweight, and extensible code editor that has taken the developer world by storm since its initial release in 2015.

In the developer world, there are full-fledged IDEs and then there are editors. IDEs tend to be powerful, but big and unwieldy, and to many, they represent the old way of doing things, with projects, wizards, and designers. Editors, by comparison, are minimalist and lightweight, a new way of doing things, and they tend to work well with folder-based workflows, like web development.

Coming up in the world when I did, I saw software development through an IDE-colored lens. From the wonder of early MS-DOS-based IDEs like Borland’s Turbo Pascal to today’s Visual Studio, IDEs just made sense to me, and still do. They hid the complexities of the underlying compilers and added integrated debugging, IntelliSense, and other useful features.

But code editors have their advantages. And as the world has shifted to mobile, web, and cloud development, and to GitHub-hosted code repositories, this type of product has become quite popular. Where IDEs seem big and heavy and require a lot of configuration before they’re useful, code editors are light and fast and are immediately usable. Like IDEs, good code editors are extensible, so they can be tailored for different languages, frameworks, and workflows. They also tend to be very keyboard-centric, with lots of keyboard shortcuts instead of graphics interfaces: developers, like writers, like to keep their hands on the keyboard.

But I write that now with the benefit of hindsight. I never saw the value of standalone code editors and I certainly didn’t understand what Microsoft was trying to achieve with Visual Studio Code.

And while I am still in no way a Visual Studio Code expert today, I do understand the point of this product much more now than I did a decade ago. And I do use it every day, for writing, which speaks to the versatility of Code and the strength of its extensibility model, and, of course, for coding. To date, that’s been mostly web-based coding in JavaScript or TypeScript, but also Flutter, which can be used to create mobile, desktop, and web apps.

Of course, Visual Studio Code is in many ways more than just a code editor. It features the IntelliSense feature from “big” Visual Studio, and even some of its project management capabilities. It supports multiple languages out of the box and can be extended to support virtually any language and many developer frameworks. It has integrated debugging tools, just like “big” Visual Studio, and an integrated command line interface.

But Visual Studio Code also expands on the capabilities of “big” Visual Studio in some interesting ways. Its ability to open a folder in the editor makes it incredibly useful for finding and replacing code—or, as I discovered, text across any and all files in that folder, instantly: while creating Windows Everywhere, Rafael explained to me how I could make this type of change across thousands of instances of specific text/code in hundreds of Markdown files. It was a revelation.

So, yes, Visual Studio Code is a code editor. But it is so much more, a kind of “best of both worlds” solution that combines the performance and lightweight nature with the power of a full IDE. And then some.

Visual Studio Code was announced by Microsoft’s Scott Hanselman during the Build 2015 Day One keynote on April 29, 2015. At that time, Visual Studio for Mac didn’t yet exist—Microsoft would acquire Xamarin in February 2016—so Hanselman noted that while he could use other code editors like Emacs, Vim, and Sublime Text on non-Windows platforms like the Mac, he wished that there was a “member of the Visual Studio family” available. And as of that day, finally, there was.

Granted, Visual Studio Code bears little resemblance to its bigger sibling, and it remains a unique offering. But a key unique attribute of Visual Studio Code—“a code-optimized development tool,” according to Hanselman—was that it was not designed for Windows only: it ran, and runs, across Windows, Mac, and Linux. And that’s because Visual Studio Code came up out of work at Microsoft to create a web-based editor that was codenamed Monaco.

And Monaco came about after Microsoft hired Erich Gamma away from IBM in 2011. There, Gamma had been the technical lead on the Eclipse developer IDE, which focused on Java. The small Monaco team Gamma created operated as a startup within Microsoft, and it was an early adopter of Anders Heijlsberg’s TypeScript. And it is notable that this team rejected calls to create a Modern app version of Visual Studio for Windows 8, correctly deciding instead that cross-platform, web-based tools made much more sense. (In an interesting coincidence, the latest episode of Scott Hanselman’s Hanselminutes podcast is titled The Story of Visual Studio Code with Erich Gamma and Kai Maetzel.)

As originally visioned, Visual Studio Code targeted the types of developers that were leaving Microsoft and its proprietary platforms at the time, those that used lightweight code editors and command-line-centric development workflows. It should have been a massive failure, since those developers tend to work with a Mac or Linux and are, by nature, knee-jerk anti-Microsoft. But Visual Studio Code was an instant success, a tribute to its solid design, incredible performance, and extensibility. One day there was no Visual Studio Code and the next it was ubiquitous.

Code is built using Electron, a web-based technology that is usually derided for being top-heavy and resource intensive. And yet, Code is lightweight and fast, which likewise speaks to its quality. Where Microsoft is retreating from Electron elsewhere—as in the transition from the original Teams app to the new version—the Code team has clearly figured it out.

Gain unlimited access to Premium articles.

With technology shaping our everyday lives, how could we not dig deeper?

Thurrott Premium delivers an honest and thorough perspective about the technologies we use and rely on everyday. Discover deeper content as a Premium member.

Tagged with

Share post

Thurrott