Advent 2021: Visual Studio Code
This blog is part of the 24 posts long series "Advent 2021":
- Advent 2021: Intro (December 01, 2021)
- Advent 2021: C++ (December 02, 2021)
- Advent 2021: C# (December 03, 2021)
- Advent 2021: Python (December 04, 2021)
- Advent 2021: Go (December 05, 2021)
- Advent 2021: TypeScript (December 06, 2021)
- Advent 2021: CMake (December 07, 2021)
- Advent 2021: Django (December 08, 2021)
- Advent 2021: Angular (December 09, 2021)
- Advent 2021: Flask (December 10, 2021)
- Advent 2021: gRPC (December 11, 2021)
- Advent 2021: GraphQL (December 12, 2021)
- Advent 2021: XML & JSON (December 13, 2021)
- Advent 2021: Matplotlib, Pandas & Numpy (December 14, 2021)
- Advent 2021: Linux (December 15, 2021)
- Advent 2021: Ansible (December 16, 2021)
- Advent 2021: SQLite (December 17, 2021)
- Advent 2021: Catch2 (December 18, 2021)
- Advent 2021: Zstandard (December 19, 2021)
- Advent 2021: ZFS (December 20, 2021)
- Advent 2021: Thunderbird (December 21, 2021)
- Advent 2021: Visual Studio Code (December 22, 2021)
- Advent 2021: Blender (December 23, 2021)
- Advent 2021: Open source (December 24, 2021)
Programming is editing text – source code or documentation doesn’t matter, one way or the other the majority of your day is spent in some form of text editor. I’m one of those people who likes to use a text editor in addition to the primary IDE. As a result, I’ve used a lot of different text editors over the years. In the early days, I’ve started with editors like “Programmer’s Notepad 2” and “Notepad++”, which were nice due to quick startup and some advanced editing capabilities, but nothing ground-breaking. Not until Sublime Text showed up with the “multi-caret editor” feature which was – in my opinion – a game changer. Suddenly some tasks I would typically do in my IDE were actually faster to do in the “text editor”.
I ended up being an early adopter (and licensee) of Sublime Text 2, but for various reasons, I moved on to Atom when it showed up. The Atom editor was an editor fully built on a web-based shell, with the majority of the code originally written in CoffeeScript (a language which compiles to JavaScript). This resulted in an explosion of extensions because suddenly you could write them in a highly popular language.
Shortly after Atom showed up, Visual Studio Code also appeared on the stage, with a core written in TypeScript. At first I wasn’t quite convinced of it (and early on, it was quite a bit “rougher” to use as Atom), but it quickly gained a lot of features and polishing. I’m still wondering if the success was down to picking the right technology, with TypeScript being a “better” language to scale a project than CoffeeScript.
In any case, these days Visual Studio Code ended up my editor of choice. In fact, all of the blog posts in this series have been written in it, as has been the underlying web framework handling my blog. It’s grown into a “serious” editor with various programming languages supporting it as an IDE. For instance, my adventures in Go were all done in Visual Studio Code – no IDE needed to start with. Similarly, I write all my Python code in Visual Studio Code.
This new world of “web based” editors might take a while to get used to, because they were definitely nowhere near as snappy as editors used to be, but this has dramatically improved. Together with the incredible ecosystem, first-class support for many modern programming languages, and a constant influx of new features I think it’s fair to say that this new way of writing editors has proven its value and is here to stay. I think we ended up in a great place here with fantastic editors like Visual Studio Code being readily available and constantly gaining functionality – and I’m curious to see what the next big revolution in text editing will be!