Why I Use D

Neil Vice sardonicpresence at gmail.com
Mon Mar 31 02:31:49 PDT 2008


"bearophile" <bearophileHUGS at lycos.com> wrote in message 
news:fsnu26$1a1u$1 at digitalmars.com...
> Neil Vice>the more I use C# the more I'm beginning to hate it - and love D 
> =)<
>
> I like D more than C# (despite C# 3.0+ has some things I may like, like 
> the syntax of properties, the syntax of lambdas, LINQ, the help the IDE 
> gives you, the automatic support of multi core, the fact that it's used by 
> more people, the syntax of the "foreach", its associative arrays, some 
> parts of its standard library, some of its compilation at run-time, and 
> few other bits. Among such things some of them can be added into D too).

I do like the property syntax of C#, though as much as the equivalence with 
methods in D has the potential to be confusing, with coding conventions I 
think it could work quite well.

The IDE is obviously a big plus and as such I wouldn't attempt a regular 
GUI-based Windows app in D myself, I find the IDE pretty unnecessary for 
console-based development - a decent debugger not-withstanding.

Run-time compilation can be frustrating - it obfuscates profiling and 
requires (as far as I'm aware) digital signing etc. to forcibly pre-compile 
for performance.

> Have you written few benchmarks to compare the performance of the garbage 
> collector and the associative arrays of C# on dotnet, to those of D (DMD, 
> Phobos)?

I haven't written any benchmarks no. What I have observed using C# is simply 
that it's performance is "lower than I would expect". Porting code from 
Delphi has resulting in typically neater, but slower code. Just the control 
that D provides compared to C# and the fact that it is compiled directly to 
machine code mean that D is basically guaranteed to be faster provided 
sufficient effort is put in if you know what I mean.

I suppose another thing that makes me look more favourable upon D is that my 
expectations are lower in certain areas. If a phobos method does something a 
bit strange I'm forgiving... if a .NET method which you expect to be 
thoroughly documented in the MSDN library throws an exception which is not 
in the list of exceptions that it should be able to throw, I get pretty 
annoyed =P 





More information about the Digitalmars-d mailing list