...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

Progress on implementing D on .NET

bearophile wrote:
> Walter Bright Wrote:
>
>> Progress on implementing D on .NET.<
>
> - This sounds quite incredible :-)

Cristi is an awesome and prolific developer. (He wrote the Zerobugs D debugger for Linux.)

> - The more implementations of D
> there are, the more the language will have a chance to stick and
> become used, so I think this is a good thing, regardless what I say
> below.

Yes.

> - But is the dotnet able to support all things D supports?

Yes. (!)

> For example can you implement unions?

Yes.

> Inline Asm code?

Yes (but it will be .net assembly code, not x86 assembly).

> How about the interface with compiled C code?

Yes.

> Etc. - One of the advantages of D,
> that is it produces true compiled executables, is lost here.

That's like saying that an advantage of D is that it can run under Windows, an advantage that is lost when one runs it under Linux. <g> D.Net expands the options, not shrinks them.

> - 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.

Native D compilers aren't going away. There's no plan and no way D will become a .net-only language. All it is is expanding D's domain.

> - D is supposed to be a system language, but I
> don't know if you can write system languages on dotnet, maybe not.

You're right, but that doesn't matter. Use a D native compiler to do a system app. Use D.net to write an application that wants to interact with the .net ecosystem.

> - 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?

Advanced generative and metaprogramming capabilities for starters.

なんぞこれ.