News for hackers. Stuff that matters.
Re:An Incoherent Rust by jandrewrogers on Monday March 23, 2026 @08:46PM (#47497295)
> I wonder if C++ has some hairy concepts and syntax today

Both better and worse.

The current version of idiomatic C++ is much cleaner, more concise, and more powerful than the version of C++ you are familiar with. You don't need C-style macros anymore. The insane template metaprogramming hacks are gone. Some important things that were problematic to express in C++ (and other systems languages to be fair) are now fully defined e.g. std::launder. C++ now has expansive compile-time programming features, which is killer for high-performance systems code, and is more expressive than Rust in important ways.

The bad news is that this was all piled on top of and in addition to the famous legacy C++ mess for backward compatibility. If you are mixing and matching ancient C++ with modern C++, you are going to have a bad time. That's the worst of all worlds.

But if you are lucky enough to work with e.g. an idiomatic C++20 code base, it is a much simpler and better language than legacy C++. I've done a few major C++ version upgrades to code bases over the years; the refactored code base was always smaller, cleaner, safer, and easier to maintain than the old version.

Re:An Incoherent Rust by fc417fc802 on Tuesday March 24, 2026 @12:13AM (#47498518)
It's much simpler and better than it used to be but it's still pretty bad. As just one example off the top of my head consider the meaning of curly braces for initialization. There's several different things they can mean depending on the context. Good luck figuring out which set is currently in effect.
Re:An Incoherent Rust by jandrewrogers on Tuesday March 24, 2026 @12:35AM (#47498636)
The initialization situation in C++ is indefensibly broken. It is near the top of my list of things I hate about C++.

You can mitigate it with some practices but that this is even necessary is a crime. Initialization is one of the most basic things in software development. How do you fuck it up so badly?

On a day to day basis it doesn’t cause me issues but it offends me just on principle.

Re:An Incoherent Rust by germandiago on Tuesday March 24, 2026 @04:26AM (#47499900)
Use static analyzers and move on. Almost all the complaints I see about C++ nowadays are removed by max warning levels. Set them as error.

Certainly initialization is the single most confusing feature in C++, I can give you that.

But still doable with s few patterns to remember. And warnings always max level.

Re:An Incoherent Rust by bayindirh on Tuesday March 24, 2026 @05:24AM (#47500247)
I still use Eclipse CDT and its static analysis is running in real time, as you type code, which is killer. Combined with Valgrind integration, I don't see myself moving on anytime soon.
Re:An Incoherent Rust by germandiago on Tuesday March 24, 2026 @10:21AM (#47503030)
Is Eclipse CDT still good these days? Wow did not hear of it for a while. I thought C++ support was not maintained anymore.

I use CLion mostly but I never stop coming back to Emacs+LSP.

And yes, the analysis is quite competitive tbh. People often talk about this weird thing or the other in C++ but the experience is quite better than what the ISO standard strictly has to offer.

Re:An Incoherent Rust by bayindirh on Wednesday March 25, 2026 @03:24AM (#47514332)
Eclipse is getting stable releases four times a year (i.e. every three months). C/C++ support is also being actively maintained and is pretty fast these days.

Eclipse is one of the rare software suites which didn't get slower as the tech evolves. Yes, it's probably heavier when compared to 20 years ago, but it starts pretty quickly and works snappily. I'm a happy camper.

If only the Go tools didn't get discontinued, but alas. KATE/BBEdit + Gopls is a pretty nifty combo on Linux/macOS.

Re:An Incoherent Rust by bluGill on Tuesday March 24, 2026 @09:06AM (#47502021)
These problems will happen in some form for every long lived codebase. In 15 years you will have some regrets, and some of those regrets will be things that are all core APIs used everywhere in the code base and so impossible to quickly change.
Re:An Incoherent Rust by Capricorn2481 on Tuesday March 24, 2026 @11:01AM (#47503676)
Isn't it 100x worse in C++ though? Because the surface area is huge? I work on legacy apps but PHP 5.6 is not that fundamentally different from PHP 8.3.
Re:An Incoherent Rust by bluGill on Tuesday March 24, 2026 @11:40AM (#47504312)
No, it is nearly the same - most problems are your own making because of your own lack of foresight. (perfect foresight is impossible)