View mode: basic / threaded / horizontal-split · Log in · Help
January 14, 2007
Comparison chart worries
Quoting from 
http://www.gamedev.net/community/forums/topic.asp?topic_id=431909

> I'm sorry, but some of your "comparisons" to C# are just WRONG. Period, flat out, wrong. No dynamic arrays? Try System.Collections.Generic.List<T>. No associative arrays? Try System.Collections.Generic.Dictionary<T>. No aliases? Try using <class> = Alias;. There are many more on that page, so much so, I am half tempted to write a page debunking over half your comparisons.
> 
> Your comparison sheet is EXTREMELY misleading, as you completely ignore the .NET framework, which extends C# far beyond anything D can currently do. Ignoring the presence of many of these facilities in the .NET framework is a really shady tactic to make D seem like it has several important features that C# supposedly lacks. Several other features you claim are "important" are really not (like multiple inheritance, which is dangerous to begin with).
> 
> D is a neat language, but you need to be more honest in your comparisons.

Not directly commenting on this quote (since I'm not that familiar with 
C#), I think we should check if the comparison really is up to date.

Other languages may have got new versions out, and some of the table 
entries are, ehh, not that obvious to the casual reader.

While some of the more surprising answers (the yes/no stuff) are 
explained in footnotes or on other pages, we must understand that all 
this slashdotting etc. brings readers who don't bother reading "the fine 
print". They may then dismiss the table (and thus D itself) as biased, 
hyped, and regular marketing lies altogether.

I don't think we can afford it.
January 14, 2007
Re: Comparison chart worries
>> (...) Several other 
>> features you claim are "important" are really not (like multiple 
>> inheritance, which is dangerous to begin with).

Huh? Don't the D docs -support- this stance?

Other than that, I have to agree that the comparison chart seems to me 
to be a bit zealous, and could do more harm than good in its current state.

Maybe instead of just having big shiny green "Yes" and "No" labels 
(supported occasionally by footnotes) the table could be modified to 
note in-line

- which features are provided by the language;
- which are provided by the standard library; and
- which are absent from both (regardless of whether they're implemented 
in other popular libraries because, well, with enough hacks you can 
implement almost anything in some external library, and that doesn't 
necessarily make it useful or usable! :P).

Perhaps a green "Yes (core)", an amber "Yes (std library)" and a red "No"?

Might I suggest #FF77FF, #FFBB77 and #FF7777 to give our eyes a rest? ;)
January 14, 2007
Re: Comparison chart worries
Georg Wrede wrote:
> Quoting from 
> http://www.gamedev.net/community/forums/topic.asp?topic_id=431909
> 
>> I'm sorry, but some of your "comparisons" to C# are just WRONG. 
>> Period, flat out, wrong. No dynamic arrays? Try 
>> System.Collections.Generic.List<T>. No associative arrays? Try 
>> System.Collections.Generic.Dictionary<T>. No aliases? Try using 
>> <class> = Alias;. There are many more on that page, so much so, I am 
>> half tempted to write a page debunking over half your comparisons.
>>
>> Your comparison sheet is EXTREMELY misleading, as you completely 
>> ignore the .NET framework, which extends C# far beyond anything D can 
>> currently do. Ignoring the presence of many of these facilities in the 
>> .NET framework is a really shady tactic to make D seem like it has 
>> several important features that C# supposedly lacks. Several other 
>> features you claim are "important" are really not (like multiple 
>> inheritance, which is dangerous to begin with).
>>
>> D is a neat language, but you need to be more honest in your comparisons.
> 
> Not directly commenting on this quote (since I'm not that familiar with 
> C#), I think we should check if the comparison really is up to date.
> 
> Other languages may have got new versions out, and some of the table 
> entries are, ehh, not that obvious to the casual reader.
> 
> While some of the more surprising answers (the yes/no stuff) are 
> explained in footnotes or on other pages, we must understand that all 
> this slashdotting etc. brings readers who don't bother reading "the fine 
> print". They may then dismiss the table (and thus D itself) as biased, 
> hyped, and regular marketing lies altogether.
> 
> I don't think we can afford it.
> 


I agree.  Maybe it could be a bit more like this one: 
http://www.prowiki.org/wiki4d/wiki.cgi?LanguagesVersusD

Also would be good it have examples of the different syntax for each case.

-Joel
January 14, 2007
Re: Comparison chart worries
Jeff wrote:
>>> (...) Several other features you claim are "important" are really not
>>> (like multiple inheritance, which is dangerous to begin with).
> 
> Huh? Don't the D docs -support- this stance?
> 
> Other than that, I have to agree that the comparison chart seems to me
> to be a bit zealous, and could do more harm than good in its current state.

Quite possibly (of which more below).

> Maybe instead of just having big shiny green "Yes" and "No" labels
> (supported occasionally by footnotes) the table could be modified to
> note in-line
> 
> - which features are provided by the language;
> - which are provided by the standard library; and
> - which are absent from both (regardless of whether they're implemented
> in other popular libraries because, well, with enough hacks you can
> implement almost anything in some external library, and that doesn't
> necessarily make it useful or usable! :P).
> 
> Perhaps a green "Yes (core)", an amber "Yes (std library)" and a red "No"?

Or an amber "Yes (core)" and a green "Yes (std library)"
to indicate where the core language facilities didn't
allow a particular feature to be moved to the library?

OK, that's a joke of sorts -- but color-coding for a
particular agenda is the kind of unnecessary bias that
puts people off.  Some languages designers view putting
something in the core language as a weakness (while
obviously knowing that there has to be enough built in
to allow a viable language+library combination).

Walter's position apparently doesn't match that -- but
assuming that something is better because it's in the
core isn't valid in itself; it might be true that being
in the core means that it can avoid weaknesses of some
library approaches though.

I'd certainly say that the D comparison chart was very
offputting to me, and still is.  Much of what is written
there about other languages is arguably misleading, and
I speak particularly of the notes on C++.  It seems to
be a sales pitch rather than an objective comparison --
and fair enough, it may well be a sales pitch, why should
we expect objectivity from Digital Mars in this context?

I'd be inclined to take D more seriously if we could
reduce by an order of magnitude the level of misguided
attacks against other languages and focus more on some
more thorough treatment of the trade-offs involved in
language and library design.  Many of those attacks
show a lack of knowledge of the other languages to
which they refer.  Focus on making D better (which
usually doesn't mean having a bigger core), not on
knocking other languages to make D *seem* better.

-- James
January 14, 2007
Re: Comparison chart worries
James Dennett wrote:
> Jeff wrote:
>>>> (...) Several other features you claim are "important" are really not
>>>> (like multiple inheritance, which is dangerous to begin with).
>> Huh? Don't the D docs -support- this stance?
>>
>> Other than that, I have to agree that the comparison chart seems to me
>> to be a bit zealous, and could do more harm than good in its current state.
> 
> Quite possibly (of which more below).
> 
>> Maybe instead of just having big shiny green "Yes" and "No" labels
>> (supported occasionally by footnotes) the table could be modified to
>> note in-line
>>
>> - which features are provided by the language;
>> - which are provided by the standard library; and
>> - which are absent from both (regardless of whether they're implemented
>> in other popular libraries because, well, with enough hacks you can
>> implement almost anything in some external library, and that doesn't
>> necessarily make it useful or usable! :P).
>>
>> Perhaps a green "Yes (core)", an amber "Yes (std library)" and a red "No"?
> 
> Or an amber "Yes (core)" and a green "Yes (std library)"
> to indicate where the core language facilities didn't
> allow a particular feature to be moved to the library?
> 
> OK, that's a joke of sorts -- but color-coding for a
> particular agenda is the kind of unnecessary bias that
> puts people off.  Some languages designers view putting
> something in the core language as a weakness (while
> obviously knowing that there has to be enough built in
> to allow a viable language+library combination).
> 
> Walter's position apparently doesn't match that -- but
> assuming that something is better because it's in the
> core isn't valid in itself; it might be true that being
> in the core means that it can avoid weaknesses of some
> library approaches though.
> 
> I'd certainly say that the D comparison chart was very
> offputting to me, and still is.  Much of what is written
> there about other languages is arguably misleading, and
> I speak particularly of the notes on C++.  It seems to
> be a sales pitch rather than an objective comparison --
> and fair enough, it may well be a sales pitch, why should
> we expect objectivity from Digital Mars in this context?
> 
> I'd be inclined to take D more seriously if we could
> reduce by an order of magnitude the level of misguided
> attacks against other languages and focus more on some
> more thorough treatment of the trade-offs involved in
> language and library design.  Many of those attacks
> show a lack of knowledge of the other languages to
> which they refer.  Focus on making D better (which
> usually doesn't mean having a bigger core), not on
> knocking other languages to make D *seem* better.
> 
> -- James

This is very true.  I've often thought that the comparison chart does 
more damage then good.  Parhaps it should be removed, we find a third 
party website that does the same thing, or try to compare languages from 
a more practical standpoint rather then a feature standpoint.  ie Here 
how you would do this in C++ and here's how you'd do it in D.

-Joel
January 14, 2007
Re: Comparison chart worries
James Dennett wrote:
> Jeff wrote:
>>>> (...) Several other features you claim are "important" are really not
>>>> (like multiple inheritance, which is dangerous to begin with).
>> Huh? Don't the D docs -support- this stance?
>>
>> Other than that, I have to agree that the comparison chart seems to me
>> to be a bit zealous, and could do more harm than good in its current state.
> 
> Quite possibly (of which more below).
> 
>> Maybe instead of just having big shiny green "Yes" and "No" labels
>> (supported occasionally by footnotes) the table could be modified to
>> note in-line
>>
>> - which features are provided by the language;
>> - which are provided by the standard library; and
>> - which are absent from both (regardless of whether they're implemented
>> in other popular libraries because, well, with enough hacks you can
>> implement almost anything in some external library, and that doesn't
>> necessarily make it useful or usable! :P).
>>
>> Perhaps a green "Yes (core)", an amber "Yes (std library)" and a red "No"?
> 
> Or an amber "Yes (core)" and a green "Yes (std library)"
> to indicate where the core language facilities didn't
> allow a particular feature to be moved to the library?
> 
> OK, that's a joke of sorts -- but color-coding for a
> particular agenda is the kind of unnecessary bias that
> puts people off.  Some languages designers view putting
> something in the core language as a weakness (while
> obviously knowing that there has to be enough built in
> to allow a viable language+library combination).
> 
> Walter's position apparently doesn't match that -- but
> assuming that something is better because it's in the
> core isn't valid in itself; it might be true that being
> in the core means that it can avoid weaknesses of some
> library approaches though.
> 
> I'd certainly say that the D comparison chart was very
> offputting to me, and still is.  Much of what is written
> there about other languages is arguably misleading, and
> I speak particularly of the notes on C++.

I agree. Also I was surprised that C# was listed as having support for RAII.

In my view, the chart is useful only for answering the question "I can 
do XXX in my favourite language, can I also do it in D?"
And it would therefore, I think, be better to improve the "D for C++ 
programmers", etc pages and remove the comparison chart to a 3rd party site.

  It seems to
> be a sales pitch rather than an objective comparison --
> and fair enough, it may well be a sales pitch, why should
> we expect objectivity from Digital Mars in this context?

And I think the language itself is strong enough now to not need this 
sort of sales pitch.

> 
> I'd be inclined to take D more seriously if we could
> reduce by an order of magnitude the level of misguided
> attacks against other languages and focus more on some
> more thorough treatment of the trade-offs involved in
> language and library design.  Many of those attacks
> show a lack of knowledge of the other languages to
> which they refer.  Focus on making D better (which
> usually doesn't mean having a bigger core), not on
> knocking other languages to make D *seem* better.
> 
> -- James
January 14, 2007
Re: Comparison chart worries
On Sun, 14 Jan 2007 03:58:33 +0200, Georg Wrede wrote:

> Quoting from 
> http://www.gamedev.net/community/forums/topic.asp?topic_id=431909
> 
>> I'm sorry, but some of your "comparisons" to C# are just WRONG. Period, flat out, wrong. No dynamic arrays? Try System.Collections.Generic.List<T>. No associative arrays? Try System.Collections.Generic.Dictionary<T>. No aliases? Try using <class> = Alias;. There are many more on that page, so much so, I am half tempted to write a page debunking over half your comparisons.
>> 
>> Your comparison sheet is EXTREMELY misleading, as you completely ignore the .NET framework, which extends C# far beyond anything D can currently do. Ignoring the presence of many of these facilities in the .NET framework is a really shady tactic to make D seem like it has several important features that C# supposedly lacks. Several other features you claim are "important" are really not (like multiple inheritance, which is dangerous to begin with).
>> 
>> D is a neat language, but you need to be more honest in your comparisons.
> 
> Not directly commenting on this quote (since I'm not that familiar with 
> C#), I think we should check if the comparison really is up to date.
> 
> Other languages may have got new versions out, and some of the table 
> entries are, ehh, not that obvious to the casual reader.
> 
> While some of the more surprising answers (the yes/no stuff) are 
> explained in footnotes or on other pages, we must understand that all 
> this slashdotting etc. brings readers who don't bother reading "the fine 
> print". They may then dismiss the table (and thus D itself) as biased, 
> hyped, and regular marketing lies altogether.
> 
> I don't think we can afford it.


The table seems to be more annoying to outsiders than informative.  People
seem to have there own interpretation for each item in the list and feel
swindled when the language comparison suggests features (or lack of such)
so starkly. Probably the best thing to do is merely state what D offers
with more detailed links to examples; this allows the newcomers decide for
themselves.  

That list awakes far too much fury in the programming community: they
appear to see this as a list of half-truths... something usually seen
in politics and marketing strategies.... not a good thing for D (or
anywhere for that matter).

-JJR
January 14, 2007
Re: Comparison chart worries
It is a good idea to remove the table. So far I have not seen any 
discussion about D where this was not the subject of criticism at the 
least, and it even incites flames. Very distracting.

The table gives the impression of a checklist where D is superior to the 
languages it is compared with. This could only be done by leaving out 
the standard libraries of the 'inferior' languages, which is highly 
misleading because these are an integral part of programming in those 
languages.

And then people even seem to miss that only core language features are 
compared.

Another problem is that the chart suggests that more features is better 
perse. Although Walter Bright is not afraid of making D a rich language, 
I'm quite sure this is not his stance.

The comparison chart serves two purposes: to give a quick overview to 
the D language and to market D against other C family languages. I 
suggest to keep the first purpose and let the marketing be done by what 
is already there in the other comparison pages: programmers are not 
easily wowed by checklists.

For example: keep the table for everything that D has 'yes' (almost 
everything), and leave the other languages out altogether. Then you have 
room to insert a one line summary of the feature, something like that.
January 14, 2007
Re: Comparison chart worries
Well, AFAIK dynamic arrays are built-in feature in the D programming language. System.Collections.Generic.List<T> is a (user-defined) template. I think Mr. Bright thought about language features when he made "D-vs-others" comparison table.
January 14, 2007
Re: Comparison chart worries
Lutger wrote:
> For example: keep the table for everything that D has 'yes' (almost
> everything), and leave the other languages out altogether. Then you have
> room to insert a one line summary of the feature, something like that.

I agree this is a good idea.
« First   ‹ Prev
1 2 3 4
Top | Discussion index | About this forum | D home