Last week I opened up VS Code, ready to get to work on a project. Instead, I was greeted with a wodge of error messages piling up in the bottom right corner. The C++ language server had crashed. This was important. My project is written in C++, and I need the language server. So I closed the window and opened it again. No difference. I restarted the langauge server manually using a palette comand. No difference. I updated the IDE to the latest version (a new one comes out seemingly every week) - no difference. What if I uninstall the C++ plugin and install it again? No difference! It was dead, kicked the bucket, shuffled off its mortal coil!
Of course the error message in the UI is singularly unhelpful. It tells me it crashed, OK fine, but then how do I fix that? Of course there’s no error code, no stacktrace, nothing. This is a tool for modern developers - you see; in today’s world nobody can be expected to understand the workings of their own tools. Least of all the toolmakers themselves, when they treat their own components as black boxes! In vain, I tried opening the IDE in verbose mode, to see if there was anything to be gleaned from the logs. Nothing obvious. That’s the point you realise something is going to take time to fix. So that’s that, I could fix it later, then… the feature was simple enough to write without the language server, I thought! My broken tool has only sent half an hour down the drain, no matter.
And then I realised that I can’t write code anymore. I can’t write C++ without the language server enabling the IDE to guide me, to complete my word when I press tab; to go to definition when I need it, and to give me the types when I hover. My muscle memory is so attuned to the IDE that I don’t know how to do anything outside of it’s safety. I have never thought of myself as an IDE softie - I wrote lots of the code for this project before VS Code even existed; and the magic incantations that control CMake are at the top of my mind. But compiling the code yourself is not the same thing as the oldfashioned mental map of the source code, the innate knowledge of the types and parameters of the functions you use everyday, and the ability to write a line of code that actually compiles!
Well I got the feature done, but it took a lot longer than usual, and only after a few false finishes when it failed to compile - no red squiggles to fix my mistakes as I go without the language server after all.
Now I have an IDE again, after I deployed the nuclear option of a whole fresh installation.1 Everything is back to normal and productivity is great. Just another lesson of the force multiplier that is modern tooling.
So what am I to take away from this all? Of course using an IDE makes the craft easier, but am I really a better, more efficient, programmer when I use an IDE, or am I in reality letting my skills rot away for some pretty colours and a few less keystrokes? Maybe… but I’ll try the next project with the training wheels turned off from the start, and see what difference it makes.
No comments yet!
To leave a comment, please send it via email here. Comments are licensed CC-BY as with the rest of the site. Your sender name and email address will be published along with the comment, unless you tell me not to.
Articles from other blogs I follow
One of the world’s most popular musicals is back, even grittier and more glamorous than before.Read more › This article was published on ianVisits SUPPORT THIS WEBSITE This website has been running now for just over a decade, and while advertising revenue c…via ianVisits August 12, 2022
Binti is an absolute treat. I've not read much Afro-Futurism, but what I have has been truly excellent and entertaining. What is it like to try to honour your ancestors while feeling the call for adventure? It's a topic which has been explored ad …via Terence Eden’s Blog August 12, 2022
I keep a pen & notebook on my desk, which I make liberal use of to jot down my thoughts. It works pretty well: ad-hoc todo lists, notes on problems I’m working on, tables, flowcharts, etc. It has some limitations, though. Sharing anything out of my noteb…via Drew DeVault's blog August 10, 2022
Generated by openring