Nikita Prokopov has written a blog post detailing disenchantment with current software development. He has been writing software for 15 years and now regards the industry’s growing lack of care for efficiency, simplicity, and excellence as a problem to be solved. He addresses the following points one by one:
(Score: 2) by coolgopher on Thursday October 04 2018, @09:26AM (2 children)
Written as someone who hasn't used C++ on the metal for some time, I see. Though if you'd asked me last year, I would have agreed with many of your points. By now I've seen first-hand that careful C++ on a micro is perfectly doable and can add a lot of clarity to the code. If you're feeling locked to a particular version/compiler, you're doing it wrong.
(Score: 2) by turgid on Thursday October 04 2018, @08:28PM (1 child)
Is there a standard ABI now? Can you link modules compiled with one compiler to modules compiled with another? Or do you have to recompile all of your code? And what about templates? As soon as you start to use templates, you have to recompile everything, every single time...
I refuse to engage in a battle of wits with an unarmed opponent [wikipedia.org].
(Score: 2) by coolgopher on Friday October 05 2018, @12:49AM
If you're on ARM, certainly, it's all EABI*. Though why you'd want to use more than one compiler in the one project is beyond me, unless of course you're stuck with a binary blob library, in which case you're screwed in the first place :(
If you're using a decent dependency managing build system (e.g. make), you'll only recompile the parts that need recompiling. I'm not sure why you think templates mean you have to recompile everything all the time? The two downsides with templates are typically longer compile times (since they can't be dumped into their own compilation units; pre-compiled headers are an unpleasant attempt to improve that aspect, but maybe they've improved since last I tried using them), and larger binaries as you can easily get less code sharing happening if you're not thinking about such things while writing your templates. Having to recompile everything every single time is not one of the template downsides.
Please note that I'm not trying to imply that C++ is in any way perfect, it's assuredly not. It is however very powerful and flexible, and can make life so much more pleasant when used well.
*) Cue discussion about soft-float vs hard-float...