On Saturday, 14 November 2015 at 06:16:15 UTC, Walter Bright
wrote:
True, but that doesn't support your assertion that transpiling
to C produces better C interop.
Setting aside compatibility with the C preprocessor, I've asked
for a single instance where a language that transpiles to C has
better C interop than D does.
I'm not sure if it reasonable to set aside the preprocessor, but
it depends on what you mean by interop:
1. portability
- A language like Nim obviously has a better portability future
since that is the one of the primary goal of having portable C
source code.
2. ability to use language X as a C library
- Plenty of tools (specialised languages, like generators for
parsers etc) do very well in this department, fully supporting
ability to inline the code across compilers.
- D does ok, for the platforms it integrates with, but you have
to generate the header files.
3. ability to use C libraries and engines from language X
- D does ok here if the C header files are suitable for
translation
Compile time does not have to be a big issue, if you have a good
build system and changes are kept locally in the generated C
files (smart partitioning of the code into C files). Language
semantics efficiency is really the primary reason for not
targeting C, imho.