Hacker News new | past | comments | ask | show | jobs | submit login

Definitely agree about the ABI. In C# it's a pleasure to write libraries for others and use other libraries whereas in C++ it's almost always a pain.



Standard ABI only makes sense if you are targeting a single system (.NET for C#). That's not the case for C++.


It would definitely making interop between C# and C++ much easier. It would make interop between C++ and any language much easier. The only way to do it today is to extern "C" everything. It's ugly.


How would exactly an library compiled for 32 bit big endian POWER interoperate with a program written for 64 bit little endian ARM?


This doesn't work with C either or does it? C has a reasonable ABI so maybe we should get to the point where exchanging C++ libraries is as easy as doing this with C


The point is there is no standard C++ (or even C) ABI because it is not possible to standardize one. At best you can standardize a platform specific ABI. Which is in fact what happens in practice on most platforms, but it is up to the platform mantainers and the C++ standard itself can't have nothing to say.

Regarding the C ABIs, they are the lingua franca for interchange between languages because, a) as C is semantically poor, it is the minimum common denominator, and b) it is often the OS ABI.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: