C++ is Great — But the General Development Experience is Hot Garbage
Y'all gotta fix this shit frfr
A while ago, I began the arduous journey of improving my skills. Specifically, diving headfirst into C++ development.
The decision to do so didn’t come lightly. I knew I wanted to master a new language, I just didn’t know which one. I’ve spent many a day deliberating over which language to get into, trying to weigh all the pros and cons of each, which really just became an annoying form of procrastination.
I wanted a language that was cross-platform, so Swift was immediately out of the question. I wanted something that could compile into executable programs, which all but excluded a lot of the higher level scripting languages such as Python and JavaScript. Sure, there’s ElectronJS, but it’s something of a memory sink due to its reliance on Chromium — besides, that’s just web development but with extra steps. I also needed something that isn’t strongly favored for any one particular OS, so C# is out.
Hang on, I know what you’re thinking: C# can run on basically anything. This is true. However, I’d really rather not have to rely on Microsoft’s .NET framework any more than is necessary, really just on principle alone. It’s a language of bloatware by default.
In the end, C++ won out. It fit the bill for everything I wanted, and then some. Cross platform, compiling, efficient, not favored to any particular OS. It runs on basically everything. It’s a superset of C, the language that built Linux, but with objects. I can focus on higher-level work, build games, build software, get close to the metal and write incredibly efficient programs, build websites, do work with microcontrollers, and even just dick around in the console for funsies. What’s not to love?
Writing C++ is an absolutely wondrous experience, it’s simply a joy to behold. It brings a tear to my eye. I haven’t felt like this about code since I first started learning how to code all those years ago, and it makes me wonder why I didn’t start with C++ in the first place instead of going with Ruby and then JavaScript.
Actually, I should clarify something. Writing C++ in A SIMPLE CODE EDITOR is all that and a bag of chips. It’s great.
However, literally every single C++ IDE on the market is an absolute fucking nightmare. Of course, I very well could be biased — I started my coding journey with Notepad++, then Atom, and have been on VSCode for a few years now with a few dives into vim. I have a soft spot in my heart for lightweight, snappy programs, especially those that can edit text. It’s why I will always choose Scrivener over Word every single time. Even Google Docs is a bit too laggy for my tastes.
Going from using these airy and citrusy-fresh editors to a full IDE is disgusting. It’s the same feeling as leaving the spa feeling fresh and relaxed, and then immediately getting doused in bovine diarrhea. It’s disgusting. It makes me want to peel my skin off.
The main thing is the difference in speed. They’re abysmally slow, compared to a basic code editor. The responsiveness is in the sewer, and the customization is even further below that.
VSCode is the last vestige of hope for a halfway-decent C++ experience, but even then it falls short. Microsoft has graciously provided extensions for it that include compilation (assuming you have a compiler installed), syntax highlighting, and Intellisense. All very important, yes.
However: it’s a shitshow trying to get anything to compile properly from within VSCode. The instructions provided make it seem like it should just work out of the box, but it doesn’t, and the plethora of folks on Stack Overflow trying to figure out why just goes to prove it’s a horrible experience.
Why the fuck should I have to set up three separate JSON files just to get my code to compile?! I’m working with C++, not JavaScript. Fuck off with the JSON. I understand this is a limitation of VSCode, but let me rant.
And then we get into the documentation. I’m used to seeing documentation that is well-written, nicely organized, and is a pleasure to read. A prime example of this is MDN.
But what the fuck is this?!
Don’t even get me started on this seizure-inducing Craigslist-looking bullshit.
The only thing I could find that’s even remotely half-decent is DevDocs, but apparently they’re not “the standard” or whatever. What a shame.
To whoever is building and maintaining these docs sites: please for the love of all that is unholy, get a front-end dev to help you. I am screaming, crying, throwing up, begging on my knees.
With all of that being said, the ultimate C++ development experience is as follows: vim for editing, terminal for compilation.
It’s nice. It’s simple. It works entirely out of the box with no stupid configurations or JSON files or any of that wackadoodle ass shit.
And it’s extremely lightweight. Fresh. Zesty. A breath of mint. Crisp.
Of course, VSCode can still work since it’s got all my easy git configurations set up and ready to go, but I wouldn’t dare try to use it for compiling, even IF Microsoft wants to gaslight people into believing it’s easy. Fuck you, Microsoft.
Point being: all you need is a code editor and your compiler of choice installed. My suggestion is G++, but use whatever your little heart desires.