January 14, 2007
Dejan Lekic wrote:
> 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.

Yes and I think the chart is correct, you can even defend that C# has no alias because Alias is too weak to count as a general renaming facility.

But this is not the point. It is not contested that D has these builtin features and the others do not, it is not even in question that builtin arrays have merit (as opposed to libraries).

The point is that this part of the quote still holds true and from a marketing perspective reflects bad on D:

"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."
January 14, 2007
Lutger wrote:
 > The point is that this part of the quote still holds true and from a
> marketing perspective reflects bad on D:
> 
> "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."

From http://www.digitalmars.com/d/comparison.html:

"While many capabilities are available with standard libraries, this table is for features built in to the core language itself."

I guess the problem is that people don't read the introduction to the comparison.  But it might be better to put 'library' instead of just 'no' in that table anyway, like someone suggested.  Than flames like the one you are quote might be less common.

I guess you just can't expect the slashdot crowd and many others to 'RTFA'.

And maybe the link to the comparison should be less prominent, and labelled 'comparison of built-in features' instead of just 'comparison'?
January 14, 2007
torhu wrote:
>  From http://www.digitalmars.com/d/comparison.html:
> 
> "While many capabilities are available with standard libraries, this table is for features built in to the core language itself."
> 
> I guess the problem is that people don't read the introduction to the comparison.  But it might be better to put 'library' instead of just 'no' in that table anyway, like someone suggested.  Than flames like the one you are quote might be less common.

That is one way to improve the page, might prevent some misunderstandings.

> I guess you just can't expect the slashdot crowd and many others to 'RTFA'.

What I was trying to say, is that the comparison chart is objectionable even when you RTFA. As someone in that gamedev thread said in reaction to the allegation that the chart is wrong: "Not wrong actually, deceptive yes."
January 14, 2007
On Sun, 14 Jan 2007 14:59:29 +0100, torhu wrote:

> Lutger wrote:
>   > The point is that this part of the quote still holds true and from a
>> marketing perspective reflects bad on D:
>> 
>> "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."
> 
>  From http://www.digitalmars.com/d/comparison.html:
> 
> "While many capabilities are available with standard libraries, this table is for features built in to the core language itself."
> 
> I guess the problem is that people don't read the introduction to the comparison.  But it might be better to put 'library' instead of just 'no' in that table anyway, like someone suggested.  Than flames like the one you are quote might be less common.
> 
> I guess you just can't expect the slashdot crowd and many others to 'RTFA'.
> 
> And maybe the link to the comparison should be less prominent, and labelled 'comparison of built-in features' instead of just 'comparison'?


Most people look at the chart and don't see anything but bright red and green lights. :)

Walter's disclaimer just doesn't stand out, nor would it appease...

-JJR
January 14, 2007
torhu wrote:
> Lutger wrote:
>  > The point is that this part of the quote still holds true and from a
>> marketing perspective reflects bad on D:
>>
>> "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."
> 
> From http://www.digitalmars.com/d/comparison.html:
> 
> "While many capabilities are available with standard libraries, this table is for features built in to the core language itself."
> 
> I guess the problem is that people don't read the introduction to the comparison.

I don't think so; the problem I have is that the sentence you quote above *confirms* that the table is intended to give a skewed view that has little practical use in assessing the merit of adding D to your toolchest.

> But it might be better to put 'library' instead of just
> 'no' in that table anyway, like someone suggested.  Than flames like the
> one you are quote might be less common.
> 
> I guess you just can't expect the slashdot crowd and many others to 'RTFA'.

It's very helpful when building a community not to assume that all dissent comes from ignorance; the D community in particular should remember that there are many experts who know a lot about other languages (and *why* those languages made the choices they did), and D has a relatively small community (though hopefully also including smart, educated people).

> And maybe the link to the comparison should be less prominent, and labelled 'comparison of built-in features' instead of just 'comparison'?

