D vs. C#

Yigal Chripun yigal100 at gmail.com
Sat Oct 20 23:18:36 PDT 2007


David Brown wrote:
> On Sun, Oct 21, 2007 at 01:25:55AM +0200, Yigal Chripun wrote:
> 
>> 1) it's a poor imitation of Java. Java may have its cons but at least 
>> they try to be consistent with the design of the language - every new 
>> feature goes through a JSR. this may make the language to evolve in a 
>> slower rate though. compare that to the MS approach of including the 
>> kitchen sink. the language has many features meant for corner cases 
>> which makes it bloated.
>> on the other hand other features were discarded like the covariance of 
>> return types, which is heavily used in Java land.
> 
> C# fixes many problems with Java, at least in my opinion.  C# 2.0 adds
> generics which cover many of the cases of templates.  It has full support
> of the VM, so executes efficiently and safely.
>

What exactly is broken in Java that C# does better, in your opinion?
from what i see, anything that needs fixing is being fixed within the 
Java community and I personally trust their decisions a lot more than 
MS. Adding properties to a languages isn't considered "fixing" it, it's 
just a convenience feature. On the other hand, removing covariance of 
return types is a very big mistake. there are others of course, but that 
one really pissed me off.


>> 2) who needs another proprietary language?? that's the most important 
>> issue for me. the mono project is a VERY stupid idea. it's a lost 
>> cause and a wasted effort - trying to play catch-up to MS while it 
>> constantly introduces breaking changes to the spec.
> 
> C# is not proprietary.  It is an ECMA and ISO standard.  What makes mono
> stupid?  I've done development under mono and found it to work quite well.

well, who is to prevent MS to publish a new "standard" every year? as I 
mentioned in my original post, I as a consumer got burnt on this exact 
issue. I paid 70$ for a piece of software i planned to use until the end 
of my degree. and that's quite expensive for a student in Israel. That 
piece of software was only scraped due to inability to port to a newer 
version of .net in order to support Vista and improve speed. MS didn't 
provide any way for them to upgrade except for re-writing the whole 
thing, which the company just didn't have the resources for.
conveniently for MS as the company was making a product that competed 
with One note. and even today there are several features that they 
implemented much better than MS. that's just one way MS uses to push 
small ISVs that compete with it off the market.

> 
> Where they play catchup is not the language but Microsoft's ever expanding
> proprietary libraries.

you can't really separate a language from it's standard library. almost 
every piece of code is dependent on that. have you used printf in your C 
program?  well that's part of the standard C library. try to write an 
application without the standard library, and i assure you you won't get 
far. unless of course you're writing a kernel and need to implement 
printf by yourself.i don't think most application developers will go for 
that. hence, a change in the standard library would have the same effect 
as a change in the language itself.
that's why Java takes a very cautious approach towards 
changing/deprecating parts of its standard lib.
today, i can take a legacy Java 1.1 application and with minimal changes 
and probably a flag to the VM, i can run it on a modern Java 6 VM. 
that's a program written about 10 years ago. Can't say the same thing 
about a program written with any of MS tools.

> 
> A big advantage C# has over D is that it is a standard, and there are
> multiple implementations.  It's tradeoff choices may not be appropriate for
> all applications (using a VM most importantly).
> 

would you call Microsoft's document format standard? being a standard 
means being accepted as the default by all parties, not just by one.

> I think for the most part, D is a better language.

i agree fully with that.

> 
> David



More information about the Digitalmars-d mailing list