Sean Baxter not only wrote his own C++ compiler, but he authored this magnificent vision paper for the future of C++ that it moved me to reconsider my views on the safety of the language and its use future projects.

Seldom a man of my age and opinions can change his mind over something so fundamental.

Enjoy: https://github.com/seanbaxter/circle/blob/master/new-circle/README.md

circle/new-circle/README.md at master · seanbaxter/circle

The compiler is available for download. Get it! Contribute to seanbaxter/circle development by creating an account on GitHub.

GitHub
@Migueldeicaza oh boy. I recall how much you were against C++ back during our Linux/KDE/Gnome days 😅.
@glaurent some 25 years later the best interop across languages remains the limited C ABI.
@Migueldeicaza I guess so. But IMHO interop wasn't that important in retrospect.

@glaurent @Migueldeicaza I think the two are self-reinforcing. We almost never use libraries built with, say, Java, from a C++ project. Or consider calling Python from C#. We never do it because it would suck, so it doesn’t feel important.

Imagine a world where there was a stable powerful cross language interop ABI that let you do those things in a nice easy way. In that world people *would* use languages from other libraries a lot, and interop would be critical.

@borland @Migueldeicaza you won’t use a Java lib in a C++ project because if you picked C++ in the first place, it’s for reasons that most likely preclude from using Java.

Are there really that many libs written in a given language that don’t have an equivalent in any other ? And good luck finding a standard for interop’ing things like asynchronous calls for instance.

@glaurent @borland nah, legacy plays a big role, and that’s why things like Mono end up embedded everywhere
@glaurent @Migueldeicaza @borland Quite a lot actually.

An annoying amount of ML-based audio & speech analysis libraries exist only in C++ and not Common Lisp, without any good C-wise bindings.

Which means one either has to use the Clasp implementation for transparent support, write C shims manually or use autogenerated ones.