This page does not require a rating on Wikipedia's
content assessment scale. It is of interest to the following WikiProjects: | |||||||||||||||||||||||||
|
This page is an archive of past discussions. Do not edit the contents of this page. If you wish to start a new discussion or revive an old one, please do so on the current talk page. |
"(This needs elaboration.)" has just turned into a link, the target of which has only one sentence of relevance, which says practically nothing.
OK, so it gives a lower bound for the number of languages that have been called D, but that's certainly nowhere near an adequate elaboration in my mind.
Maybe someone should start D programming language (disambiguation)....
-- Smjg 09:44, 20 Apr 2004 (UTC)
Wouldn't it be slightly better to use a D-specific statement in the example like foreach instead of for ?
The problem is that it won't have exactly the same output as the current example (you can't print the number of the argument unless you add an i variable somewhere and increment it each time, but that doesn't look very clean)
I need to learn more before I can rework it, but for starters, "archaic features" is not NPOV. -- Ardonik 00:43, Jul 16, 2004 (UTC)
Initialisation of variables is needed, becouse pointers can point to not existent objects, preventing GC from collecting. And if you Realy want not initialising, no problem: int x = void; And this is marginal (1% ?) fraction of execution time.
--
149.156.67.102 14:23, 25 June 2007 (UTC)
Added a "problems and controversies" section. Reviews are welcome. -- 80.121.25.47 11:17, 10 October 2007 (UTC)
Date & Darwen, in The Third Manifesto, propose a category of pure-relational database languages called D. Their example language is called Tutorial D, and there appear to be a number of implementations already under development. For one, see: http://dbappbuilder.sourceforge.net/Rel.html — FOo 04:01, 23 Sep 2004 (UTC)
"Proposed or possible" successors to C++ is redundant. I'm going to change it back to just "proposed."
I've added D to the Wikipedia:Babel project. Feel free to put it in your babelbox! -- Smjg 09:33, 27 October 2005 (UTC)
When was it designed? 71.96.234.140 04:20, 27 April 2006 (UTC)
It's not clear in the comment which portions of Example 3 are or aren't part of C++ already. I don't know D at all, so could somebody clarify? matt kane's brain 13:50, 5 May 2006 (UTC)
To say that D extends C++ implies that D is C++ with more features. That's just wrong. Infact, that's the opposite of the spirit of D.
D does not "extend" C++; D re-engineers C++ in a better way. D is a modern language that combines the robustness of modern languages (like Java and C#) with the power and features of C/C++.
There is no indication of the current version of either the compiler (or the tools). This information would be useful in determining how "ready is D for prime time." 24.188.206.103 00:56, 13 July 2006 (UTC)Cacofonix
—The preceding unsigned comment was added by 209.89.183.89 ( talk • contribs) .
The DTrace kernel tracing mechanism uses a "scripting language" also called "D", that appears to be a different language than the one covered in this article. I think there should be at least some mention of it, as DTrace is probably more current as a topic than this "older" language. More info on dtrace can be found [ [1]], as well as some [ code]. -- Booch 06:35, 8 November 2006 (UTC)
D programming language → D (programming language) – Conformance with WP naming conventions atanamir
The result of the debate was move as outlined. -- tariqabjotu 02:43, 7 September 2006 (UTC)
Note: This poll has been transcluded onto the talk pages of a number of individual programming languages, but is in fact a subpage of Wikipedia talk:WikiProject Programming languages. When you comment, please note that this survey is for multiple programming languages, not just the one you saw it on.
Some editors have proposed a general rename of articles named with the pattern "FOO programming language" to the pattern "FOO (programming language)". Please note that this poll only is applicable to those programming languages whose names alone would introduce ambiguity. For example, programming languages such as Java and C , whose names alone are ambiguous, would be at Java (programming language) and C (programming language), respectively. Unique names such as Fortran and COBOL, should remain at their respective simple names.
For instructions on how to add a poll participation request to additional applicable article talk pages, please see: Wikipedia talk:WikiProject Programming languages#Poll procedure
Please add "* Support" or "* Oppose" followed by an optional brief explanation, then sign your opinion with ~~~~
In order to reduce clutter in the voting section, i've deicded to respond to DNewhall's vote here. If you're afraid of the amount of work it would take to move the articles, I can move most of them and i'm sure there are other editors willing to take up the task. Also, most books about programming languages simply have the title or common name of the programming language as the title of the book -- the Wrox series uses "Professional PHP" or "professional Java", not "professional PHP programming language" or "professional Java programming langauge". Many of the books I have also have the sorting information as "Computers -- Programming languages -- X," where X is the programming language. atanamir 23:36, 1 September 2006 (UTC)
Imagine if you have a set of objects which all fall under the same category -- let's say they're all different types of Widgets. The types are Alboo, Kabloo, Hello, Wawoob, Baboon, Choogoo, Chimpanzee, etc. Because some will cause ambiguity -- Hello, Baboon, and Chimpanzee -- they need to be disambiguated. However, since the common name (in this case, the real name) is "Hello," "Baboon," and "Chimpanzee," wikipedia has an established precedent of using parentheses. Thus, the unique widgets, Alboo, Kabloo, Wawoob, Coogoo, can have articles simply at the name itself; but the ambiguous names should have articles at Hello (widget), Baboon (widget), and Chimpanzee (widget). Thus, the article titles will be uniform in that they are all "at" the name itself, but with a disambiguator on several of them. This is easier than making all of the articles at Alboo widget, Kabloo widget, Hello widget, etc. Also, it allows for the pipe trick, so links can easily be made with [[Hello (widget)|]] --> Hello. atanamir 23:54, 1 September 2006 (UTC)
Even if we add the parentheses, the guideline at Wikipedia:Disambiguation#Specific topic makes sense to me:
If there is a choice between disambiguating with a generic class or with a context, choose whichever is simpler. Use the same disambiguating phrase for other topics within the same context.
- For example, "(mythology)" rather than "(mythological figure)".
In this case, we could have the simpler and more widely applicable "(computing)" instead of the long "(programming language)". -- TuukkaH 10:04, 2 September 2006 (UTC)
To meet the new standard, the pages should be moved to something like Criticism of C (programming language), right? examples are Georgia (U.S. State) and Politics of Georgia (U.S. state). atanamir 02:42, 5 September 2006 (UTC)
Recently, C# was added to the list of influences of D ( diff). However, I think that is not the case, since D got started before C# had gained a considerable momentum – I think the languages are similar since they merely have common ancestors. Any opinions? -- intgr 10:41, 13 November 2006 (UTC)
Comment added by another reader: my attention was drawn to D by a recent Dr Dobbs newsletter item. Upon looking through the description of D on http://www.digitalmars.com/d/2.0/overview.html, my reaction is that D has a very large overlap with C# both in motivation and details. (I have no knowledge about who deserves credit for which features; perhaps C# & D both availed themselves of some ideas from Java.) The big difference is the aim of D to compile to machine code and to allow assembler code inline, so that it is a good candidate for systems programming. A lesser difference is D's dropping of the namespace concept. After being frustrated for some time by aspects of C++, I found C# to be a huge improvement. I expect that someone moving to D would be similarly appreciative. 64.111.150.248 ( talk) 19:50, 3 February 2009 (UTC)
I'm the author of Geany, a light IDE which supports the language D. Geany isn't a full-featured IDE and it's still in heavy development but it supports already D with some auto completion, folding and such things. Perhaps someone wants to add it. —The preceding unsigned comment was added by 80.144.60.98 ( talk) 17:33, 8 December 2006 (UTC).
Eclipse have good support of D language via Descent plugin.
I'm not a native English speaker, so I probably just don't get it.
Gnu D Compiler (GDC): the GNU D Compiler, built making the DMD compiler front end and the GCC compiler back end work together.
Is it correct that Gnu D uses part of the DMD compiler? I can not find a confirmation of that. - ru:User:Saproj —The preceding unsigned comment was added by 89.106.39.140 ( talk) 19:30, 15 January 2007 (UTC).
There is this in the article:
D is still under development, and changes to the language are made regularly. Although the design is almost frozen, it is possible that some of these changes could break D programs written for older versions of the language and compiler.
I find this strange, because, the article mentions that D already hit 1.0. Can somebody more knowledgeable about D verify this issue? Jorge Peixoto 10:37, 15 March 2007 (UTC)
I changed the text to reflect was is in fact going on. -- Mariano( t/ c) 17:20, 15 March 2007 (UTC)
OK, no trouble for me, because my color vision is virtually perfect, but there are color blindness out there. I suggest using other kind of highlight based on background and font style! Said: Rursus ☺ ★ 15:00, 14 June 2007 (UTC)
For the record, here is example 2 in
TextPad's default colour scheme:
import std.stdio; // for writefln()
int main(string[] args) // string is a type alias for const(char)[]
{
// Declare an associative array with string keys and
// arrays of strings as data
char[][] [char[]] container;
// Add some people to the container and let them carry some items
container"Anya" ~= "scarf";
container"Dimitri" ~= "tickets";
container"Anya" ~= "puppy";
// Iterate over all the persons in the container
foreach (char[] person, char[][] items; container)
display_item_count(person, items);
return 0;
}
void display_item_count(char[] person, char[][] items)
{
writefln(person, " is carrying ", items.length, " items.");
}
Already easier to read than what we have now IMO. Here's a slightly modified version:
import std.stdio; // for writefln()
int main(string[] args) // string is a type alias for const(char)[]
{
// Declare an associative array with string keys and
// arrays of strings as data
char[][] [char[]] container;
// Add some people to the container and let them carry some items
container"Anya" ~= "scarf";
container"Dimitri" ~= "tickets";
container"Anya" ~= "puppy";
// Iterate over all the persons in the container
foreach (char[] person, char[][] items; container)
display_item_count(person, items);
return 0;
}
void display_item_count(char[] person, char[][] items)
{
writefln(person, " is carrying ", items.length, " items.");
}
What do you think? -- Smjg 19:58, 23 July 2007 (UTC)
Regarding the following quote from the Features section: "D is being designed with lessons learned from practical C++ usage rather than from a theoretical perspective. It uses many C++ concepts but discards some, such as strict backwards compatibility with C source code." [My emphasis.]
Could the person who wrote it clarify their meaning here? C++ is not strictly backwards compatible with C anyway. Consider e.g. the statement,
int *a = malloc(10*sizeof(int));
which is legitimate in C but not C++. Is the intent to mean compatibility with C system calls, or ability to link with C libraries, or is the paragraph just plain wrong? — WebDrake 18:17, 14 June 2007 (UTC)
How about converting the examples to be 2.0-compatible? This will probably involve simply replacing char[]s with strings, and will (somewhat) improve readability for those new to the language. -- Vladimir 05:25, 5 July 2007 (UTC)
No! Please revert examples to 1.0. D 2.0 is highly experimental and i don't see any good reason to put in Wikipedia. If some one is interested it can check webpage of D.—Preceding
unsigned comment added by
83.19.20.122 (
talk •
contribs)
string
alias is not only a part of D 2.0, but also D 1.0 (added retroactively when D 2.0 was introduced). Although it was mostly added as a transition feature, it is still a standard language feature (being included in object.d), and using it in the examples will help improve readability, especially for types such as char[][][char[]]
(string[][string]
). However, I do agree that using 2.0-exclusive features in examples is inappropriate.
-Jeff
(talk) 04:29, 23 August 2007 (UTC)I strongly disagree with the claim that "imperative programming is almost identical to C". D is full of features not existing in C. An earlier section mentions features such as "design by contract, unit testing, true modules, automatic memory management (garbage collection), first class arrays, associative arrays, dynamic arrays, array slicing, nested functions, inner classes, limited form of closures, anonymous functions, compile time function execution, lazy evaluation and has a reengineered template syntax". Almost all of those features are applicable to imperative programming. So if your imperative D programs are almost identical to your C programs, that is because you have limited yourself to a subset of D which is almost identical to C.—Preceding unsigned comment added by 85.225.42.48 ( talk • contribs)
There are presently 4 examples on this Encyclopedia page, when there probably be, at most, 1 short example. There is a Wikibook for this content, and I suggest that the examples be moved. Certainly, some direct links from an "Example" section in this article could be made directly to those examples in the Wikibook. + m t 21:46, 23 September 2007 (UTC)
I agree. Also, better examples are possible. Particularly interesting would be to show D implementations of template patterns which require a lot more work in current C++, for example patterns where static_if like functionality and variadic parameter lists are used often. -- 80.121.25.47 10:34, 10 October 2007 (UTC)
I agree, there are too many examples and they are too much long. Better to add explanations of why D avoids some of the problems of C++. —Preceding unsigned comment added by 87.19.202.63 ( talk) 17:17, 31 October 2007 (UTC)
87.18.200.81 ( talk · contribs) made a handful of stylistic edits to the code, which Intgr ( talk · contribs) mass-reverted. The summary: "revert completely unnecessary style changes".
Firstly, just because they're unnecessary doesn't make it the best course of action to revert them. Indeed, if you believe otherwise, you're stuck because reverting the edits is also unnecessary.
But really, what we should be considering isn't so much what's necessary and what isn't as what sets the best example. With that in mind, here are my thoughts on the edits:
int width;
int x; // width
What does everyone else think? -- Smjg 02:09, 15 November 2007 (UTC)
The sentance "C++ multiple inheritance is replaced by Java style single inheritance with interfaces and mixins." needs to be revised. Multiple inheritance and interfaces are different things. —Preceding unsigned comment added by 87.116.148.199 ( talk) 20:28, 20 December 2007 (UTC)
They are different things, but the defense for not implementing multiple inheritance is always that you can achieve almost the same using interfaces. 85.235.250.110 ( talk) 14:04, 9 July 2008 (UTC)
Whereas there certainly are differences in Tango's and Phobos' Object (less now after Tango's last release, 0.99.4), saying that these differences cause GC problems is wrong. The only differences in Object as of today, is a couple of aliases related to strings, and the notification methods (in both cases these are absent from Tango's Object). However, Tango's Thread (especially implementation, but also API) differs quite much from Phobos'. Also, the GCs have diverged over time, but aren't incompatible beyond the fact that some may have workarounds for bugs in either. Exception hierarchies are different, and are as such usually considered among the incompatibilities. Others are generally QOI issues in the runtime. FWIW, Tango developers are in a dialogue with Walter Bright et al to bring the runtimes in Tango and Phobos closer in the 2.0 timeframe of D. What will transpire from that, is still not certain. Note that I don't want to edit the article myself, considering I'm rather biased towards both D and Tango. -- Larsivi ( talk) 23:27, 23 December 2007 (UTC)
Currently, the examples section is over half of this article! Which examples would people be willing to part with? Whichever ones we get rid of should probably be moved to a Wikibook on D, and if there isn't one, one should probably be created. -Jeff (talk) 18:37, 26 March 2008 (UTC)
The current title of this article, "D (programming language)", implies that the name of the language is simply "D" and that it has no other name, however Walter Bright himself has recommended referring to the language as the "D programming language". This is mostly to help search engines find articles on the language, but I feel that given this recommendation, "D programming language" would certainly qualify as an alternate name which is unambiguous (which "D" is not). WP:NC (CN) is pretty clear on what to call the article in this case. -Jeff (talk) 16:17, 27 March 2008 (UTC)
I think that even a casual reading if the title is enough to understand that we are talking about the programming language, rather than the letter or the vitamin. Please keep the parentheses. Blowfish ( talk) 21:48, 5 April 2008 (UTC)
I disagree with the renaming. The "(computer language)" suffix is consistent with naming of articles about C, C# and E languages. D's website calls it just D in many many places. Please remove that obnoxious "inappropriate name" template from D's article. 81.99.215.163 ( talk) 23:26, 12 April 2008 (UTC)
Wikipedia's naming convention is not to simply put parenthesis on an ambiguous title, but to disambiguate by using a clearer common name. The Google test was to show that "D programming language", a clearer name, is also a common name. Obviously it can't prove that it's a more common name than "D", but it doesn't need to. WP:NC (CN) says to use the most common name that doesn't conflict. "D" conflicts, so we shouldn't use it, but "D programming language" doesn't conflict, therefore it meets the convention. Also, I wish people would stop providing proofs that the language is called "D", I already know that, but that name does not conform to the common names convention. It's common yes, but ambiguous, and WP:NC (CN) tells us what to do in that situation. -Jeff (talk) 16:38, 19 May 2008 (UTC)
For disambiguating specific topic pages, several options are available:
1. When there is another term (such as Pocket billiards instead of Pool) or more complete name that is equally clear (such as Delta rocket instead of Delta), that should be used.
2. A disambiguating word or phrase can be added in parentheses. The word or phrase in parentheses should be:
- the generic class that includes the topic (for example, Mercury (element), Seal (mammal)); or
- the subject or context to which the topic applies (for example, Union (set theory), Inflation (economics)).
3. Rarely, an adjective describing the topic can be used, but it is usually better to rephrase the title to avoid parentheses.
-Jeff (talk) 19:23, 20 May 2008 (UTC)
In the example about templates, sometimes "Factorial!" is written with an exclamation mark, and sometimes it isn't. Is this correct? If so, what does the exclamation mark mean? —Preceding unsigned comment added by 91.115.182.40 ( talk) 19:07, 10 January 2009 (UTC)
Factorial
is declared as a template so it has to be instantiated with the syntax Factorial!(number)
. The equivalent in C++ would be Factorial<number>
. factorial
on the other hand, is just an ordinary function so it is called using function call syntax.
-Jeff
(talk) 22:24, 10 January 2009 (UTC)
Version 2 states "Future support for pure functions which can only access immutable data and call other pure functions." It then goes on to explain what a "pure function" is, which is useful, but mostly irrelevant to this article. What it doesn't explain is what "Future support" means? Does this mean it is not currently supported by the compiler but officially part of the 2.0 spec? Does it mean this is really a version 3 feature of the language? Does it mean it is only for use writing software that enables time travel? —Preceding unsigned comment added by 74.219.122.138 ( talk) 13:48, 23 January 2009 (UTC)
Hi, I cannot find ANY examples of ANY *real* software written in D. Can anyone help shed some light on this? 69.181.105.239 ( talk) 03:16, 27 March 2009 (UTC)
I'm a bit confused about the differences between these two languages. It looks to me like they are both striving to be object oriented, C-compatible, compiled languages without the complexity of C++. I suppose D provides more emphasis on compile-time correctness?
Even C++ is only mentioned a couple of times in the article. I think it would help a lot to add a comparison section to Objective-C or C++, and perhaps talk about the fundamental design decisions that distinguish all of these languages, for someone who is not so familiar with the specifics. 64.105.136.146 ( talk) 07:53, 29 March 2009 (UTC)
They are already available in D1 too, so listing them in the section about D2 is wrong. —Preceding unsigned comment added by 79.37.196.221 ( talk) 20:34, 28 April 2009 (UTC)
There are several problems with it, it is
unreferenced, uses
weasel words, uses second-person pronouns, and even contains a note to the person who has been removing it (such discussions should take place here on the talk page). I would encourage the writer of this section to try and fix these problems, but there is one last issue with this section that makes it impossible to fix; it, by its very nature is not
neutral. The lack of a preprocessor is in fact cited as an advantage of D on the Digital Mars site. Anything that can be done with the C/C++ preprocessor can be done with D constructs such as enum
, import
, alias
, and static if
, except for the things that the programmer shouldn't be doing in the first place such as redefining syntax. Also the example given in the section of changing a method call into a property can already be done in D as D allows for methods to be called as properties. So it really is unfair to say that D's lack of a preprocessor is a disadvantage.
-Jeff
(talk) 17:20, 23 August 2009 (UTC)
Where has the criticism section gone? There has been several controversial features in the history of D. The whole language is constantly in development and lots of unnecessary cruft has been planned to be removed since its birth. Still, almost nothing ever happens and all reddit posts get modded down because the author seems to have no idea what e.g. higher order functions (bright vs harrop) or featuritis means. 130.232.103.149 ( talk) 11:40, 24 November 2009 (UTC)
"A stable version, 1.0, was released on January 2, 2007." -- but the D language is listed as created in 1999. Which is more accurate? Was there a specification before release on 1/2/2007? 192.12.12.178 ( talk) 02:21, 2 March 2010 (UTC)
This page is an archive of past discussions. Do not edit the contents of this page. If you wish to start a new discussion or revive an old one, please do so on the current talk page. |
This page does not require a rating on Wikipedia's
content assessment scale. It is of interest to the following WikiProjects: | |||||||||||||||||||||||||
|
This page is an archive of past discussions. Do not edit the contents of this page. If you wish to start a new discussion or revive an old one, please do so on the current talk page. |
"(This needs elaboration.)" has just turned into a link, the target of which has only one sentence of relevance, which says practically nothing.
OK, so it gives a lower bound for the number of languages that have been called D, but that's certainly nowhere near an adequate elaboration in my mind.
Maybe someone should start D programming language (disambiguation)....
-- Smjg 09:44, 20 Apr 2004 (UTC)
Wouldn't it be slightly better to use a D-specific statement in the example like foreach instead of for ?
The problem is that it won't have exactly the same output as the current example (you can't print the number of the argument unless you add an i variable somewhere and increment it each time, but that doesn't look very clean)
I need to learn more before I can rework it, but for starters, "archaic features" is not NPOV. -- Ardonik 00:43, Jul 16, 2004 (UTC)
Initialisation of variables is needed, becouse pointers can point to not existent objects, preventing GC from collecting. And if you Realy want not initialising, no problem: int x = void; And this is marginal (1% ?) fraction of execution time.
--
149.156.67.102 14:23, 25 June 2007 (UTC)
Added a "problems and controversies" section. Reviews are welcome. -- 80.121.25.47 11:17, 10 October 2007 (UTC)
Date & Darwen, in The Third Manifesto, propose a category of pure-relational database languages called D. Their example language is called Tutorial D, and there appear to be a number of implementations already under development. For one, see: http://dbappbuilder.sourceforge.net/Rel.html — FOo 04:01, 23 Sep 2004 (UTC)
"Proposed or possible" successors to C++ is redundant. I'm going to change it back to just "proposed."
I've added D to the Wikipedia:Babel project. Feel free to put it in your babelbox! -- Smjg 09:33, 27 October 2005 (UTC)
When was it designed? 71.96.234.140 04:20, 27 April 2006 (UTC)
It's not clear in the comment which portions of Example 3 are or aren't part of C++ already. I don't know D at all, so could somebody clarify? matt kane's brain 13:50, 5 May 2006 (UTC)
To say that D extends C++ implies that D is C++ with more features. That's just wrong. Infact, that's the opposite of the spirit of D.
D does not "extend" C++; D re-engineers C++ in a better way. D is a modern language that combines the robustness of modern languages (like Java and C#) with the power and features of C/C++.
There is no indication of the current version of either the compiler (or the tools). This information would be useful in determining how "ready is D for prime time." 24.188.206.103 00:56, 13 July 2006 (UTC)Cacofonix
—The preceding unsigned comment was added by 209.89.183.89 ( talk • contribs) .
The DTrace kernel tracing mechanism uses a "scripting language" also called "D", that appears to be a different language than the one covered in this article. I think there should be at least some mention of it, as DTrace is probably more current as a topic than this "older" language. More info on dtrace can be found [ [1]], as well as some [ code]. -- Booch 06:35, 8 November 2006 (UTC)
D programming language → D (programming language) – Conformance with WP naming conventions atanamir
The result of the debate was move as outlined. -- tariqabjotu 02:43, 7 September 2006 (UTC)
Note: This poll has been transcluded onto the talk pages of a number of individual programming languages, but is in fact a subpage of Wikipedia talk:WikiProject Programming languages. When you comment, please note that this survey is for multiple programming languages, not just the one you saw it on.
Some editors have proposed a general rename of articles named with the pattern "FOO programming language" to the pattern "FOO (programming language)". Please note that this poll only is applicable to those programming languages whose names alone would introduce ambiguity. For example, programming languages such as Java and C , whose names alone are ambiguous, would be at Java (programming language) and C (programming language), respectively. Unique names such as Fortran and COBOL, should remain at their respective simple names.
For instructions on how to add a poll participation request to additional applicable article talk pages, please see: Wikipedia talk:WikiProject Programming languages#Poll procedure
Please add "* Support" or "* Oppose" followed by an optional brief explanation, then sign your opinion with ~~~~
In order to reduce clutter in the voting section, i've deicded to respond to DNewhall's vote here. If you're afraid of the amount of work it would take to move the articles, I can move most of them and i'm sure there are other editors willing to take up the task. Also, most books about programming languages simply have the title or common name of the programming language as the title of the book -- the Wrox series uses "Professional PHP" or "professional Java", not "professional PHP programming language" or "professional Java programming langauge". Many of the books I have also have the sorting information as "Computers -- Programming languages -- X," where X is the programming language. atanamir 23:36, 1 September 2006 (UTC)
Imagine if you have a set of objects which all fall under the same category -- let's say they're all different types of Widgets. The types are Alboo, Kabloo, Hello, Wawoob, Baboon, Choogoo, Chimpanzee, etc. Because some will cause ambiguity -- Hello, Baboon, and Chimpanzee -- they need to be disambiguated. However, since the common name (in this case, the real name) is "Hello," "Baboon," and "Chimpanzee," wikipedia has an established precedent of using parentheses. Thus, the unique widgets, Alboo, Kabloo, Wawoob, Coogoo, can have articles simply at the name itself; but the ambiguous names should have articles at Hello (widget), Baboon (widget), and Chimpanzee (widget). Thus, the article titles will be uniform in that they are all "at" the name itself, but with a disambiguator on several of them. This is easier than making all of the articles at Alboo widget, Kabloo widget, Hello widget, etc. Also, it allows for the pipe trick, so links can easily be made with [[Hello (widget)|]] --> Hello. atanamir 23:54, 1 September 2006 (UTC)
Even if we add the parentheses, the guideline at Wikipedia:Disambiguation#Specific topic makes sense to me:
If there is a choice between disambiguating with a generic class or with a context, choose whichever is simpler. Use the same disambiguating phrase for other topics within the same context.
- For example, "(mythology)" rather than "(mythological figure)".
In this case, we could have the simpler and more widely applicable "(computing)" instead of the long "(programming language)". -- TuukkaH 10:04, 2 September 2006 (UTC)
To meet the new standard, the pages should be moved to something like Criticism of C (programming language), right? examples are Georgia (U.S. State) and Politics of Georgia (U.S. state). atanamir 02:42, 5 September 2006 (UTC)
Recently, C# was added to the list of influences of D ( diff). However, I think that is not the case, since D got started before C# had gained a considerable momentum – I think the languages are similar since they merely have common ancestors. Any opinions? -- intgr 10:41, 13 November 2006 (UTC)
Comment added by another reader: my attention was drawn to D by a recent Dr Dobbs newsletter item. Upon looking through the description of D on http://www.digitalmars.com/d/2.0/overview.html, my reaction is that D has a very large overlap with C# both in motivation and details. (I have no knowledge about who deserves credit for which features; perhaps C# & D both availed themselves of some ideas from Java.) The big difference is the aim of D to compile to machine code and to allow assembler code inline, so that it is a good candidate for systems programming. A lesser difference is D's dropping of the namespace concept. After being frustrated for some time by aspects of C++, I found C# to be a huge improvement. I expect that someone moving to D would be similarly appreciative. 64.111.150.248 ( talk) 19:50, 3 February 2009 (UTC)
I'm the author of Geany, a light IDE which supports the language D. Geany isn't a full-featured IDE and it's still in heavy development but it supports already D with some auto completion, folding and such things. Perhaps someone wants to add it. —The preceding unsigned comment was added by 80.144.60.98 ( talk) 17:33, 8 December 2006 (UTC).
Eclipse have good support of D language via Descent plugin.
I'm not a native English speaker, so I probably just don't get it.
Gnu D Compiler (GDC): the GNU D Compiler, built making the DMD compiler front end and the GCC compiler back end work together.
Is it correct that Gnu D uses part of the DMD compiler? I can not find a confirmation of that. - ru:User:Saproj —The preceding unsigned comment was added by 89.106.39.140 ( talk) 19:30, 15 January 2007 (UTC).
There is this in the article:
D is still under development, and changes to the language are made regularly. Although the design is almost frozen, it is possible that some of these changes could break D programs written for older versions of the language and compiler.
I find this strange, because, the article mentions that D already hit 1.0. Can somebody more knowledgeable about D verify this issue? Jorge Peixoto 10:37, 15 March 2007 (UTC)
I changed the text to reflect was is in fact going on. -- Mariano( t/ c) 17:20, 15 March 2007 (UTC)
OK, no trouble for me, because my color vision is virtually perfect, but there are color blindness out there. I suggest using other kind of highlight based on background and font style! Said: Rursus ☺ ★ 15:00, 14 June 2007 (UTC)
For the record, here is example 2 in
TextPad's default colour scheme:
import std.stdio; // for writefln()
int main(string[] args) // string is a type alias for const(char)[]
{
// Declare an associative array with string keys and
// arrays of strings as data
char[][] [char[]] container;
// Add some people to the container and let them carry some items
container"Anya" ~= "scarf";
container"Dimitri" ~= "tickets";
container"Anya" ~= "puppy";
// Iterate over all the persons in the container
foreach (char[] person, char[][] items; container)
display_item_count(person, items);
return 0;
}
void display_item_count(char[] person, char[][] items)
{
writefln(person, " is carrying ", items.length, " items.");
}
Already easier to read than what we have now IMO. Here's a slightly modified version:
import std.stdio; // for writefln()
int main(string[] args) // string is a type alias for const(char)[]
{
// Declare an associative array with string keys and
// arrays of strings as data
char[][] [char[]] container;
// Add some people to the container and let them carry some items
container"Anya" ~= "scarf";
container"Dimitri" ~= "tickets";
container"Anya" ~= "puppy";
// Iterate over all the persons in the container
foreach (char[] person, char[][] items; container)
display_item_count(person, items);
return 0;
}
void display_item_count(char[] person, char[][] items)
{
writefln(person, " is carrying ", items.length, " items.");
}
What do you think? -- Smjg 19:58, 23 July 2007 (UTC)
Regarding the following quote from the Features section: "D is being designed with lessons learned from practical C++ usage rather than from a theoretical perspective. It uses many C++ concepts but discards some, such as strict backwards compatibility with C source code." [My emphasis.]
Could the person who wrote it clarify their meaning here? C++ is not strictly backwards compatible with C anyway. Consider e.g. the statement,
int *a = malloc(10*sizeof(int));
which is legitimate in C but not C++. Is the intent to mean compatibility with C system calls, or ability to link with C libraries, or is the paragraph just plain wrong? — WebDrake 18:17, 14 June 2007 (UTC)
How about converting the examples to be 2.0-compatible? This will probably involve simply replacing char[]s with strings, and will (somewhat) improve readability for those new to the language. -- Vladimir 05:25, 5 July 2007 (UTC)
No! Please revert examples to 1.0. D 2.0 is highly experimental and i don't see any good reason to put in Wikipedia. If some one is interested it can check webpage of D.—Preceding
unsigned comment added by
83.19.20.122 (
talk •
contribs)
string
alias is not only a part of D 2.0, but also D 1.0 (added retroactively when D 2.0 was introduced). Although it was mostly added as a transition feature, it is still a standard language feature (being included in object.d), and using it in the examples will help improve readability, especially for types such as char[][][char[]]
(string[][string]
). However, I do agree that using 2.0-exclusive features in examples is inappropriate.
-Jeff
(talk) 04:29, 23 August 2007 (UTC)I strongly disagree with the claim that "imperative programming is almost identical to C". D is full of features not existing in C. An earlier section mentions features such as "design by contract, unit testing, true modules, automatic memory management (garbage collection), first class arrays, associative arrays, dynamic arrays, array slicing, nested functions, inner classes, limited form of closures, anonymous functions, compile time function execution, lazy evaluation and has a reengineered template syntax". Almost all of those features are applicable to imperative programming. So if your imperative D programs are almost identical to your C programs, that is because you have limited yourself to a subset of D which is almost identical to C.—Preceding unsigned comment added by 85.225.42.48 ( talk • contribs)
There are presently 4 examples on this Encyclopedia page, when there probably be, at most, 1 short example. There is a Wikibook for this content, and I suggest that the examples be moved. Certainly, some direct links from an "Example" section in this article could be made directly to those examples in the Wikibook. + m t 21:46, 23 September 2007 (UTC)
I agree. Also, better examples are possible. Particularly interesting would be to show D implementations of template patterns which require a lot more work in current C++, for example patterns where static_if like functionality and variadic parameter lists are used often. -- 80.121.25.47 10:34, 10 October 2007 (UTC)
I agree, there are too many examples and they are too much long. Better to add explanations of why D avoids some of the problems of C++. —Preceding unsigned comment added by 87.19.202.63 ( talk) 17:17, 31 October 2007 (UTC)
87.18.200.81 ( talk · contribs) made a handful of stylistic edits to the code, which Intgr ( talk · contribs) mass-reverted. The summary: "revert completely unnecessary style changes".
Firstly, just because they're unnecessary doesn't make it the best course of action to revert them. Indeed, if you believe otherwise, you're stuck because reverting the edits is also unnecessary.
But really, what we should be considering isn't so much what's necessary and what isn't as what sets the best example. With that in mind, here are my thoughts on the edits:
int width;
int x; // width
What does everyone else think? -- Smjg 02:09, 15 November 2007 (UTC)
The sentance "C++ multiple inheritance is replaced by Java style single inheritance with interfaces and mixins." needs to be revised. Multiple inheritance and interfaces are different things. —Preceding unsigned comment added by 87.116.148.199 ( talk) 20:28, 20 December 2007 (UTC)
They are different things, but the defense for not implementing multiple inheritance is always that you can achieve almost the same using interfaces. 85.235.250.110 ( talk) 14:04, 9 July 2008 (UTC)
Whereas there certainly are differences in Tango's and Phobos' Object (less now after Tango's last release, 0.99.4), saying that these differences cause GC problems is wrong. The only differences in Object as of today, is a couple of aliases related to strings, and the notification methods (in both cases these are absent from Tango's Object). However, Tango's Thread (especially implementation, but also API) differs quite much from Phobos'. Also, the GCs have diverged over time, but aren't incompatible beyond the fact that some may have workarounds for bugs in either. Exception hierarchies are different, and are as such usually considered among the incompatibilities. Others are generally QOI issues in the runtime. FWIW, Tango developers are in a dialogue with Walter Bright et al to bring the runtimes in Tango and Phobos closer in the 2.0 timeframe of D. What will transpire from that, is still not certain. Note that I don't want to edit the article myself, considering I'm rather biased towards both D and Tango. -- Larsivi ( talk) 23:27, 23 December 2007 (UTC)
Currently, the examples section is over half of this article! Which examples would people be willing to part with? Whichever ones we get rid of should probably be moved to a Wikibook on D, and if there isn't one, one should probably be created. -Jeff (talk) 18:37, 26 March 2008 (UTC)
The current title of this article, "D (programming language)", implies that the name of the language is simply "D" and that it has no other name, however Walter Bright himself has recommended referring to the language as the "D programming language". This is mostly to help search engines find articles on the language, but I feel that given this recommendation, "D programming language" would certainly qualify as an alternate name which is unambiguous (which "D" is not). WP:NC (CN) is pretty clear on what to call the article in this case. -Jeff (talk) 16:17, 27 March 2008 (UTC)
I think that even a casual reading if the title is enough to understand that we are talking about the programming language, rather than the letter or the vitamin. Please keep the parentheses. Blowfish ( talk) 21:48, 5 April 2008 (UTC)
I disagree with the renaming. The "(computer language)" suffix is consistent with naming of articles about C, C# and E languages. D's website calls it just D in many many places. Please remove that obnoxious "inappropriate name" template from D's article. 81.99.215.163 ( talk) 23:26, 12 April 2008 (UTC)
Wikipedia's naming convention is not to simply put parenthesis on an ambiguous title, but to disambiguate by using a clearer common name. The Google test was to show that "D programming language", a clearer name, is also a common name. Obviously it can't prove that it's a more common name than "D", but it doesn't need to. WP:NC (CN) says to use the most common name that doesn't conflict. "D" conflicts, so we shouldn't use it, but "D programming language" doesn't conflict, therefore it meets the convention. Also, I wish people would stop providing proofs that the language is called "D", I already know that, but that name does not conform to the common names convention. It's common yes, but ambiguous, and WP:NC (CN) tells us what to do in that situation. -Jeff (talk) 16:38, 19 May 2008 (UTC)
For disambiguating specific topic pages, several options are available:
1. When there is another term (such as Pocket billiards instead of Pool) or more complete name that is equally clear (such as Delta rocket instead of Delta), that should be used.
2. A disambiguating word or phrase can be added in parentheses. The word or phrase in parentheses should be:
- the generic class that includes the topic (for example, Mercury (element), Seal (mammal)); or
- the subject or context to which the topic applies (for example, Union (set theory), Inflation (economics)).
3. Rarely, an adjective describing the topic can be used, but it is usually better to rephrase the title to avoid parentheses.
-Jeff (talk) 19:23, 20 May 2008 (UTC)
In the example about templates, sometimes "Factorial!" is written with an exclamation mark, and sometimes it isn't. Is this correct? If so, what does the exclamation mark mean? —Preceding unsigned comment added by 91.115.182.40 ( talk) 19:07, 10 January 2009 (UTC)
Factorial
is declared as a template so it has to be instantiated with the syntax Factorial!(number)
. The equivalent in C++ would be Factorial<number>
. factorial
on the other hand, is just an ordinary function so it is called using function call syntax.
-Jeff
(talk) 22:24, 10 January 2009 (UTC)
Version 2 states "Future support for pure functions which can only access immutable data and call other pure functions." It then goes on to explain what a "pure function" is, which is useful, but mostly irrelevant to this article. What it doesn't explain is what "Future support" means? Does this mean it is not currently supported by the compiler but officially part of the 2.0 spec? Does it mean this is really a version 3 feature of the language? Does it mean it is only for use writing software that enables time travel? —Preceding unsigned comment added by 74.219.122.138 ( talk) 13:48, 23 January 2009 (UTC)
Hi, I cannot find ANY examples of ANY *real* software written in D. Can anyone help shed some light on this? 69.181.105.239 ( talk) 03:16, 27 March 2009 (UTC)
I'm a bit confused about the differences between these two languages. It looks to me like they are both striving to be object oriented, C-compatible, compiled languages without the complexity of C++. I suppose D provides more emphasis on compile-time correctness?
Even C++ is only mentioned a couple of times in the article. I think it would help a lot to add a comparison section to Objective-C or C++, and perhaps talk about the fundamental design decisions that distinguish all of these languages, for someone who is not so familiar with the specifics. 64.105.136.146 ( talk) 07:53, 29 March 2009 (UTC)
They are already available in D1 too, so listing them in the section about D2 is wrong. —Preceding unsigned comment added by 79.37.196.221 ( talk) 20:34, 28 April 2009 (UTC)
There are several problems with it, it is
unreferenced, uses
weasel words, uses second-person pronouns, and even contains a note to the person who has been removing it (such discussions should take place here on the talk page). I would encourage the writer of this section to try and fix these problems, but there is one last issue with this section that makes it impossible to fix; it, by its very nature is not
neutral. The lack of a preprocessor is in fact cited as an advantage of D on the Digital Mars site. Anything that can be done with the C/C++ preprocessor can be done with D constructs such as enum
, import
, alias
, and static if
, except for the things that the programmer shouldn't be doing in the first place such as redefining syntax. Also the example given in the section of changing a method call into a property can already be done in D as D allows for methods to be called as properties. So it really is unfair to say that D's lack of a preprocessor is a disadvantage.
-Jeff
(talk) 17:20, 23 August 2009 (UTC)
Where has the criticism section gone? There has been several controversial features in the history of D. The whole language is constantly in development and lots of unnecessary cruft has been planned to be removed since its birth. Still, almost nothing ever happens and all reddit posts get modded down because the author seems to have no idea what e.g. higher order functions (bright vs harrop) or featuritis means. 130.232.103.149 ( talk) 11:40, 24 November 2009 (UTC)
"A stable version, 1.0, was released on January 2, 2007." -- but the D language is listed as created in 1999. Which is more accurate? Was there a specification before release on 1/2/2007? 192.12.12.178 ( talk) 02:21, 2 March 2010 (UTC)
This page is an archive of past discussions. Do not edit the contents of this page. If you wish to start a new discussion or revive an old one, please do so on the current talk page. |