3 ms·
As should C. C++ is staying relevant (among other reasons) because it embeds C as a(n almost) subset in a natural way. To understand why C++ is remaining releva
by mike_hock 3y ago
As should C. C++ is staying relevant (among other reasons) because it embeds C as a(n almost) subset in a natural way. To understand why C++ is remaining relevant, one must understand why C is remaining relevant. It has little to do with the language itself.
As long as the creators of other languages, including so-called C "successor" languages, keep giving zero shits about language interoperability and prefer to play in their little sandboxes that they've created for themselves instead of collaborating on creating a language-agnostic ABI, the C ABI will remain the ABI Franca, so C will stay relevant.
As long as C (and C++) are the only languages that you can compile and link the way you see fit as opposed to caving in to some my-way-or-the-highway language-specific "fully integrated" dependency manager and build system, C will stay relevant.
As long as this lack of vision, this pathological shortsightedness, and this complete disinterest in taking any steps whatsoever to unseat C from its privileged niche and create an ecosystem in which "successor" languages can compete with C on a level playing field continues to dominate the entire industry and every single "language" community in existence, C will stay relevant.
- titzer 3y agoHeh, give snark, get snark. Virgil doesn't interoperate with C because ABI is a sticky, ugly, thorny thing. However, I've come to realize that several projects that want to use Wizard, a thing I wrote in Virgil, could do so if Virgil would link with C code. Problem is, all of that stuff at the C ABI layer is a quagmire. I think pretty much all languages are hoping that that native ABI cesspool just disappears. I don't have a solution to that problem, but I know the solution isn't to keep on truckin' with uninitialized data, out-of-bounds-memory accesses, stack overflows, and undefined behavior. Surely we can do better.
- mike_hock 3y agoThe solution isn't to keep on trucking with the interoperability situation either, but you gotta fix that first. Or don't and keep on trucking with UB. Your choice. Y'all's choice.
- titzer 3y agoObviously I don't control the PL landscape's decision-making for what level of abstraction they want their compilers to target; that's why I helped create Wasm to put all of that mess into a sandbox so we can move on with a brighter future :)