Hacker News new | past | comments | ask | show | jobs | submit login

C++'s more recent changes, in the past decade, have made it easier to write. However, adding more to C++ is never going to make it simpler. C++ still carries all of the baggage of C and all of the baggage of the older C++. None of these can be removed without breaking millions of programs, but all of these things can still bite C++ devs and will still exist in older C++ code.

For example, undefined behavior by default, value categories (rvalues, lvalues, etc), exceptions in destructors, SFINAE, and so much more.

Even if C++ were to end up making its syntax closer and closer to Python, which it seems to be doing, beneath the sugar is still a haggard mound of a ridiculously complex and unsafe language. The only way to change that is to start fresh, as Rust did. Rust is complex, indeed, but it removes a whole lot of the safety concerns and legacy crud.

Presumably, 20 years from now something else will be created which improves upon Rust in such profound ways and we can all talk about how complex Rust is and how its idioms aren't as <something> as they could be. Maybe we'll be using machine learning to write and compile code for us and Rust will be shat on for being so complex and manual. But, for now, even with its complexity, it should be a breath of fresh air for anyone working on non-trivial, multi-threaded C++ applications.

There will be those who don't dig it, just as there were those who have stayed with C all this time. But how else would we keep the vulnerability finders busy? Everyone needs to eat.




I think it would be totally possible for C++ to adopt and "epochs" model where you mark your units of compilation to support specific language features and that would make life tremendously easy. You could even mark epochs where legacy features get marked as deprecation warnings, etc.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: