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