"bearophile" wrote > - But is the dotnet able to support all things D supports? For example can > you implement unions? Inline Asm code? How about the interface with > compiled C code? Etc.
C++.net works just fine, and supports unions, etc. Anything that C++ supports. The difference is that you mark code that can be compiled into CLR and code that cannot. This provides a somewhat simple bridge between .NET and standard C functions. Most likely, D.net would be the same way. Asking if .net can support everything that D does is like asking if C can support everything that D does. You can call C functions from D, even write D functions that are callable from C, but you don't write D code in C. > - One of the advantages of D, that is it produces true compiled > executables, is lost here. > - I think performance on dotnet can be good enough for most programs, but > a good C++-grade compiler like LLVM (LDC) can sometimes give even more > running speed. What is the advantage you see here? Visual studio produces .exe files from my C# projects, which run just like normal executables. They perform just as well as C++ programs as far as I can tell. As far as I'm concerned, they *are* compiled executables. Who cares if they are morphed into native binary code when I run them? > - C# is not that far from D, and it has several advantages (named > arguments, better lambda, is much more widely used, more built-in > reflection, LINQ, a way to support duck typing, run-time compilation of > code, etc etc), so how can D compete with C#? While I can see how normal > compiled D may compete with C# in some lower level niche, I don't see yet > how D.net may compete with C#. What has D# to offer over C#? Maybe > nothing? I think D's syntax is far superior to C# (save some C# features such as properties). However, I do see issues with how to make D conform to .net without affecting the syntax benefits. For example, how do you call .net functions with D arrays? .net arrays are classes, whereas D arrays are structs. If you have to use .net arrays instead of D arrays in order to use D.net, that would be a deal-killer for me. -Steve
