www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Discussion about D at a C++ forum

reply Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
Here's an interesting discussion that may reflect the perceptions and 
misperceptions about D within the larger community.

http://www.cplusplus.com/forum/lounge/58832/


Andrei
Jan 07 2012
next sibling parent reply Jonathan M Davis <jmdavisProg gmx.com> writes:
On Saturday, January 07, 2012 22:19:53 Andrei Alexandrescu wrote:
 Here's an interesting discussion that may reflect the perceptions and
 misperceptions about D within the larger community.
 
 http://www.cplusplus.com/forum/lounge/58832/
Not exactly the most informed discussion. But I would expect that some of the misinformation is fairly typical. I'd say that a lot of what people think or know about D is from a couple of years ago (if not farther back) and/or derived from the opinions of others rather than real experience. And an initial bad experience (as has happened far too often, as we've seen with newbies reactions to stuff not working just around here, let alone in the D community as a whole) can definitely lead to negative and/or misinformed beliefs, which then spread to others outside the D comunity when D is brought up. I'm not sure what we can do about that other than really improving what we have to offer, and while we still have plenty to do, we've definitely been making solid improvements. - Jonathan M Davis
Jan 07 2012
next sibling parent reply Mike Parker <aldacron gmail.com> writes:
On 1/8/2012 3:57 PM, Jonathan M Davis wrote:
 On Saturday, January 07, 2012 22:19:53 Andrei Alexandrescu wrote:
 Here's an interesting discussion that may reflect the perceptions and
 misperceptions about D within the larger community.

 http://www.cplusplus.com/forum/lounge/58832/
Not exactly the most informed discussion. But I would expect that some of the misinformation is fairly typical. I'd say that a lot of what people think or know about D is from a couple of years ago (if not farther back) and/or derived from the opinions of others rather than real experience. And an initial bad experience (as has happened far too often, as we've seen with newbies reactions to stuff not working just around here, let alone in the D community as a whole) can definitely lead to negative and/or misinformed beliefs, which then spread to others outside the D comunity when D is brought up. I'm not sure what we can do about that other than really improving what we have to offer, and while we still have plenty to do, we've definitely been making solid improvements. - Jonathan M Davis
Unfortunately, there's nothing anyone really can do about it (and I'm not actually directing this post at you, Jonathan, just preaching in general). Java, for example, *still* suffers from the reputation it gained back in the late 90's. You have companies like Sony running successful online games with both the client and the server developed in Java, while around the net people are swearing up and down that it's too slow for games. There are issues with Java, sure, but modern JVM performance is perfectly acceptable (and then some) for a significant number of use cases. We'll see the same thing with D, I'm sure. Once a negative rumor gets out there, it refuses to go away regardless of its current veracity. New programmers come along, hear things from their veteran colleagues, and spread it around themselves without ever once bothering to verify it. It seems very much to be a natural condition. Just look how bad it is in the political arena. I think the best we can do is to put our heads down, get the work done, and step into an outside discussion every now and then to interject some FUD-fighting evangelism (in the belief that not all of the naysayers are knuckleheads, but simply misinformed). The people who really matter right now are the ones who are rational enough to ignore the FUD and and serious enough to give D more than a cursory look. Their initial experience is what will ultimately make or break D's chances for wider adoption. That said, I do admit to a certain amount of blood boiling when I see my favorite language being verbally abused!
Jan 07 2012
next sibling parent Somedude <lovelydear mailmetrash.com> writes:
Le 08/01/2012 08:47, Mike Parker a écrit :
 On 1/8/2012 3:57 PM, Jonathan M Davis wrote:
 On Saturday, January 07, 2012 22:19:53 Andrei Alexandrescu wrote:
 Here's an interesting discussion that may reflect the perceptions and
 misperceptions about D within the larger community.

 http://www.cplusplus.com/forum/lounge/58832/
Not exactly the most informed discussion. But I would expect that some of the misinformation is fairly typical. I'd say that a lot of what people think or know about D is from a couple of years ago (if not farther back) and/or derived from the opinions of others rather than real experience. And an initial bad experience (as has happened far too often, as we've seen with newbies reactions to stuff not working just around here, let alone in the D community as a whole) can definitely lead to negative and/or misinformed beliefs, which then spread to others outside the D comunity when D is brought up. I'm not sure what we can do about that other than really improving what we have to offer, and while we still have plenty to do, we've definitely been making solid improvements. - Jonathan M Davis
Unfortunately, there's nothing anyone really can do about it (and I'm not actually directing this post at you, Jonathan, just preaching in general). Java, for example, *still* suffers from the reputation it gained back in the late 90's. You have companies like Sony running successful online games with both the client and the server developed in Java, while around the net people are swearing up and down that it's too slow for games. There are issues with Java, sure, but modern JVM performance is perfectly acceptable (and then some) for a significant number of use cases.
It hasn't prevented Java from being extremely successful in its own area.
Jan 13 2012
prev sibling parent "Nick Sabalausky" <a a.a> writes:
"Mike Parker" <aldacron gmail.com> wrote in message 
news:jebhmg$20vf$1 digitalmars.com...
 On 1/8/2012 3:57 PM, Jonathan M Davis wrote:
 On Saturday, January 07, 2012 22:19:53 Andrei Alexandrescu wrote:
 Here's an interesting discussion that may reflect the perceptions and
 misperceptions about D within the larger community.

 http://www.cplusplus.com/forum/lounge/58832/
