11 ms·
C++23 “Pandemic Edition” is complete
- MichaelMoser123 4y agoI didn't find Bjarne Stroustrup in the group picture, what happened?
- sirmac1k 4y agoI see him right there on the bottom right in remote participants section. Last row, 4th from the right.
- toyg 4y agoI was going to say, he's 72 and living in NY - I guess trekking to the very far side of the continental US for the sake of a few pictures, in this day and age, wouldn't sound particularly appealing to him
- sambeau 4y agoIs that him again in the bottom photo, mid pack on the left, wearing sunglasses?
- sirmac1k 4y agoStroustrup++ (;
- deleted 4y ago[deleted]
- RcouF1uZ4gsC 4y agoI feel that TitaniC++ has ran into the iceberg of memory safety and complexity. Bjarne Stroustrup’s previous article which basically tried to minimize memory safety because it was a subset of program safety shows that Standard C++ really doesn’t have a great answer. I feel C++ needs to do the following to be able to survive: 1. Adopt language epochs so that the language syntax and semantics can be evolved without having to fight backwards compatibility. For example, the integer promotion rules are very confusing and a source of bugs. 2. Adopt solid dangling reference analysis into the compiler itself (using language epochs above). Static analysis as an external tool or command line flag is not good enough. With Rust, C++ now has a free, popular competitor language that is also focused on creating zero overhead abstractions, but that can guarantee memory safety and which also doesn’t have a bunch of language warts. If C++ doesn’t come up with a good story real soon to deal with memory safety at the language level and deal with the mess of language complexity, it will be relegated to a legacy language.
- varjag 4y ago…on the other hand it doesn't take a PhD to write a linked list in C++.
- nezirus 4y ago... on the third hand it's better not to roll your own list in any language ;-) Joking aside, some stuff are currently really hard in Rust, but the rate of change slowed down, and all I can see now is everyday ergonomic improvements, so there is hope for (slightly) simpler syntax in the future.
- pclmulqdq 4y agoDoubly linked lists break one of the fundamental promises you make to the borrow checker: single ownership. I doubt they're going to get much easier.
- cmrdporcupine 4y agoIt's also just generally not a wise structure to be making or using in applications level development at this point. Vectors will outperform them most of the time, are more cache friendly, and easier to write these days. And Rust has already done the work of building collections you can already use, including some that can be used no-std in embedded/baremetal environments. And if you really need a linked-list type structure, and are competent to make it and use it properly/safely, unsafe {} is waiting for you.
- pclmulqdq 4y agoYou tend to see linked lists in places like operating systems, storage systems, and stackless asynchronous server systems. These kinds of linked lists actually do perform better than vectors in most cases. Specifically, linked lists do well when objects are: 1. Large, specifically 100s of bytes 2. Moved frequently between collections 3. Intrusively linked (meaning that the pointers are part of the struct, not a separate library) and 4. Never randomly accessed One size does not fit all when it comes to performance of list structures, unfortunately. In particular, large items tend to break standard library structures, since they are not the usual case.
- tempodox 4y agoThanks to everyone involved for your work! I'm looking forward to the completion of C++23.
- criddell 4y agoThanks to Herb and all the others who worked so hard on C++23. As someone who has made their living with C++ for 25 years now, I’m very grateful to all the people who keep making the language and my professional life better every 3 years.
- mjburgess 4y agoIt feels like the C++ committee should be working on a "C++ Safe Edition 2025" as an opinionated and radical overhaul of the language. Absent something is radical, govs & industry leaders are going to continue to call for the death of C++. Given work on Circle (, Carbon, etc.) -- a "radically opinionated" Edition of C++ as a fork in the standard seems required (where Edition = Fork). Incrementalism towards a "more polished" C++ won't be enough; not least due to branding.
- eej71 4y agoI think you’d be hard pressed to name another case where there that kind of breaking change was very successful. I’d highlight the python 2->3 change as not something to replicate. Same with what has happened to Perl.
- deleted 4y ago[deleted]
- mejutoco 4y agoJs -> Typescript? As an opinionated js, definitely. Probably also incremental, in a way.
- creata 4y agoI don't know why (maybe someone can explain?) but frontend developers seem very happy to frequently move between languages and frameworks. I don't think that's true for the places where C++ is popular.
- fredrikholm 4y agoC++ is (primarily) used where there aren't any other viable alternatives (other than C). Browser frontends (in general) set not such demands (size, memory, speed guarantees) and its bloat more often comes from things outside of code (images, videos, trackers), so there's freedom to use whatever floats ones boat. Combined with the ever increasing demands on app complexity, frameworks and born left and right. The strong movement into functional programming in this area has also led the way for other languages (SMLs, Lisps) that better fit that model.
- zabzonk 4y agojust to be clear about the abi issues mentioned here, neither c++ nor c have a standardised abi. but there are widely agreed abis for different platforms. standardised language changes can thus not break standardised abis, because the standards don't specify abis.
- favorited 4y agoWG21 can, and has in the past[0], broken platforms' ABIs. It tends to be painful enough that platform vendors (who are represented on the committees) aren't interested in doing it again. [0]https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_a...
- devnullbrain 4y ago>fixing the lifetime of temporaries in range-for loops Could anyone expand on how this was broken?
- leeter 4y agoThis was not what I thought it was. I assumed it was the `for(auto f : <collection of class>)` issue that STL tried to fix and gave up on. Turns out it was initializers and locks. Extending them to live as long as the loop much like the `if` initializer syntax does for the block. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2718r0.html https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p27...
- astonex 4y agoI wish C++ would be as easy to build as Golang, and also as easy to include third-party libraries as Golang. Those are the two biggest pain points to using C++ for me.
- oblio 4y agoShouldn't modules help with this at some point, once the ecosystem is ready?
- pjmlp 4y agoI wish Go would care for binary libraries as C++ does. I just use vcpkg and NuGet, done.
- lenkite 4y agoI would like a standardized unit testing facility, a standardized code documentation facility to be added to that list. Also add a proper interpreter for dev-efficiency! C++ the language is not at all a problem as much as C++ the tooling and developer ergonomics. For a language that has been in existence for 4 decades, you would think the ergonomics would be better but it seems all the graybeards want us all to suffer the way they did.
- rnikander 4y agoModules look like an awesome, game-changing feature, and they were supposed to be a part of C++20. As far as I know I still can't reasonably use them with Clang and CMake. Anyone know what the problem is? Are enough people being paid to work on C++ implementations? Or is it so difficult that despite the resources, people can't implement it in 3 years?
- pjmlp 4y agoCMake is getting there, https://www.kitware.com/import-cmake-c20-modules https://www.kitware.com/import-cmake-c20-modules, and you can easily use them on Visual C++ 2022. All my hobby coding is done with modules nowadays. The problem with clang is called Apple and Google, as they decided to focus on their own languages (Swift, Objective-C, Carbon, C++17 being good enough), the compiler vendors that profit from clang forks haven't cared that much to contribute to upstream. Meanwhile VC++ and GCC are quite green on C++20 compliance, and GCC modules are almost there as well.
- rnikander 4y agoI wonder if I can use GCC on macOS to build apps for macOS/iOS that can be App Store deployed. Or if I'm stuck with Clang there. These days I still use macOS and exist in the Apple ecosystem. I wouldn't mind moving to Linux, but unfortunately I need a MacBook to do work where I build iOS apps. I wonder if there is a way around that.
- pjmlp 4y agoApple is quite clear what are the official languages for iOS apps and what role C++ plays on that, like MSL and DriverKit. Note how many C++ talks happen at WWDC. You're pretty much stuck with clang, unless you feel like hacking around the toolchain workflows.
- rnikander 4y agoDo some companies fund GCC C++ development? It seems too hairy for only heroic volunteers to get it done, but I don't know.
- rnikander 4y agoI've been using C++ a lot lately after many years away. There are different kinds of frustration. With C++ my frustration is the "this is so close to being awesome" variety, not the "wow, this just sucks" variety.
- synergy20 4y agoI invested heavily in C++. Now I feel it's either making-c++-memory-safe-while-breaking-back-compatibility or die slowly. I was told by c++ experts there is no middle ground. I actually started to shift focus onward Rust. Rust also provides a more consistent build tooling albeit build time is still very slow. Plus Rust does cross-platform decently. For C++, I need create my CMake manually each time, and cross build also involves manual creation each time.
- kramerger 4y agoTodays Rust is also X times more complicated than modern C++. And not that long ago most people would agree that C++ is the language that is hardest to master.
- synergy20 4y agoI don't know that much about rust yet, I just assume that if I know c++ fairly well, it might just be 20% harder to learn rust and get good about it, time will tell.
- lenkite 4y agoAs someone who (properly) learned modern C++ only some years ago and is just learning Rust, I agree - one needs a lot of learning in Rust before one can get kick-started. C++ is actually far easier to get out of the ground coding. Modern C++ is actually quite nice to code in. Its just a real pain to get started - project setup, documentation, cicd setup, ease of dependency/pkg management, cross-compilation, unit-tests, etc. Developer ergonomics are poor and not standardised. (There are also some critical features that are missing - like reflection that make things a pain) Rust the language is far harder to learn (even if it is safer), but the tooling is mouth-wateringly superb. In today's world, a language can live and die on developer ergonomics alone. Nobody really has the patience to do all the cruft-work that they could tolerate before - there is a lot of choice in the programming landscape.
- synergy20 4y agoconan or vcpkg might be able to help, I have used neither though, or a cmake boilerplate might also help, but no such project existed to be used by many, so yeah, the tooling at c++ is still in stone age, too bad. editted: just checked out conan briefly, it's pretty close to cargo and go toolings, going to use it more
- avinassh 4y agoslightly related: if I want to learn and pick up C++, how should I start in 2023?
- JohnFen 4y agoI'd just pick out one of the many C++ tutorial websites and start. Learn by doing.
- rurban 4y ago> Also, at each meeting we regularly have new attendees who have never attended before, and this time there were 25 new first-time attendees in-person or on Zoom; to all of them, once again welcome! So they were very inclusive and gave a warm welcome to their convicted rapist and child porn hoarder on the committee, over whom several other members resigned. They might have purged all women instead. I see one irl, and several others over Zoom. https://www.change.org/p/ban-convicted-sex-offender-from-iso-c-standard-meetings https://www.change.org/p/ban-convicted-sex-offender-from-iso...