@Miaourt Best design is to provide an atomic thing and then stop.
A language to describe an ABI could be neat, but it ought to be another project entirely. And I think the only realistic way to do it would be as a subset of C. (Which reminds me of how C++ screwed itself so badly that most C++ libraries use C headers)
@ignaloidas@Miaourt Even beyond implementation design: Parsing a C header can effectively only be done by a C Compiler (Go got bitten hard by this many times) and in some cases the same C Compiler as the one used for compiling it. Gotta love people not making the public headers pretty much static.
And yeah I've done my fair share of JSON over HTTP/TCP/socket/pipe/… it's fine for batch/timesharing things but if you ever need something with a tiny bit of real-time, you're screwed.
You can't get any kind of guarantees on memory management, behavior, etc in C - that shit has to be done manually in C, and it fucking sucks.
I cannot throw a Python object into C and just trust that it's refcount will stay correct - even though that could be done with Rust or Ruby.
C is the shit underpinnings that keep language interop so shit that the industry recognized way for language interop is HTTP - and it's not good language interop, but at least it will fucking work with C.