I have long been a proponent of simple text editors.
Not for me was emacs, with its multitude of modes and magical elisp code to do everything.
Not even vim with its multitude of extensions achieving magical productivity with three keystrokes.
Not even would I use the ubiquitous jetbrains IDE with magic refactoring that writes code on its own.
No, for twenty years or so I have written my code using a plain text editor. Until recently, that meant kwrite. Not even kate. Kwrite, the one that is slightly more powerful than notepad.
But then I got a new job, and everyone uses an IDE so I started thinking... I must be missing something.
Because if everyone is doing it differently from you, then one of the following things is likely to be true:
- everyone is wrong
- it's purely an opinion thing and it doesn't matter much
- you are missing out
You know you are old once you assume the first. Since I am going through some sort of weird mid life crisis I am forcing myself to choose the last option most of the time. So, I started trying out stuff. Which is why I no longer use bash. Or unity. Or KDE. But those are stories for some other bonfire, this one is about my text editor midlife crisis.
It's huge. And slow. Like, really slow. And the extension quality is very uneven. For example, all the terminals felt wrong.
Once it started dragging after being open for a couple of days... well, I removed it and smugly went back to my old workflow.
And then I tried...
The extension quality was soooo much better! And some are just awesome. The way you can choose a virtualenv interpreter for a project is awesome.
Compared to Atom it's downright snappy!
The only things I did not like were:
- So much magic in place, sometimes things only worked in the IDE.
- Too slow to start, so I still had to use a plain text editor for casual edits.
- At one point, things started to rot, and functions that had been working fine started to misbehave.
So then I had my goldielocks moment...
I was expecting to hate it. It's called Visual Studio! It comes from Microsoft! It's electron-based like Atom!
Yet, I loved it at first sight.
Not going to go over many details because I am not in the business of convincing people of things but here are some of the highlights:
- Good python support, including virtualenvs, formatting, autocomplete, refactoring, debugger, etc.
- Good Go support.
- Nice terminal gadget! Ctrl+click to open files mentioned in the terminal!
- Good markdown/reSt support including previews
- The "compared to working tree" view is genious
- If you run "vscode somefile" in the terminal, it opens in the current vscode.
- The settings mechanism and UX are a great idea.
- It's fast enough
- The UI is fairly minimal, so most of the time it will look like my previous workflow used to look: two text files open side by side.
- Test runner integration is neat.
- In Ubuntu you can install it as
snap install vscode --classic... takes all of 30 seconds. And it's updated forever.
- Lots and lots and lots of decent quality extensions.
So, all in all it does all the things I liked from the IDE side of the universe while not making the things I liked from text editors less convenient. And that's why I use it now.