4 ms·
> C# 14/.NET 10 Yes, they added AOT but it's still challenging to do anything that requires calling into the OS, because you're going to need the bindings. It
by arcadia_leak 8mo ago
> C# 14/.NET 10
Yes, they added AOT but it's still challenging to do anything that requires calling into the OS, because you're going to need the bindings. It will still add some overhead under the hood and more overhead will you need to add yourself to convert the data to blittable types and back.
Mixing C# with other languages in the same project is also difficult because it only supports MSBuild.
> You are forgetting that a language with a less mature ecosystem isn't much help.
Fair.
- pjmlp 8mo agoYou also need bindings in D, nothing new there. Rust also has issues using anything besides cargo.
- arcadia_leak 8mo ago> You also need bindings in D, nothing new there. You don't. Any D compiler is a C compiler too, so it can take C headers without bindings or any overhead added.
- pjmlp 8mo agoYou have forgotten the footnote that not everything has a C API, not BetterC supports everything in ISO C, or common extensions. Hint, before keeping to discuss what D can and cannot do, better go look how long I have been around on D forums, or existing projects on my Github.
- arcadia_leak 8mo ago> not everything has a C API Anything that has stable ABI does. > go look how long I have been around on D forums You claimed higher up in this thread that D requires bindings to interoperate with C API. You don't seem that well informed really.
- arcadia_leak 8mo ago> Rust also has issues using anything besides cargo. D also has its own build system but it's not the only option. Meson officially supports building D sources. You could also easily integrate D with SCons, though there's no official support.
- pjmlp 8mo agoWell, you can do the same with Java and C#, assuming you actually know the ecosystem.
- memsom 8mo ago> Mixing C# with other languages in the same project is also difficult because it only supports MSBuild. No, this is not true. You can invoke the compiler directly with no direct call to MSBuild what so ever. Even using the dotnet command, which uses MSBuild under the hood, you are free to use your own build system. As an example - this code uses a Makefile to invoke the build: https://github.com/memsom/PSPDNA https://github.com/memsom/PSPDNA If you want to call csc directly, it will compile with args just fine. And, if you have a working C# compiler on you platform, whether or not it uses MSBuild behind the scenes is kind of inconsequential. You may also directly call the msbuild command, and it more or less does the same thing as the dotnet command, but hardly anyone eve calls msbuild directly these days.