Research shelf / Software & languages / Future C++

Software & languages

The argument before the RFC: what a third systems language would need

Between C++ and Rust there is a recurring question: what would a third option look like that keeps C++ syntax but bakes in memory safety, data-race detection, green threads, algebraic data types and a package manager? This transcript works through it and is honest that its own opening argument partly undercuts its conclusion.

Speculative AGPL-3.0+ / commercial
Evidence level

Theory or design only. No in-house measurement.

FolderFuture C++
FieldSoftware & languages
StatusDesign conversation. The brainstorm before the RFC.
What it is

A long design conversation about a compiled language with C++ syntax and modern guarantees — which opens by arguing modern C++ already covers most of the wishlist, then works out what is left.

The discussion axes are the expected ones done properly: memory safety (borrow checking, bounds checking, lifetime annotations), concurrency (compile-time data-race detection, async/await, green threads, message passing, software transactional memory), metaprogramming (compile-time function evaluation, algebraic data types with pattern matching, traits and concepts), and tooling — the package manager, test runner, benchmark harness and documentation generator that C++ has chronically lacked.

The syntax position is "C++ look, C#-style ergonomics": property<> and event<>, async Task, extension methods, string interpolation, a simplified generic syntax, and Boost-as-core for the standard library with modules replacing headers.

The arc is the interesting part, and the folder flags it as a weakness. Phase one argues that modern C++ — concepts, ranges, coroutines, modules, std::expected, std::format — already closes most of the gap. Phase two asks what borrow checking and integrated tooling would still add. Phase three sketches "cleaned-up C++ plus cherry-picked C# ergonomics". The README notes that phases one and three do not fully reconcile.

Filed under speculative for a reason. This is a transcript, and it is on the shelf because the shelf is a complete index rather than a curated selection. The one durable point in it is the tooling argument: whatever else modern C++ has fixed, it has not shipped a package manager, and that is the axis where the discussion needs no defending.
Claims ledger

Every number, and what stands behind it

A claim is only worth the evidence attached to it. Each row below carries its basis: measured on the author’s own hardware, derived from the construction, measured on synthetic data, projected from literature, or simply cited.

Breakdown of this page’s claims by what stands behind each one
scroll to see the whole chart →
Every claim, weighted by its evidence. The table below is the same data row by row.
ClaimFigureBasisContext
Transcript length~3,700+ linesDerivedSingle conversation log
Discussion axes6DerivedSafety, concurrency, metaprogramming, tooling, syntax, standard library
Arc phases3DerivedModern C++ may suffice → the wishlist → cleaned-up C++ + C# ergonomics
GrammarnoneDerivedNo formal syntax specification
CompilernoneDerivedNo implementation
BenchmarksnoneDerivedNothing to measure
Self-identified inconsistencyphases 1 and 3 do not reconcileDerivedStated in the folder’s own caveats

Measured — author-run experiment on the stated setup. Synthetic — measured, but on synthetic rather than real data. Derived — follows from the stated construction or proof. Projected — paper-stated projection, not an author-run benchmark. Cited — taken from external literature.

Methods

How it works

  • Borrow checking and lifetimes. Rust-style compile-time memory safety, discussed as an addition to C++ syntax rather than a replacement for it.
  • Green threads plus STM. Concurrency borrowed from Go, C# and Haskell/Clojure rather than from C++’s own threading model.
  • ADTs and pattern matching. From ML, Swift and Rust — the metaprogramming gap the discussion keeps returning to.
  • Integrated toolchain. Package manager, test runner, benchmarking and documentation as first-class, which is the one axis where the case is unambiguous.
Stated limitations

What it does not do

Taken from the folder’s own README. Nothing here has been softened.

  • Speculative. No grammar, no compiler, no benchmarks — the folder’s own caveat list.
  • Free-form question-and-answer, not a normative specification.
  • The early "modern C++ might already be enough" argument and the later expansive feature mashups are in tension, as the README acknowledges.
  • Illustrative pseudo-syntax throughout; nothing that a parser could consume.
  • No comparison against the languages already occupying this space (Rust, Zig, Carbon, Circle).
Use it

Free under AGPL-3.0+ for almost everyone

Personal use, charities, education and organisations under AUD 50,000 a year pay nothing. A tiered commercial licence covers everyone else.