It would be even more useful if it came with an introduction that placed more emphasis on why D chooses to put so much in the core when other modern languages have largely evolved towards smaller core languages with better library-building facilities; some of that information is present elsewhere in the D documentation (though some of the rationales themselves could do with more work, as always).

-- James
January 14, 2007
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 think there are some really good points being made in this thread. The comparison chart (http://www.digitalmars.com/d/comparison.html) probably stirs up anger in people more often than persuading them to look into D more (at least as the table is currently set up).

Maybe rather than being a bunch of colorful yes's and no's, it should be  more "professional". Perhaps it should be "Core", "Library", "N/A" since much of the disagreement seems to be whether Core or Library is a better place to have a feature, we'll just state where it is and let people decide for themselves where it should be. And if it's really "not available" in that language, we can put "N/A".

Perhaps people won't be so angry then, and they'll continue reading the spec long enough to find the pages where Walter justifies why having a particular feature built-in is so important.

If we could make the table less controversial, that'd be a good thing. There are a growing number of complaints on the DocComments page, too: http://www.prowiki.org/wiki4d/wiki.cgi?DocComments/Comparison

I don't know C/C++/C#/Java well enough to decide if the complaints are justified or not, but I think some of the disagreement might come from the Core vs. Library issue. (Of course, Language X has that. It's in a library.)

-- 
jcc7
January 14, 2007
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 completely, just throw out the chart.  Let them discover for themselves D's power, thats the only way they will believe it anyway.

Charlie
January 14, 2007
I don't agree at all that the table is misleading, deceptive, dishonest, etc. It says right up front what it is - a comparison of *core* language features. You can do anything in a library in any language.

I agree, though, that it is out of date with respect to the latest releases of C# and Java.

I also agree that the table is meant to draw attention, with the brightly colored boxes, etc. Being a little confrontational helps get discussions going. And yes, it throws down the gauntlet and is in your face.

But also, now that 1.0 is here, the time for that may have passed. To that end, I've just removed the entries for the non-D languages. People coming to D from those languages already know what they can do, and can form their own conclusions.
January 14, 2007
On Sun, 14 Jan 2007 11:42:17 -0800, Walter Bright wrote:

> I don't agree at all that the table is misleading, deceptive, dishonest, etc. It says right up front what it is - a comparison of *core* language features. You can do anything in a library in any language.


We're not saying it is so.  But public perception is a much stronger
argument. Those appearances may be costly to D.


> I agree, though, that it is out of date with respect to the latest releases of C# and Java.


Well, I guess that would annoy people too and strengthen they're argument that the chart isn't accurate?


> I also agree that the table is meant to draw attention, with the brightly colored boxes, etc. Being a little confrontational helps get discussions going. And yes, it throws down the gauntlet and is in your face.


Is the programming community in any need of help in starting confrontational discussions? :(

Those aren't the kind of discussions we need.


> But also, now that 1.0 is here, the time for that may have passed. To that end, I've just removed the entries for the non-D languages. People coming to D from those languages already know what they can do, and can form their own conclusions.


Well, I don't think it matters whether D is at 1.0 or not, but thank you for being open to changing this.  I think it's the best thing to do.

-JJR
January 14, 2007
On 01/14/2007 01:42 PM, Walter Bright wrote:
[snip]
> 
> But also, now that 1.0 is here, the time for that may have passed. To that end, I've just removed the entries for the non-D languages. People coming to D from those languages already know what they can do, and can form their own conclusions.

Walter, it would have helped me (a c++ programmer) to have
the links _Yes_ links for rows names containing "template" in the
row name go directory to the relevant section in template.html.
For example,  the _Yes_ for row name="Template Template Parameters"
would go to "template.html#aliasparameters".  Of course one might
expect the reader to first go to template.html, and then, once he
didn't immediately see anything at the top about "template template parameters", do a search for the phrase; however, when someone's
rushed, this would be a big help.

-regards,
Larry