Not exactly the most informed discussion. But I would expect that some of the misinformation is fairly typical. I'd say that a lot of what people think or know about D is from a couple of years ago (if not farther back) and/or derived from the opinions of others rather than real experience. And an initial bad experience (as has happened far too often, as we've seen with newbies reactions to stuff not working just around here, let alone in the D community as a whole) can definitely lead to negative and/or misinformed beliefs, which then spread to others outside the D comunity when D is brought up. I'm not sure what we can do about that other than really improving what we have to offer, and while we still have plenty to do, we've definitely been making solid improvements. - Jonathan M Davis
Unfortunately, there's nothing anyone really can do about it (and I'm not actually directing this post at you, Jonathan, just preaching in general). Java, for example, *still* suffers from the reputation it gained back in the late 90's. You have companies like Sony running successful online games with both the client and the server developed in Java, while around the net people are swearing up and down that it's too slow for games. There are issues with Java, sure, but modern JVM performance is perfectly acceptable (and then some) for a significant number of use cases.
While that's certainly a real phonomenon, in the case of Java, I think there's much more involved than just that: With Java, there's actual *reinforcement* of the "Java is slow" (regardless of whether right or wrong), and there are also other reasons for not wanting to give Java another chance regardless of it's speed. Consider this: People start hearing "Java's fast now!". The subset of non-Java-users who *haven't* already become fed up with Java's OO-religiousness and other issues might actually give Java another chance. When most people think "Java development", they think "Eclipse". So they grab Eclipse, fire it up, and..."holy hell, this is still slow! WTF are people talking about? Java's not fast now!" And then they'll leave with a reinforced belief that Java is still slow and Java fans are nuts. Note that in this scenerio, whether or not Eclipse is an accurate representation of Java's speed is irrelevent. I think the take-away is this: While we certainly should keep moving forward, improving things, correcting misconceptions of D when possible, and accepting that there will always people with outdated ideas of D, we should also keep an eye out for ways in which we might be accidentally reinforcing misconceptions (whether right or wrong), *especially* to those people who actually give us a try. And I do think it also helps that the language we have is just simply much better than Java anyway (less likely for people to be fed up with the langauge and leave in disgust in the first place - language shortcomings are known to be harder to fix than tool shortcomings).
Jan 13 2012
prev sibling parent reply Mehrdad <wfunction hotmail.com> writes:
On 1/7/2012 10:57 PM, Jonathan M Davis wrote:
 Not exactly the most informed discussion.
Well, some of their comments _ARE_ spot-on correct... 2. "While you can avoid the garbage collector, that basically means you can't use most of the standard library." Looks pretty darn correct to me -- from the fixed-size array literal issue (literals are on the GC heap), to all the string operations (very little is usable), to associative arrays (heck, they're even part of the language, but you can't use them without a GC), etc... 3. "The community really has a Java feel to it. They often don't care as much for efficiency as say a C++ programmer would." pretty accurate. SP programmers should /know/ what they're doing, so not letting them delete GC'd objects manually is kinda stupid, and a pretty Java-like approach. Looks well-informed to me. 4. "Binary sizes are currently stupid. A simple hello program with DMD is over half a megabyte and with GDC, is nearly 1.4mB. This is mostly because it will not dynamically link to phobos (see below). They're working on this... This isn't the fault of the language." Looks pretty darn informed. You guys _are_ working on this, and this /has/ been an issue, and it obviously isn't the language's fault, so.... 5. "Has poor shared library support (although this has grown significantly)." Looks 100% correct. Not sure what they mean by "there are symbol resolution problems because of the GC", but it's true that shared library support is poor right now, isn't it? 7. Unstable language. They're currently considering doing things like removing "delete" as it's apparently deprecated (which will officially make it not usable as an SP language). Looks 100% correct. Removing 'delete' /does/ make D unusable as an SP language... unless you ignore the GC completely, which isn't even possible, practically speaking.
Jan 08 2012
next sibling parent reply dsimcha <dsimcha yahoo.com> writes:
On 1/8/2012 6:28 PM, Mehrdad wrote:
 On 1/7/2012 10:57 PM, Jonathan M Davis wrote:
 Not exactly the most informed discussion.
