4 ms·
I am a bona fide C++ hater, but that's just because I resent working on it for professional code that needs to work reliably with coworkers I don't entirely tru
by PittleyDunkin 2y ago
I am a bona fide C++ hater, but that's just because I resent working on it for professional code that needs to work reliably with coworkers I don't entirely trust. For personal projects it's one of the most satisfying coding contexts I've ever worked and it is indeed a blast to have such fine-grained control over execution.
I abandoned the language about a decade ago and I don't see myself looking back. My projects these days need long-term reliability more than anything and rust + cd/ci hits a sweet spot. That said, I do miss the thrill of designing and executing a program that runs in a certain way exactly as I intended and knowing that it was my expertise and insight that allowed this execution. Would I want to work with someone that was driven by that? Hell no! But it is personally a joy I won't forget.
Other inexcusable pain points: the build systems and package management is an absolute nightmare; the pre-processor feels like a sadistic joke; the syntax is horrible; there's so much cruft in the runtime you need years of experience to not machine-gun your foot off by using the most obvious tool at your disposal. But in a sense this just increases the joy of shipping a working executable with all your cleverness and blood and tears wrapped with a bow.
- nnadams 2y agoKudos for one of the most relatable descriptions of C++ I've read. I did a couple years writing C/C++ professionally, and I hope to not go back to that. Too many hours debugging other people's code, suffering vague integration issues, and just trying to get the build system spaghetti to run.
- mempko 2y agoWork should be fun too, not just personal projects. I've noticed that over the last 10 years, the tech world has seemed to lose this idea. I blame this on the large tech companies who seem to take the best people and put them in an adult prison. Granted a prison with good food and soft chairs. Even startups seem to be less fun. It seems the VC world foments a narrow window of thought with a lot of copy cat startups doing the same thing. Fads, lots of fads. I use C++ for every new project because I know if I need to build something myself, I can do it. Using frameworks all the time sucks because frameworks never work the way you want. Especially if it deals with the core of the project. If you can build it yourself, then do it, otherwise use a framework. And if you can build it yourself, C++ is a great tool because it can do everything and doesn't get in your way in all the important ways. Meaning, I can express my mental model directly in C++, where a language like Rust might complain I'm doing an unsafe thing. Sometimes I think in pointers damned and pointers are a great thing! Lets bring fun back! Not just in our personal lives, but work too!
- pdimitar 2y agoOK. Who pays for you having fun? How is your "but I am having fun optimizing this" help your boss pay the bills after a deadline is getting closer? People like you baffle me to no end and make me feel I've lived in a parallel universe my entire life -- when I read a comment like yours. How in the everliving frak have you people survived?
- cudgy 2y agoMaybe they are hired to resolve complex issues beyond the FAQ of a framework, because they know how the underpinnings of the framework work. Many frameworks and libraries are built in C++. Without curiosity and sense of adventure, what are you? Another clone of framework x?
- pdimitar 2y agoIf I was ever given a choice then I'd tell you. And I have done "resolving complex issues beyond the FAQ of a framework" many, MANY times. Almost as if country and environment have anything to do with it, more than merit.
- mempko 2y agoMaking software is more than coding. It's about both solving and finding problems. In my experience, boring people make uninteresting products and lack imagination to solve the hard ones. Having fun is crucial for creativity and loosening the mind to now what you "should do" but what you "could do". You get paid to solve problems not write software, and having fun is critical to solving problems. If you are bored, stressed, and frustrated, what makes you think your mind would be in a good place to solve problems?
- pdimitar 2y agoAnd you addressed exactly zero existential concerns. Assume I had no choice of the programming jobs I was taking in the last years. Now try to fit your framework of mind in it. Present me the result as a textual reply here? Hint: what I felt and how I felt... nobody cared.