Safety と Security: the future of C++
Safety and security are currently being called “an existential threat to C++”. To me C++ is a tool, a useful one, but at the end of the day it’s a tool. It has flaws which could be remedied, and there are other tools out there.
This talk will discuss how we got to an existential threat, and what our responsibility is now that we’re here. I’ll make the case that C++ is critical infrastructure, and that we have an ethical responsibility to remedy its problems. Doing so requires maturing the field of software engineering, which starts by understanding what “safety and security” really are. I’ll advocate for a scientific approach to resolving the problem, and conclude with a discussion of whether C++ is worth saving.
Carbon’s Successor Strategy: From C++ interop to memory safety
The Carbon Language is an experimental successor to C++ motivated by a desire to effectively and scalably bring significant language improvements like memory safety to existing large-scale C++ code bases. Other efforts to evolve C++ like Cpp2 and Circle are structured more as a superset language, where Carbon is following a distinct successor language design. This talk will dive into the tradeoffs we see between these approaches and what motivates Carbon to take a different approach despite its challenges.
One of the largest challenges of our successor approach is C++ interoperability, and Carbon is embedding the Clang C++ compiler directly into its toolchain to get the superpowers it needs to address this. While still in its early stages, this talk will give a detailed preview of what we expect C++ interop to look like in Carbon and how we plan to solve key implementation issues. It will cover complex cases like C++ templates and C++20 concepts, as well as showing how we plan to make the interop truly bidirectional.
Last but not least, this talk will show how we expect our successor strategy to play out in practice. Memory safety is an especially motivating feature, requiring fundamental changes to how software is written to achieve safety without performance loss. This talk will show the path Carbon will provide to enable existing C++ code bases incrementally and scalably achieve safety and security.
Fill in the blank: _____ for C++
C++23 is done. But C++ is not! In this talk Herb will give his personal perspectives on C++’s ongoing and very active evolution, updates on his cppfront experimental compiler, and why compatibility (and what kind, and how much) is essential to continuing to bring C++ forward successfully.