Well, some of their comments _ARE_ spot-on correct... 2. "While you can avoid the garbage collector, that basically means you can't use most of the standard library." Looks pretty darn correct to me -- from the fixed-size array literal issue (literals are on the GC heap), to all the string operations (very little is usable), to associative arrays (heck, they're even part of the language, but you can't use them without a GC), etc...
As someone who does performance-critical scientific work in D, this comment is absolutely **wrong** because you only need to avoid the GC in the most performance-critical/realtime parts of your code, i.e. where you should be avoiding any dynamic allocation, GC or not. (Though GC is admittedly worse than malloc, at least given D's current quality of implementation.) My style of programming in D is to consciously transition between high-level D and low-level D depending on what I'm doing. Low-level D avoids the GC, heavy use of std.range/std.algorithm since the compiler doesn't optimize these well yet, and basically anything else where the cost isn't clear. It's a PITA to program in like all low-level languages, but not as bad as C or C++. Nonetheless low-level D is just as fast as C or C++. High-level D is slower than C or C++ but faster than Python, and integrates much more cleanly with low-level D than Python does with C and C++. It's only slightly harder to program in than Python. Bottom line: D doesn't give you a free lunch but it does give you a cheaper lunch than C, C++ or even a combination of C/C++ and Python.
Jan 08 2012
next sibling parent Mehrdad <wfunction hotmail.com> writes:
On 1/8/2012 4:26 PM, dsimcha wrote:
 On 1/8/2012 6:28 PM, Mehrdad wrote:
 2. "While you can avoid the garbage collector, that basically means you
 can't use most of the standard library."
 Looks pretty darn correct to me -- from the fixed-size array literal
 issue (literals are on the GC heap), to all the string operations (very
 little is usable), to associative arrays (heck, they're even part of the
 language, but you can't use them without a GC), etc...
As someone who does performance-critical scientific work in D, this comment is absolutely **wrong** because you only need to avoid the GC in the most performance-critical/realtime parts of your code
Who said anything about performance? And who's the "you" in this statement? What platform are you on? I guess if you make the assumption that everyone is doing user-mode programming for Windows/Mac/Linux/BSD, then yes, you're 100% correct. The trouble is, making GUIs and taking FFTs in user-mode isn't what people mean by "systems programming"...
Jan 08 2012
prev sibling parent reply Gour <gour atmarama.net> writes:
On Sun, 08 Jan 2012 19:26:15 -0500
dsimcha <dsimcha yahoo.com> wrote:

 As someone who does performance-critical scientific work in D, this=20
 comment is absolutely **wrong** because you only need to avoid the GC
 in the most performance-critical/realtime parts of your code, i.e.
 where you should be avoiding any dynamic allocation, GC or not.
Considering we'd need to do some work for our project involving number crunching in the form of producing several libs to be (later) used by GUI part of the app, I'm curious to know do you use ncurses or just plain console output for your UI? I'm askin considering to start work on non-GUI part of the project and just have simple UI to test results and along with that work try to improve GUI situation in the D's ecosystem.
 Bottom line:  D doesn't give you a free lunch but it does give you a=20
 cheaper lunch than C, C++ or even a combination of C/C++ and Python.
That's vey nice to hear from someone like yourself. We did small research about possible alternatives for D by looking at Scala & Clojure, but understood we don't get much in terms of GUIs, but only lose otherwise. lose, so we'll stay with D, try to write non-GUI parts and later (hopefully) sell D as overall language of the projet. Sincerely, Gour --=20 Never was there a time when I did not exist,=20 nor you, nor all these kings; nor in the future=20 shall any of us cease to be. http://atmarama.net | Hlapicina (Croatia) | GPG: 52B5C810
Jan 08 2012
parent reply dsimcha <dsimcha yahoo.com> writes:
On 1/9/2012 2:56 AM, Gour wrote:
 On Sun, 08 Jan 2012 19:26:15 -0500
 dsimcha<dsimcha yahoo.com>  wrote:

 As someone who does performance-critical scientific work in D, this
 comment is absolutely **wrong** because you only need to avoid the GC
 in the most performance-critical/realtime parts of your code, i.e.
 where you should be avoiding any dynamic allocation, GC or not.
Considering we'd need to do some work for our project involving number crunching in the form of producing several libs to be (later) used by GUI part of the app, I'm curious to know do you use ncurses or just plain console output for your UI?
Pure command line/console.
Jan 09 2012
parent Gour <gour atmarama.net> writes:
On Mon, 09 Jan 2012 09:28:11 -0500
dsimcha <dsimcha yahoo.com> wrote:

 Pure command line/console.
Thank you. Sincerely, Gour --=20 As a strong wind sweeps away a boat on the water,=20 even one of the roaming senses on which the mind=20 focuses can carry away a man's intelligence. http://atmarama.net | Hlapicina (Croatia) | GPG: 52B5C810
Jan 09 2012
prev sibling next sibling parent reply "Vladimir Panteleev" <vladimir thecybershadow.net> writes:
On Sunday, 8 January 2012 at 23:28:57 UTC, Mehrdad wrote:
 7. Unstable language. They're currently considering doing 
 things like removing "delete" as it's apparently deprecated 
 (which will officially make it not usable as an SP language).
   Looks 100% correct. Removing 'delete' /does/ make D unusable 
 as an SP language... unless you ignore the GC completely, which 
 isn't even possible, practically speaking.
I don't understand how you came to that conclusion? "delete" will become a standard library (or easily-implemented user) function.
Jan 08 2012
parent reply Mehrdad <wfunction hotmail.com> writes:
On 1/8/2012 7:09 PM, Vladimir Panteleev wrote:
 On Sunday, 8 January 2012 at 23:28:57 UTC, Mehrdad wrote:
 7. Unstable language. They're currently considering doing things like 
 removing "delete" as it's apparently deprecated (which will 
 officially make it not usable as an SP language).
   Looks 100% correct. Removing 'delete' /does/ make D unusable as an 
 SP language... unless you ignore the GC completely, which isn't even 
 possible, practically speaking.
I don't understand how you came to that conclusion? "delete" will become a standard library (or easily-implemented user) function.
Would it still have the same functionality (i.e. disposing of GC'd objects and reclaiming their memory, as though the GC had done it)? If so, what's the point of removing it in the first place? If not, then I guess my point is obvious.
Jan 09 2012
parent reply Jonathan M Davis <jmdavisProg gmx.com> writes:
On Monday, January 09, 2012 00:51:57 Mehrdad wrote:
 On 1/8/2012 7:09 PM, Vladimir Panteleev wrote:
 On Sunday, 8 January 2012 at 23:28:57 UTC, Mehrdad wrote:
 7. Unstable language. They're currently considering doing things like
 removing "delete" as it's apparently deprecated (which will
 officially make it not usable as an SP language).
 
   Looks 100% correct. Removing 'delete' /does/ make D unusable as an
 
 SP language... unless you ignore the GC completely, which isn't even
 possible, practically speaking.
I don't understand how you came to that conclusion? "delete" will become a standard library (or easily-implemented user) function.
Would it still have the same functionality (i.e. disposing of GC'd objects and reclaiming their memory, as though the GC had done it)? If so, what's the point of removing it in the first place? If not, then I guess my point is obvious.
I believe that the general idea is that if you want to manually manage memory, then you don't use the GC heap, though core.memory.GC will still allow some level of manual control for the GC. I'm not aware of any plan to add a "delete" function to anything, but if something like that is added, it'll probably be to core.memory with the idea that it's there if you really need it but that you really shouldn't be using it normally. Explicitly freeing memory goes with manually memory management, not garbage collection. - Jonathan M Davis
Jan 09 2012
next sibling parent Kiith-Sa <42 theanswer.com> writes:
Jonathan M Davis wrote:

 On Monday, January 09, 2012 00:51:57 Mehrdad wrote:
 On 1/8/2012 7:09 PM, Vladimir Panteleev wrote:
 On Sunday, 8 January 2012 at 23:28:57 UTC, Mehrdad wrote:
 7. Unstable language. They're currently considering doing things like
 removing "delete" as it's apparently deprecated (which will
 officially make it not usable as an SP language).
 
   Looks 100% correct. Removing 'delete' /does/ make D unusable as an
 
 SP language... unless you ignore the GC completely, which isn't even
 possible, practically speaking.
I don't understand how you came to that conclusion? "delete" will become a standard library (or easily-implemented user) function.
Would it still have the same functionality (i.e. disposing of GC'd objects and reclaiming their memory, as though the GC had done it)? If so, what's the point of removing it in the first place? If not, then I guess my point is obvious.
I believe that the general idea is that if you want to manually manage memory, then you don't use the GC heap, though core.memory.GC will still allow some level of manual control for the GC. I'm not aware of any plan to add a "delete" function to anything, but if something like that is added, it'll probably be to core.memory with the idea that it's there if you really need it but that you really shouldn't be using it normally. Explicitly freeing memory goes with manually memory management, not garbage collection. - Jonathan M Davis
AFAIK, core.memory.GC.free() can be used to manually deallocate GC allocated data (you'll have to clear the classes to destroy them, though). But, correct, if you want manual allocation, you should use manual allocation. My game project uses GC all over the code - yet most memory is manually allocated as the largest allocations are in specific parts of code (mostly video related, e.g. textures). This way you get the benefits of both a GC and manual allocation.
Jan 09 2012
prev sibling parent Mehrdad <wfunction hotmail.com> writes:
On 1/9/2012 1:02 AM, Jonathan M Davis wrote:
 I believe that the general idea is that if you want to manually manage memory,
 then you don't use the GC heap, though core.memory.GC will still allow some
 level of manual control for the GC. I'm not aware of any plan to add a
 "delete" function to anything, but if something like that is added, it'll
 probably be to core.memory with the idea that it's there if you really need it
 but that you really shouldn't be using it normally. Explicitly freeing memory
 goes with manually memory management, not garbage collection.

 - Jonathan M Davis
The precise trouble with that is that the _language_ DEPENDS on a GC in order to function correctly. Arrays, AAs, closures, etc. use a GC for allocation, and essentially you're saying "don't delete AAs", even though that could very well be the memory hog in my program. Object /also/ depends on a GC... yes, we have emplace(), yada yada, but it's is pretty darn un-handy to use (compared to placement new in C++, which is a breeze) so it's indeed quite a bit more difficult to use than in C++. Unless you're saying I can't use AAs if I don't want a GC, then I don't see how that argument works out.
Jan 09 2012
prev sibling next sibling parent "Jesse Phillips" <jessekphillips+D gmail.com> writes:
On Sunday, 8 January 2012 at 23:28:57 UTC, Mehrdad wrote:
 On 1/7/2012 10:57 PM, Jonathan M Davis wrote:
 Not exactly the most informed discussion.
Well, some of their comments _ARE_ spot-on correct...
computerquip did a very good job highlighting the bad points. rapidcoder failed miserably to provide accurate claims. Most of the discussion is these two going back and forth (where computerquip states rapidcoder's inability to argue). The conclusion that not a systems language is the only thing I partially disagree with from computerquip. I don't think it can be used for such at this time, or at least not it a way that is any better than C (and may even be worse in some situations). But systems programming is a goal, we just don't have a big enough section in the community spending time to improve this area. Sadly there isn't anything new that we can take away from this discussion.
Jan 08 2012
prev sibling parent reply "Steven Schveighoffer" <schveiguy yahoo.com> writes:
On Sun, 08 Jan 2012 18:28:54 -0500, Mehrdad <wfunction hotmail.com> wrote:

 7. Unstable language. They're currently considering doing things like  
 removing "delete" as it's apparently deprecated (which will officially  
 make it not usable as an SP language).
     Looks 100% correct. Removing 'delete' /does/ make D unusable as an  
 SP language... unless you ignore the GC completely, which isn't even  
 possible, practically speaking.
C doesn't have delete. But removing delete isn't the problem anyways. Here is the problem (which exists with delete present in the language): class C { private int[] buf; this() { buf = new int[5]; } ~this() {/* can't destroy buf here */} } void main() { auto c = new C; delete c; // doesn't destroy c.buf } What we need is a way to hook deterministic destruction vs. GC destruction. Only then, a SP language will you be. -Steve
Jan 09 2012
next sibling parent reply Zachary Lund <admin computerquip.com> writes:
On 01/09/2012 07:58 AM, Steven Schveighoffer wrote:
 On Sun, 08 Jan 2012 18:28:54 -0500, Mehrdad <wfunction hotmail.com> wrote:

 7. Unstable language. They're currently considering doing things like
 removing "delete" as it's apparently deprecated (which will officially
 make it not usable as an SP language).
 Looks 100% correct. Removing 'delete' /does/ make D unusable as an SP
 language... unless you ignore the GC completely, which isn't even
 possible, practically speaking.
C doesn't have delete. But removing delete isn't the problem anyways. Here is the problem (which exists with delete present in the language): class C { private int[] buf; this() { buf = new int[5]; } ~this() {/* can't destroy buf here */} } void main() { auto c = new C; delete c; // doesn't destroy c.buf } What we need is a way to hook deterministic destruction vs. GC destruction. Only then, a SP language will you be. -Steve
I was under the impression you could overload new and delete per class/union/struct which gave you the ability to control how things were allocated. I was also under the impression that this would be longer possible with some of the comments made on IRC. I'm probably wrong (or I hope I'm wrong...).
Jan 09 2012
parent "Steven Schveighoffer" <schveiguy yahoo.com> writes:
On Mon, 09 Jan 2012 09:47:13 -0500, Zachary Lund <admin computerquip.com>  
wrote:

 On 01/09/2012 07:58 AM, Steven Schveighoffer wrote:
 On Sun, 08 Jan 2012 18:28:54 -0500, Mehrdad <wfunction hotmail.com>  
 wrote:

 7. Unstable language. They're currently considering doing things like
 removing "delete" as it's apparently deprecated (which will officially
 make it not usable as an SP language).
 Looks 100% correct. Removing 'delete' /does/ make D unusable as an SP
 language... unless you ignore the GC completely, which isn't even
 possible, practically speaking.
C doesn't have delete. But removing delete isn't the problem anyways. Here is the problem (which exists with delete present in the language): class C { private int[] buf; this() { buf = new int[5]; } ~this() {/* can't destroy buf here */} } void main() { auto c = new C; delete c; // doesn't destroy c.buf } What we need is a way to hook deterministic destruction vs. GC destruction. Only then, a SP language will you be. -Steve
I was under the impression you could overload new and delete per class/union/struct which gave you the ability to control how things were allocated.
Currently, but scheduled for deprecation (to be replaced by existing library solutions). But it's not good enough anyways. If I want to use the GC to allocate my buffer, I still must rely on the GC to destroy it, even if I destroy my class deterministically. Using an allocator won't fix that. -Steve
Jan 09 2012
prev sibling parent Sean Kelly <sean invisibleduck.org> writes:
Already possible via Runtime.collectHandler, though I'll admit it could be d=
one more elegantly.=20

Sent from my iPhone

On Jan 9, 2012, at 5:58 AM, "Steven Schveighoffer" <schveiguy yahoo.com> wro=
te:

 On Sun, 08 Jan 2012 18:28:54 -0500, Mehrdad <wfunction hotmail.com> wrote:=
=20
 7. Unstable language. They're currently considering doing things like rem=
oving "delete" as it's apparently deprecated (which will officially make it n= ot usable as an SP language).
    Looks 100% correct. Removing 'delete' /does/ make D unusable as an SP l=
anguage... unless you ignore the GC completely, which isn't even possible, p= ractically speaking.
=20
 C doesn't have delete.
=20
 But removing delete isn't the problem anyways.  Here is the problem (which=
exists with delete present in the language):
=20
 class C
 {
   private int[] buf;
   this() { buf =3D new int[5]; }
   ~this() {/* can't destroy buf here */}
 }
=20
 void main()
 {
   auto c =3D new C;
   delete c; // doesn't destroy c.buf
 }
=20
 What we need is a way to hook deterministic destruction vs. GC destruction=
. Only then, a SP language will you be.
=20
 -Steve
Jan 09 2012
prev sibling next sibling parent reply "Nick Sabalausky" <a a.a> writes:
"Andrei Alexandrescu" <SeeWebsiteForEmail erdani.org> wrote in message 
news:jeb5h6$1c76$1 digitalmars.com...
 Here's an interesting discussion that may reflect the perceptions and 
 misperceptions about D within the larger community.

 http://www.cplusplus.com/forum/lounge/58832/
Every time I log in and go to that page it tells me "Sign in or register to post" (yes, even with JS on), so I can't post, but somebody should mention that the custom allocator proves we do care about manual memory management and is also the reason for the delay in getting a collections lib. Also that Andrei, who they seem to know and respect, is actually in charge of Phobos and made Phobos's ranges, which have nicer syntax and semantics than STL iterators. And that D's multi-level, not a high-, low-, or mid-level one-tick pony, and that that's a good thing. And that it's not merely tying to be a C++ alternative, but is *also* trying to be incorporate higher level, like funtional purity and even better metaprogramming. And that Visual-D just had a new release that includes experimental code completion, and that Visual-D and DDT are both rapidly evolving... I was impressed though that none of them seemed to be buying any of the crap that "rapidcoder" was spreading.
Jan 07 2012
next sibling parent "F i L" <witte2008 gmail.com> writes:
Nick Sabalausky wrote:
 And that Visual-D just had a new release that includes 
 experimental code completion, and that Visual-D and DDT are 
 both rapidly evolving...
Awesome! Mono-D has code-completion and renaming features as well. There's an issue with MonoDevelop preventing tooltips, but it'll be fixed in the next release.
Jan 08 2012
prev sibling parent Caligo <iteronvexor gmail.com> writes:
On Sun, Jan 8, 2012 at 1:47 AM, Nick Sabalausky <a a.a> wrote:
 I was impressed though that none of them seemed to be buying any of the crap
that "rapidcoder" was spreading.
rapidcoder's brother has put up a video on YouTube: http://www.youtube.com/watch?v=3rI85jH3F4U&feature=related
Jan 08 2012
prev sibling next sibling parent "Dejan Lekic" <dejan.lekic gmail.com> writes:
On Sunday, 8 January 2012 at 04:19:52 UTC, Andrei Alexandrescu 
wrote:
 Here's an interesting discussion that may reflect the 
 perceptions and misperceptions about D within the larger 
 community.
They did not touch any new topic we did not talk about here on this NG, and on irc://irc.freenode.org/d . :)
Jan 09 2012
prev sibling parent reply "Marco Leise" <Marco.Leise gmx.de> writes:
"note that D removes probably the most important feature of C++ that makes  
C++ so powerful: templates and replaces it with something even weaker than  
Java generics"

I had to read that sentence over again. Did he say "D"? Oh well... talking  
about misperceptions.
Jan 09 2012
parent reply Walter Bright <newshound2 digitalmars.com> writes:
On 1/9/2012 7:31 AM, Marco Leise wrote:
 "note that D removes probably the most important feature of C++ that makes C++
 so powerful: templates and replaces it with something even weaker than Java
 generics"

 I had to read that sentence over again. Did he say "D"? Oh well... talking
about
 misperceptions.
Also, he talks about D debuting in 1999. At the end of 1999, I decided to start working on it. A working compiler didn't appear until 2003 or so, though that was very primitive compared with what we have now.
Jan 09 2012
parent reply "Jonathan M Davis" <jmdavisProg gmx.com> writes:
On Monday, January 09, 2012 10:15:37 Walter Bright wrote:
 On 1/9/2012 7:31 AM, Marco Leise wrote:
 "note that D removes probably the most important feature of C++ that
 makes C++ so powerful: templates and replaces it with something even
 weaker than Java generics"
 
 I had to read that sentence over again. Did he say "D"? Oh well...
 talking about misperceptions.
Also, he talks about D debuting in 1999. At the end of 1999, I decided to start working on it. A working compiler didn't appear until 2003 or so, though that was very primitive compared with what we have now.
I suspect that part of the problem is that Wikipedia lists D as appearing in 1999. And, of course, since D2 didn't start until 2007, saying that D has been around since 1999 easily gives the mistaken impression that we're doing a bad job, since D _still_ isn't complete and fully stable. - Jonathan M Davis
Jan 09 2012
next sibling parent reply Walter Bright <newshound2 digitalmars.com> writes:
On 1/9/2012 10:59 AM, Jonathan M Davis wrote:
 I suspect that part of the problem is that Wikipedia lists D as appearing in
 1999. And, of course, since D2 didn't start until 2007, saying that D has been
 around since 1999 easily gives the mistaken impression that we're doing a bad
 job, since D _still_ isn't complete and fully stable.
Please fix the wikipedia entry!
Jan 09 2012
next sibling parent reply "Jonathan M Davis" <jmdavisProg gmx.com> writes:
On Monday, January 09, 2012 11:37:50 Walter Bright wrote:
 On 1/9/2012 10:59 AM, Jonathan M Davis wrote:
 I suspect that part of the problem is that Wikipedia lists D as
 appearing in 1999. And, of course, since D2 didn't start until 2007,
 saying that D has been around since 1999 easily gives the mistaken
 impression that we're doing a bad job, since D _still_ isn't complete
 and fully stable.
Please fix the wikipedia entry!
With what? Make it say 2003 for D1 and 2007 for D2? - Jonathan M Davis
Jan 09 2012
next sibling parent reply Walter Bright <newshound2 digitalmars.com> writes:
On 1/9/2012 11:45 AM, Jonathan M Davis wrote:
 Please fix the wikipedia entry!
With what? Make it say 2003 for D1 and 2007 for D2?
Yes, but 2001 for D1.
Jan 09 2012
next sibling parent Iain Buclaw <ibuclaw ubuntu.com> writes:
On 9 January 2012 21:29, Walter Bright <newshound2 digitalmars.com> wrote:
 On 1/9/2012 11:45 AM, Jonathan M Davis wrote:
 Please fix the wikipedia entry!
With what? Make it say 2003 for D1 and 2007 for D2?
Yes, but 2001 for D1.
[citation needed] -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';
Jan 09 2012
prev sibling next sibling parent reply Sean Kelly <sean invisibleduck.org> writes:
On Jan 9, 2012, at 3:45 PM, Iain Buclaw wrote:

 On 9 January 2012 21:29, Walter Bright <newshound2 digitalmars.com> =
wrote:
 On 1/9/2012 11:45 AM, Jonathan M Davis wrote:
=20
 Please fix the wikipedia entry!
=20 =20 With what? Make it say 2003 for D1 and 2007 for D2?
=20 =20 Yes, but 2001 for D1.
=20 [citation needed]
How about the changelog? Or does it have to be an actual article. = Maybe Walter's written something at DDJ?=
Jan 09 2012
parent reply "Alexander Malakhov" <anm programmer.net> writes:
On Tuesday, 10 January 2012 at 00:04:31 UTC, Sean Kelly wrote:
 On Jan 9, 2012, at 3:45 PM, Iain Buclaw wrote:

 On 9 January 2012 21:29, Walter Bright 
 <newshound2 digitalmars.com> wrote:
 On 1/9/2012 11:45 AM, Jonathan M Davis wrote:
 
 Please fix the wikipedia entry!
With what? Make it say 2003 for D1 and 2007 for D2?
Yes, but 2001 for D1.
[citation needed]
How about the changelog? Or does it have to be an actual article. Maybe Walter's written something at DDJ?
D1 changelog starts with 1.001, 2007-01-23
Jan 09 2012
parent reply Mike Wey <mike-wey example.com> writes:
On 01/10/2012 08:47 AM, Alexander Malakhov wrote:
 On Tuesday, 10 January 2012 at 00:04:31 UTC, Sean Kelly wrote:
 On Jan 9, 2012, at 3:45 PM, Iain Buclaw wrote:

 On 9 January 2012 21:29, Walter Bright <newshound2 digitalmars.com>
 wrote:
 On 1/9/2012 11:45 AM, Jonathan M Davis wrote:
 Please fix the wikipedia entry!
With what? Make it say 2003 for D1 and 2007 for D2?
Yes, but 2001 for D1.
[citation needed]
How about the changelog? Or does it have to be an actual article. Maybe Walter's written something at DDJ?
D1 changelog starts with 1.001, 2007-01-23
D 0.00 was released on 9 December 2001. http://www.digitalmars.com/d/1.0/changelog1.html#new000 -- Mike Wey
Jan 10 2012
parent "Alexander Malakhov" <anm programmer.net> writes:
On Tuesday, 10 January 2012 at 18:58:41 UTC, Mike Wey wrote:
 On 01/10/2012 08:47 AM, Alexander Malakhov wrote:
 D1 changelog starts with 1.001, 2007-01-23
D 0.00 was released on 9 December 2001. http://www.digitalmars.com/d/1.0/changelog1.html#new000
Oh, missed that links. Thanks!
Jan 11 2012
prev sibling parent reply "Dejan Lekic" <dejan.lekic gmail.com> writes:
On Monday, 9 January 2012 at 21:29:27 UTC, Walter Bright wrote:
 On 1/9/2012 11:45 AM, Jonathan M Davis wrote:
 Please fix the wikipedia entry!
With what? Make it say 2003 for D1 and 2007 for D2?
Yes, but 2001 for D1.
Walter, I suppose you will have to clearly state that somewhere in D documentation (A "history" page perhaps?), so people can modify the wikipedia page and use above-mentioned page as a reference, otherwise the change is going to be ignored.
Jan 13 2012
parent Walter Bright <newshound2 digitalmars.com> writes:
On 1/13/2012 7:57 AM, Dejan Lekic wrote:
 On Monday, 9 January 2012 at 21:29:27 UTC, Walter Bright wrote:
 On 1/9/2012 11:45 AM, Jonathan M Davis wrote:
 Please fix the wikipedia entry!
With what? Make it say 2003 for D1 and 2007 for D2?
Yes, but 2001 for D1.
Walter, I suppose you will have to clearly state that somewhere in D documentation (A "history" page perhaps?), so people can modify the wikipedia page and use above-mentioned page as a reference, otherwise the change is going to be ignored.
http://www.digitalmars.com/d/1.0/changelog1.html#new000
Jan 13 2012
prev sibling parent reply "Alexander Malakhov" <anm programmer.net> writes:
On Monday, 9 January 2012 at 19:46:03 UTC, Jonathan M Davis wrote:
 On Monday, January 09, 2012 11:37:50 Walter Bright wrote:
 On 1/9/2012 10:59 AM, Jonathan M Davis wrote:
 I suspect that part of the problem is that Wikipedia lists D 
 as
 appearing in 1999. And, of course, since D2 didn't start 
 until 2007,
 saying that D has been around since 1999 easily gives the 
 mistaken
 impression that we're doing a bad job, since D _still_ isn't 
 complete
 and fully stable.
Please fix the wikipedia entry!
With what? Make it say 2003 for D1 and 2007 for D2? - Jonathan M Davis
Other languages have just 1 date. I think wikipedia's editors would resist if D will be different. If we want to do so, there should be convincing rationale in entry source. Like comment for file extensions (see "file_ext" here http://en.wikipedia.org/w/index.php?title=D_(programming_language)&action=edit )
Jan 10 2012
parent reply bearophile <bearophileHUGS lycos.com> writes:
Alexander Malakhov:

 Other languages have just 1 date. I think wikipedia's editors 
 would resist if D will be different.
A solution is to have two Wikipedia pages, una for D1 and one for D. Bye, bearophile
Jan 10 2012
parent reply "Alexander Malakhov" <anm programmer.net> writes:
On Tuesday, 10 January 2012 at 12:08:41 UTC, bearophile wrote:
 Alexander Malakhov:

 Other languages have just 1 date. I think wikipedia's editors 
 would resist if D will be different.
A solution is to have two Wikipedia pages, una for D1 and one for D. Bye, bearophile
I believe that would be much more difficult. Actually, I can't imagine how anyone could convince wikipedians to do this. And even if that will happen, D1 page most likely will be deleted later due to little visits count
Jan 11 2012
parent reply a <a a.com> writes:
Alexander Malakhov Wrote:

 And even if that will happen, D1 page most likely will be deleted 
 later due to little visits count
They are actually deleting pages due to low visit counts? This is just wrong.
Jan 11 2012
parent "Alexander Malakhov" <anm programmer.net> writes:
On Thursday, 12 January 2012 at 06:17:43 UTC, a wrote:
 Alexander Malakhov Wrote:

 And even if that will happen, D1 page most likely will be 
 deleted later due to little visits count
They are actually deleting pages due to low visit counts? This is just wrong.
Turns out I was wrong. I was thinking about Nemerle, which was delete in 2011 (but now is undeleted). Actually, it was deleted due to low notability, which could be the case for D1, btw. If interested, here is Nemerle story: 1. deletion http://en.wikipedia.org/wiki/Wikipedia:Articles_for_deletion/Nemerle 2. undeletion (click "show" at right) http://en.wikipedia.org/wiki/Wikipedia:Deletion_review/Log/2011_February_14 3. on reddit http://www.reddit.com/r/programming/comments/fkt7t/nemerle_factor_alice_ml_and_other_programming/ 4. on Hacker News http://news.ycombinator.com/item?id=2215168
Jan 12 2012
prev sibling next sibling parent "Steven Schveighoffer" <schveiguy yahoo.com> writes:
On Mon, 09 Jan 2012 14:37:50 -0500, Walter Bright  
<newshound2 digitalmars.com> wrote:

 On 1/9/2012 10:59 AM, Jonathan M Davis wrote:
 I suspect that part of the problem is that Wikipedia lists D as  
 appearing in
 1999. And, of course, since D2 didn't start until 2007, saying that D  
 has been
 around since 1999 easily gives the mistaken impression that we're doing  
 a bad
 job, since D _still_ isn't complete and fully stable.
Please fix the wikipedia entry!
According to the D changelog, the first version was released in 2001. -Steve
Jan 09 2012
prev sibling parent Brad Roberts <braddr puremagic.com> writes:
On Mon, 9 Jan 2012, Jonathan M Davis wrote:

 On Monday, January 09, 2012 11:37:50 Walter Bright wrote:
 On 1/9/2012 10:59 AM, Jonathan M Davis wrote:
 I suspect that part of the problem is that Wikipedia lists D as
 appearing in 1999. And, of course, since D2 didn't start until 2007,
 saying that D has been around since 1999 easily gives the mistaken
 impression that we're doing a bad job, since D _still_ isn't complete
 and fully stable.
Please fix the wikipedia entry!
With what? Make it say 2003 for D1 and 2007 for D2? - Jonathan M Davis
All of the above. More information there is better than trying to pick a tiny part of it.
Jan 09 2012
prev sibling parent reply Manfred Nowak <svv1999 hotmail.com> writes:
Jonathan M Davis wrote:
 easily gives the mistaken impression that we're doing a bad 
 job
... but only for easy people. In addition: a:without indication of paid time there isn't a "job"; b:without specifying the number of full-time service providers, there isn't a "we" -manfred
Jan 09 2012
parent reply "Jonathan M Davis" <jmdavisProg gmx.com> writes:
On Monday, January 09, 2012 21:29:01 Manfred Nowak wrote:
 Jonathan M Davis wrote:
 easily gives the mistaken impression that we're doing a bad
 job
... but only for easy people. In addition: a:without indication of paid time there isn't a "job"; b:without specifying the number of full-time service providers, there isn't a "we"
Really? None of Merriam Webster's definitions for job involve being paid (though obviously, you _can_ be paid to do a job - it just isn't required for it to be a job): http://www.merriam-webster.com/dictionary/job And since there is a group of us working on D, there is most definitely a we. I'm not quite sure what point you're trying to make here though. - Jonathan M Davis
Jan 09 2012
parent reply Manfred Nowak <svv1999 hotmail.com> writes:
Jonathan M Davis wrote:

 Really?
"A job is a regular activity performed in exchange for payment." http://en.wikipedia.org/wiki/Job, cited 01/10/2012 Your citation defines the religious figure.
 And since there is a group of us working on D, there is most
 definitely a we. 
What is a "group", what is "working" and if there is a "we", who belongs to the "others"?
 I'm not quite sure what point you're trying to make here though.
Limit yourself only by scales, which you yourself have chosen. -manfred
Jan 09 2012
parent reply "Jonathan M Davis" <jmdavisProg gmx.com> writes:
On Tuesday, January 10, 2012 01:55:23 Manfred Nowak wrote:
 Jonathan M Davis wrote:
 Really?
"A job is a regular activity performed in exchange for payment." http://en.wikipedia.org/wiki/Job, cited 01/10/2012 Your citation defines the religious figure.
http://www.merriam-webster.com/dictionary/job[1] For some reason, my browser didn't update the URL when clicking on the noun non-pronoun version of the word. There is _zero_ mention of compensation in the dictionary definition. Yes, one's employment is typically referred to as one's job (which is likely why Wikipedia says what it does), but it doesn't _have_ to refer to one's employment. Wikipedia is giving an overly narrow definition.
 And since there is a group of us working on D, there is most
 definitely a we.
What is a "group", what is "working" and if there is a "we", who belongs to the "others"?
 I'm not quite sure what point you're trying to make here though.
Limit yourself only by scales, which you yourself have chosen.
I still don't see why any of this is relevant to the discussion at hand. We're talking about the state of D and how it's perceived by those outside of the D community. It looks to me like you're just trying to be a troll. - Jonathan M Davis
Jan 09 2012
parent Manfred Nowak <svv1999 hotmail.com> writes:
Jonathan M Davis wrote:

 It looks to me like you're just trying to be a troll.
Nice.
 how it's perceived by those outside of the D community.
It looks to me like they are all trolls. -manfred
Jan 09 2012