digitalmars.D - C++
- David Medlock (20/20) Jun 29 2006 Its adherents rarely surprise me anymore.
- Sean Kelly (30/48) Jun 29 2006 Not for C++. For better or worse, a primary design goal of C++ was keep...
- Don Clugston (13/28) Jun 29 2006 On the "Comparison with other languages" page, it explicitly says that D...
- David Medlock (4/12) Jun 30 2006 I would agree with you, but look at the first sentence of my post(above
- Walter Bright (2/4) Jun 30 2006 Fixed (How did I miss that!)
- Walter Bright (3/8) Jun 30 2006 For a language with minimal features as a primary design goal, C++
- Jarrett Billingsley (4/5) Jun 29 2006 snk_kid is just another C++ fanboy. I'm dealing with him on gamedev.net...
- clayasaurus (2/11) Jun 29 2006 link?
- Mike Parker (3/14) Jun 30 2006 Shame on you, Clay, for not keeping up with my blog!
- BCS (16/36) Jun 30 2006 Interesting, in both places snk_kid keeps harping on his claim that "D
- Walter Bright (10/13) Jun 30 2006 I've seen similar claims, and what they are are excuses to not use D
- Sean Kelly (16/23) Jun 30 2006 In my experience, transliterating C++ to D allows for a lot of code to
- Deewiant (5/11) Jun 30 2006 I agree. Walter posted somewhere in comp.lang.c++.moderated (I think it ...
- Tom S (8/12) Jun 30 2006 And if it's going to be added post 1.0, there will be even more code
- Sean Kelly (7/16) Jun 30 2006 And there's nothing wrong with making it a warning for N releases, or
- Deewiant (9/20) Jun 30 2006 I found the post in question, BTW. Here's the Google Groups link:
- John Reimer (7/32) Jun 30 2006 Absolutely. we definitely need it. Walter, I hope you will reconsider.
- Ameer Armaly (5/42) Jun 30 2006 I agree. D is still in the "experimental" or "beta" phase, that is to sa...
- clayasaurus (3/45) Jun 30 2006 If it makes D better then add it. This goes for any feature. Of course
- Derek Parnell (7/19) Jun 30 2006 This would be a welcomed disruption as it makes D a much better product....
- Dave (4/30) Jul 01 2006 I agree.
- Juan Jose Comellas (11/39) Jul 01 2006 Well, I hope D gets const support somewhere in the near future, because ...
- Bruno Medeiros (11/36) Jul 03 2006 Good thread, I highly agree with what Andrei said in that segment. In
- Serg Kovrov (5/19) Jul 03 2006 Subj.
- Tony (12/27) Jun 30 2006 I too agree. Making const the default and adding a mutable keyword woul...
- BCS (16/22) Jun 30 2006 [...]
- Boris Wang (3/18) Jul 01 2006 Yes,before 1.0, any change is not too late, always.
- Lucas Goss (18/29) Jul 01 2006 I thought I've seen in this newsgroup a while back that Walter would
- Walter Bright (7/18) Jul 01 2006 Concatenation is quite different from addition:
- Chris Nicholson-Sauls (6/30) Jul 01 2006 Amen. Disambiguation is a Good Thing(tm).
- Walter Bright (2/6) Jul 02 2006 It'll have to be a 2.0 thing.
- Fredrik Olsson (28/37) Jul 07 2006 Perhaps not part of core language, put thought operator overloads. I
- Chris Nicholson-Sauls (36/83) Jul 08 2006 This gives me a thought. Currently we have the pseudo-member effect, wh...
- Lucas Goss (3/16) Jul 01 2006 Ah, thanks! That makes sense.
- kris (4/36) Jun 30 2006 As someone with a substantial body of D code, I'd be happy to retrofit
- Lars Ivar Igesund (8/45) Jun 30 2006 As someone without a substantial body of D code, I'd be happy to retrofi...
- clayasaurus (2/18) Jun 30 2006 aye, I've been busy lately :-P
Its adherents rarely surprise me anymore. Read my post on LTU and snk_kid's response: http://lambda-the-ultimate.org/node/1583#comment-19266 I am not trying to single him out, but the responses are pretty common in my (arguably anectdotal) experience. C++ is getting X in next version... Using boost/somelib we can do X... GC/Feature N will be great for C++ but for language Y its slow... Sigh. Its funny when people bring up libraries to make their points. Templates in C++ are slow to compile and bloated in my exposure to them. And even with all those libraries can you finally type: string s = "Hello" + " World"; After using D for a while now, i almost _despise_ C++. I think I would rather just use (python & C) instead of going back. Walter you have your work cut out for you. Like most things in IT, the human/political issues outweigh the technical ones. Sorry for the rant. -DavidM
Jun 29 2006
David Medlock wrote:Its adherents rarely surprise me anymore. Read my post on LTU and snk_kid's response: http://lambda-the-ultimate.org/node/1583#comment-19266 I am not trying to single him out, but the responses are pretty common in my (arguably anectdotal) experience. C++ is getting X in next version... Using boost/somelib we can do X... GC/Feature N will be great for C++ but for language Y its slow... Sigh. Its funny when people bring up libraries to make their points.Not for C++. For better or worse, a primary design goal of C++ was keep as much as possible out of the language definition by supporting user defined types that are indistinguishable from built-in types. So a valid comparison to C++ must necessarily include what can be done in library code. That said, I don't agree with many of snk_kid's observations. D *does* support implicit template instantiation, for example. The compiler implementation is just incomplete. As for concepts, I do think they would be useful in D but I think they're less necessary than in C++ because D has static if and static assert. Also, you can inherit from template type parameters as far as I know. As for boost::function--it's a horrible bit of code and is far more awkward to use than delegates (particularly anonymous delegates) but it works pretty well aside from all that. However, snk_kid doesn't address the idea that inner functions (ie. delegates) have access to local stack data, or that actually defining a new boost::function is nothing at all like defining a plain old function--it's obviously a class-based hack. Meta logic is much the same... it's possible in C++ but is far more awkward. And C++ obviously doesn't support strings or decimal numbers as template value parameters. Not to mention aliases. I think one problem is that some people just look at the spec to learn about the language, and the spec is quite sparse in places. I don't think it mentions implicit template instantiation, and mention of some other features is hard to find.Walter you have your work cut out for you. Like most things in IT, the human/political issues outweigh the technical ones.Always. But as long as D remains in development and isn't supplanted by some magic new language with all of D's features *and* a My Little Pony (tm) then it will have users. Particularly with GDC available for the non-Windows folks. Sean
Jun 29 2006
Sean Kelly wrote:David Medlock wrote:Its adherents rarely surprise me anymore. Read my post on LTU and snk_kid's response: http://lambda-the-ultimate.org/node/1583#comment-19266 I am not trying to single him out, but the responses are pretty common in my (arguably anectdotal) experience.I think one problem is that some people just look at the spec to learn about the language, and the spec is quite sparse in places. I don't think it mentions implicit template instantiation, and mention of some other features is hard to find.On the "Comparison with other languages" page, it explicitly says that D doesn't have implicit function template instantiation. AND it's been removed from the 'future directions' page. only because I saw it in the 'future directions' page that I gave the language a chance.True, but I'm going to stick up for snk_kid. Based on the spec, he's quite justified in thinking D doesn't have IFTI and probably never will; and the implications for library design are huge. He's justified in thinking that D template libraries will never be as powerful as C++. When you read the spec, you should get the impression that D templates are far more powerful than C++ templates.Walter you have your work cut out for you. Like most things in IT, the human/political issues outweigh the technical ones.
Jun 29 2006
Don Clugston wrote:Sean Kelly wrote:>True, but I'm going to stick up for snk_kid. Based on the spec, he's quite justified in thinking D doesn't have IFTI and probably never will; and the implications for library design are huge. He's justified in thinking that D template libraries will never be as powerful as C++. When you read the spec, you should get the impression that D templates are far more powerful than C++ templates.I would agree with you, but look at the first sentence of my post(above his).
Jun 30 2006
Don Clugston wrote:On the "Comparison with other languages" page, it explicitly says that D doesn't have implicit function template instantiation.Fixed (How did I miss that!)
Jun 30 2006
Sean Kelly wrote:For better or worse, a primary design goal of C++ was keep as much as possible out of the language definition by supporting user defined types that are indistinguishable from built-in types. So a valid comparison to C++ must necessarily include what can be done in library code.For a language with minimal features as a primary design goal, C++ turned out to be, by far, the most complex core language ever to implement!
Jun 30 2006
"David Medlock" <noone nowhere.com> wrote in message news:e819r5$h8i$1 digitaldaemon.com...Read my post on LTU and snk_kid's response:snk_kid is just another C++ fanboy. I'm dealing with him on gamedev.net too.
Jun 29 2006
Jarrett Billingsley wrote:"David Medlock" <noone nowhere.com> wrote in message news:e819r5$h8i$1 digitaldaemon.com...link?Read my post on LTU and snk_kid's response:snk_kid is just another C++ fanboy. I'm dealing with him on gamedev.net too.
Jun 29 2006
clayasaurus wrote:Jarrett Billingsley wrote:Shame on you, Clay, for not keeping up with my blog! http://www.gamedev.net/community/forums/topic.asp?topic_id=400729"David Medlock" <noone nowhere.com> wrote in message news:e819r5$h8i$1 digitaldaemon.com...link?Read my post on LTU and snk_kid's response:snk_kid is just another C++ fanboy. I'm dealing with him on gamedev.net too.
Jun 30 2006
Mike Parker wrote:clayasaurus wrote:Interesting, in both places snk_kid keeps harping on his claim that "D is a failed attempt to be truely better than C++ in *all aspects* which it isn't." Where did he get that impression???? I have never seen anyone else make the claim that D is trying to be better than anything in *all* respects. Walter doesn't claim this. And considering it is provable that it can't be done, It would be stupid for anyone to claim that. Also, in places he argues that D will not take over because it can't do something that C++ programmers do. This is only a problem if you try to wright C++ programs in D. The question shouldn't be: "Can the language generate this construct?", it should be: "How easy is it to solve this problem in this language?". D isn't a better C++. No programming language can be a better C++. D is trying to be a better *Programming Language*.Jarrett Billingsley wrote:Shame on you, Clay, for not keeping up with my blog! http://www.gamedev.net/community/forums/topic.asp?topic_id=400729"David Medlock" <noone nowhere.com> wrote in message news:e819r5$h8i$1 digitaldaemon.com...link?Read my post on LTU and snk_kid's response:snk_kid is just another C++ fanboy. I'm dealing with him on gamedev.net too.
Jun 30 2006
BCS wrote:Interesting, in both places snk_kid keeps harping on his claim that "D is a failed attempt to be truely better than C++ in *all aspects* which it isn't."I've seen similar claims, and what they are are excuses to not use D regardless. It doesn't matter to these people what D can do that is utterly impractical in C++. Another problem happens when people try to transliterate C++ code into D. That doesn't work very well - you have to rethink things a bit. Nevertheless, I still regard D as a better C++. Not in terms of being a true superset, but in terms of being a better solution to the same types of problems that C++ is targetted at. Note that C++ isn't a true superset of C, either, although it is billed as a "better C".
Jun 30 2006
Walter Bright wrote:Another problem happens when people try to transliterate C++ code into D. That doesn't work very well - you have to rethink things a bit.In my experience, transliterating C++ to D allows for a lot of code to simply be tossed out. It's issues like this that aren't obvious from simply reading a spec.Nevertheless, I still regard D as a better C++. Not in terms of being a true superset, but in terms of being a better solution to the same types of problems that C++ is targetted at. Note that C++ isn't a true superset of C, either, although it is billed as a "better C".I've yet to do the same level of work in D that I do in C++, but so far I'd have to agree. And I'm looking forward to some more ambitious projects once the framework is sorted out sufficiently. That said, I do think D's lack of any sort of const checking may be an issue for large projects (I haven't done this level of development in Java so I don't have a good non-C++ basis for comparison here). I know the issue has been beaten to death in the past, but perhaps we could do with a constructive discussion before 1.0 appears on the horizon? I've become convinced that the "default everything to const" method seems ideal, but this seems like something that should really be done before 1.0 if it's going to happen? Sean
Jun 30 2006
Sean Kelly wrote:I've become convinced that the "default everything to const" method seems ideal, but this seems like something that should really be done before 1.0 if it's going to happen? SeanI agree. Walter posted somewhere in comp.lang.c++.moderated (I think it was there) that he thinks he should have made D like this from the start, but that it's too late now. With that, I disagree. We're not at 1.0 yet: it's not too late to break even every single line of D code out there.
Jun 30 2006
Deewiant wrote:I agree. Walter posted somewhere in comp.lang.c++.moderated (I think it was there) that he thinks he should have made D like this from the start, but that it's too late now. With that, I disagree. We're not at 1.0 yet: it's not too late to break even every single line of D code out there.And if it's going to be added post 1.0, there will be even more code that will have to be modified to use all the new cool features that D 2.0 will provide :> Walter, if you think that it's too late because it might break a lot of code, why not let the community decide whether it would be very bad or not ? -- Tomasz Stachowiak /+ a.k.a. h3r3tic +/
Jun 30 2006
Deewiant wrote:Sean Kelly wrote:And there's nothing wrong with making it a warning for N releases, or allocating a new flag for experimental features, assuming it really is the correct approach. Also, with discussion, we may even be able to prepare for upcoming changes or put off creating code-level hacks to mimic the same behavior. SeanI've become convinced that the "default everything to const" method seems ideal, but this seems like something that should really be done before 1.0 if it's going to happen?I agree. Walter posted somewhere in comp.lang.c++.moderated (I think it was there) that he thinks he should have made D like this from the start, but that it's too late now. With that, I disagree. We're not at 1.0 yet: it's not too late to break even every single line of D code out there.
Jun 30 2006
Deewiant wrote:Sean Kelly wrote:I found the post in question, BTW. Here's the Google Groups link: http://groups.google.com/group/comp.lang.c++.moderated/tree/browse_frm/thread/d6695737a74e1853/18dc841928a6eee3?rnum=131&_done=%2Fgroup%2Fcomp.lang.c%2B%2B.moderated%2Fbrowse_frm%2Fthread%2Fd6695737a74e1853%2F840b0deea2987ee5%3Flnk%3Dst%26rnum%3D1%26#doc_3ff8dedacef55e17 In summary: Andrei Alexandrescu says "Why, then, didn't D make const the default? C++ had a good reason - C compatibility." Walter responds: "I should have. Too much water under the bridge for that now." In the same post Walter also acknowledges that "There has been some talk in the D newsgroups of doing that, but it has the potential to be extremely disruptive."I've become convinced that the "default everything to const" method seems ideal, but this seems like something that should really be done before 1.0 if it's going to happen? SeanI agree. Walter posted somewhere in comp.lang.c++.moderated (I think it was there) that he thinks he should have made D like this from the start, but that it's too late now. With that, I disagree. We're not at 1.0 yet: it's not too late to break even every single line of D code out there.
Jun 30 2006
Deewiant wrote:Deewiant wrote:Absolutely. we definitely need it. Walter, I hope you will reconsider. Many of us are more than willing to accept any of those potential disruptions. Success often comes only with risk. :) You've got this far with such an incredible language, why not take it all the way? -JJRSean Kelly wrote:I found the post in question, BTW. Here's the Google Groups link: http://groups.google.com/group/comp.lang.c++.moderated/tree/browse_frm/thread/d6695737a74e1853/18dc841928a6eee3?rnum=131&_done=%2Fgroup%2Fcomp.lang.c%2B%2B.moderated%2Fbrowse_frm%2Fthread%2Fd6695737a74e1853%2F840b0deea2987ee5%3Flnk%3Dst%26rnum%3D1%26#doc_3ff8dedacef55e17 In summary: Andrei Alexandrescu says "Why, then, didn't D make const the default? C++ had a good reason - C compatibility." Walter responds: "I should have. Too much water under the bridge for that now." In the same post Walter also acknowledges that "There has been some talk in the D newsgroups of doing that, but it has the potential to be extremely disruptive."I've become convinced that the "default everything to const" method seems ideal, but this seems like something that should really be done before 1.0 if it's going to happen? SeanI agree. Walter posted somewhere in comp.lang.c++.moderated (I think it was there) that he thinks he should have made D like this from the start, but that it's too late now. With that, I disagree. We're not at 1.0 yet: it's not too late to break even every single line of D code out there.
Jun 30 2006
"John Reimer" <terminal.node gmail.com> wrote in message news:e841ch$169g$1 digitaldaemon.com...Deewiant wrote:I agree. D is still in the "experimental" or "beta" phase, that is to say you shouldn't be surprised if a change breaks your code; I'm sure most if not all of us here know that, and if you don't by this time, well...Deewiant wrote:Absolutely. we definitely need it. Walter, I hope you will reconsider. Many of us are more than willing to accept any of those potential disruptions. Success often comes only with risk. :) You've got this far with such an incredible language, why not take it all the way?Sean Kelly wrote:I found the post in question, BTW. Here's the Google Groups link: http://groups.google.com/group/comp.lang.c++.moderated/tree/browse_frm/thread/d6695737a74e1853/18dc841928a6eee3?rnum=131&_done=%2Fgroup%2Fcomp.lang.c%2B%2B.moderated%2Fbrowse_frm%2Fthread%2Fd6695737a74e1853%2F840b0deea2987ee5%3Flnk%3Dst%26rnum%3D1%26#doc_3ff8dedacef55e17 In summary: Andrei Alexandrescu says "Why, then, didn't D make const the default? C++ had a good reason - C compatibility." Walter responds: "I should have. Too much water under the bridge for that now." In the same post Walter also acknowledges that "There has been some talk in the D newsgroups of doing that, but it has the potential to be extremely disruptive."I've become convinced that the "default everything to const" method seems ideal, but this seems like something that should really be done before 1.0 if it's going to happen? SeanI agree. Walter posted somewhere in comp.lang.c++.moderated (I think it was there) that he thinks he should have made D like this from the start, but that it's too late now. With that, I disagree. We're not at 1.0 yet: it's not too late to break even every single line of D code out there.-JJR
Jun 30 2006
John Reimer wrote:Deewiant wrote:If it makes D better then add it. This goes for any feature. Of course discuss disrupting features on the NG first.Deewiant wrote:Absolutely. we definitely need it. Walter, I hope you will reconsider. Many of us are more than willing to accept any of those potential disruptions. Success often comes only with risk. :) You've got this far with such an incredible language, why not take it all the way? -JJRSean Kelly wrote:I found the post in question, BTW. Here's the Google Groups link: oc_3ff8dedacef55e17 In summary: Andrei Alexandrescu says "Why, then, didn't D make const the default? C++ had a good reason - C compatibility." Walter responds: "I should have. Too much water under the bridge for that now." In the same post Walter also acknowledges that "There has been some talk in the D newsgroups of doing that, but it has the potential to be extremely disruptive."I've become convinced that the "default everything to const" method seems ideal, but this seems like something that should really be done before 1.0 if it's going to happen? SeanI agree. Walter posted somewhere in comp.lang.c++.moderated (I think it was there) that he thinks he should have made D like this from the start, but that it's too late now. With that, I disagree. We're not at 1.0 yet: it's not too late to break even every single line of D code out there.
Jun 30 2006
On Sat, 01 Jul 2006 05:47:51 +1000, Deewiant <deewiant.doesnotlike.spam gmail.com> wrote:Deewiant wrote:I found the post in question, BTW. Here's the Google Groups link: In summary: Andrei Alexandrescu says "Why, then, didn't D make const the default? C++ had a good reason - C compatibility." Walter responds: "I should have. Too much water under the bridge for that now." In the same post Walter also acknowledges that "There has been some talk in the D newsgroups of doing that, but it has the potential to be extremely disruptive."This would be a welcomed disruption as it makes D a much better product. I have no problems about retrofitting this sort of change in all my D code. -- Derek Parnell Melbourne, Australia
Jun 30 2006
Derek Parnell wrote:On Sat, 01 Jul 2006 05:47:51 +1000, Deewiant <deewiant.doesnotlike.spam gmail.com> wrote:I agree. People can always use the current version if they need to support code that this breaks.Deewiant wrote:I found the post in question, BTW. Here's the Google Groups link: In summary: Andrei Alexandrescu says "Why, then, didn't D make const the default? C++ had a good reason - C compatibility." Walter responds: "I should have. Too much water under the bridge for that now." In the same post Walter also acknowledges that "There has been some talk in the D newsgroups of doing that, but it has the potential to be extremely disruptive."This would be a welcomed disruption as it makes D a much better product. I have no problems about retrofitting this sort of change in all my D code.--Derek Parnell Melbourne, Australia
Jul 01 2006
Well, I hope D gets const support somewhere in the near future, because it is also needed to be able to pass parameters to threads efficiently (i.e. without duplicating everything). There needs to be a way to specify that a certain object is immutable when you pass it to a thread to avoid unnecessary locking. The lack of this feature is not much of a problem for small projects or when you're only dealing with your own code, but once D takes off (as I believe everybody here hopes it will) and we start using a lot of different D libraries it will become an essential feature. Deewiant wrote:Deewiant wrote:http://groups.google.com/group/comp.lang.c++.moderated/tree/browse_frm/thread/d6695737a74e1853/18dc841928a6eee3?rnum=131&_done=%2Fgroup%2Fcomp.lang.c%2B%2B.moderated%2Fbrowse_frm%2Fthread%2Fd6695737a74e1853%2F840b0deea2987ee5%3Flnk%3Dst%26rnum%3D1%26#doc_3ff8dedacef55e17Sean Kelly wrote:I found the post in question, BTW. Here's the Google Groups link:I've become convinced that the "default everything to const" method seems ideal, but this seems like something that should really be done before 1.0 if it's going to happen? SeanI agree. Walter posted somewhere in comp.lang.c++.moderated (I think it was there) that he thinks he should have made D like this from the start, but that it's too late now. With that, I disagree. We're not at 1.0 yet: it's not too late to break even every single line of D code out there.In summary: Andrei Alexandrescu says "Why, then, didn't D make const the default? C++ had a good reason - C compatibility." Walter responds: "I should have. Too much water under the bridge for that now." In the same post Walter also acknowledges that "There has been some talk in the D newsgroups of doing that, but it has the potential to be extremely disruptive."
Jul 01 2006
Deewiant wrote:Deewiant wrote:Good thread, I highly agree with what Andrei said in that segment. In summary, that a language supported read-only view of data is significantly beneficial. As for the backwards compatibility issue, I've said it before: D, as a language in development, should not be blocked by backwards compatibility issues in detriment of beneficial changes. Of course, such changes must be extensively thought about and discussed beforehand. -- Bruno Medeiros - CS/E student http://www.prowiki.org/wiki4d/wiki.cgi?BrunoMedeiros#DSean Kelly wrote:I found the post in question, BTW. Here's the Google Groups link: http://groups.google.com/group/comp.lang.c++.moderated/tree/browse_frm/thread/d6695737a74e1853/18dc841928a6eee3?rnum=131&_done=%2Fgroup%2Fcomp.lang.c%2B%2B.moderated%2Fbrowse_frm%2Fthread%2Fd6695737a74e1853%2F840b0deea2987ee5%3Flnk%3Dst%26rnum%3D1%26#doc_3ff8dedacef55e17 In summary: Andrei Alexandrescu says "Why, then, didn't D make const the default? C++ had a good reason - C compatibility." Walter responds: "I should have. Too much water under the bridge for that now." In the same post Walter also acknowledges that "There has been some talk in the D newsgroups of doing that, but it has the potential to be extremely disruptive."I've become convinced that the "default everything to const" method seems ideal, but this seems like something that should really be done before 1.0 if it's going to happen? SeanI agree. Walter posted somewhere in comp.lang.c++.moderated (I think it was there) that he thinks he should have made D like this from the start, but that it's too late now. With that, I disagree. We're not at 1.0 yet: it's not too late to break even every single line of D code out there.
Jul 03 2006
Deewiant wrote:I found the post in question, BTW. Here's the Google Groups link: http://groups.google.com/group/comp.lang.c++.moderated/tree/browse_frm/thread/d6695737a74e1853/18dc841928a6eee3?rnum=131&_done=%2Fgroup%2Fcomp.lang.c%2B%2B.moderated%2Fbrowse_frm%2Fthread%2Fd6695737a74e1853%2F840b0deea2987ee5%3Flnk%3Dst%26rnum%3D1%26#doc_3ff8dedacef55e17 In summary: Andrei Alexandrescu says "Why, then, didn't D make const the default? C++ had a good reason - C compatibility." Walter responds: "I should have. Too much water under the bridge for that now." In the same post Walter also acknowledges that "There has been some talk in the D newsgroups of doing that, but it has the potential to be extremely disruptive."Subj. ps. Sorry for flood, but i just can't help it =) -- serg.
Jul 03 2006
"Deewiant" <deewiant.doesnotlike.spam gmail.com> wrote in message news:e83rmr$vi5$1 digitaldaemon.com...Sean Kelly wrote:I too agree. Making const the default and adding a mutable keyword would be wonderful. This would more than address what seems to be one of the primary (and I think quite justified) criticisms of D by the C++ community. This might also assist a future compiler in determining what operations could be done in parallel. I assumed that the version numbering scheme (i.e. not yet at 1.0) was an indication that the language was still in development and might change in fairly fundamental ways. Tony Melbourne, AustraliaI've become convinced that the "default everything to const" method seems ideal, but this seems like something that should really be done before 1.0 if it's going to happen? SeanI agree. Walter posted somewhere in comp.lang.c++.moderated (I think it was there) that he thinks he should have made D like this from the start, but that it's too late now. With that, I disagree. We're not at 1.0 yet: it's not too late to break even every single line of D code out there.
Jun 30 2006
Tony wrote:I too agree. Making const the default and adding a mutable keyword would be wonderful. This would more than address what seems to be one of the primary (and I think quite justified) criticisms of D by the C++ community.[...] This would only apply to reference types I assume. So, when giving away a reference, would one have to grant mutability privilege any time the recipient doesn't ensure non-mutation? If this is the case, I would advocate the use of an operator for this, something with a syntax like the address of (&) operator, maybe the " ". void func(mute char[] arg) { foreach(inout a;arg) a='\0'; } ... char[] foo; func( foo); // valid func(foo); // error: argument 1 of "func" is mutable ...
Jun 30 2006
Yes,before 1.0, any change is not too late, always. "Deewiant" <deewiant.doesnotlike.spam gmail.com> ??????:e83rmr$vi5$1 digitaldaemon.com...Sean Kelly wrote:I've become convinced that the "default everything to const" method seems ideal, but this seems like something that should really be done before 1.0 if it's going to happen? SeanI agree. Walter posted somewhere in comp.lang.c++.moderated (I think it was there) that he thinks he should have made D like this from the start, but that it's too late now. With that, I disagree. We're not at 1.0 yet: it's not too late to break even every single line of D code out there.
Jul 01 2006
Deewiant wrote:Sean Kelly wrote:I thought I've seen in this newsgroup a while back that Walter would make changes to the language that would break previous versions, because he didn't want it to end up like c++ (ugly patches instead of fixing things correctly and breaking compatibility)? To me that is a big plus in a language, that the author is willing to break things for the good of the language. And D hasn't even hit version 1.0 yet, so I don't see a problem at all. Also I did sort of agree with snk_kid on one point... I don't understand why D uses "~" for adding words together instead of "+". It seems like all the other languages I use all use + for adding words. Adding makes sense for words... I added on to what he said. I added some words to his sentence. If you add these two phrases together... Is there any benefit to having a separate symbol for adding (ok, concatenating)? If not feel free to break the language here too. LucasI've become convinced that the "default everything to const" method seems ideal, but this seems like something that should really be done before 1.0 if it's going to happen? SeanI agree. Walter posted somewhere in comp.lang.c++.moderated (I think it was there) that he thinks he should have made D like this from the start, but that it's too late now. With that, I disagree. We're not at 1.0 yet: it's not too late to break even every single line of D code out there.
Jul 01 2006
Lucas Goss wrote:Also I did sort of agree with snk_kid on one point... I don't understand why D uses "~" for adding words together instead of "+". It seems like all the other languages I use all use + for adding words. Adding makes sense for words... I added on to what he said. I added some words to his sentence. If you add these two phrases together... Is there any benefit to having a separate symbol for adding (ok, concatenating)? If not feel free to break the language here too.Concatenation is quite different from addition: int[3] a = [1,2,3]; int[3] b = [4,5,6]; int[] c = a + b; // c[] = [5,7,9] int[] d = a ~ b; // d[] = [1,2,3,4,5,6] Two distinct operators are necessary.
Jul 01 2006
Walter Bright wrote:Lucas Goss wrote:Amen. Disambiguation is a Good Thing(tm). Except for "Array operations not implemented" as yet. Any idea when this much-coveted, much-anticipated feature will come to life? I don't mean to push, but I've dreamt of array-ops nearly since I first got involved with D back in 2003. -- Chris Nicholson-SaulsAlso I did sort of agree with snk_kid on one point... I don't understand why D uses "~" for adding words together instead of "+". It seems like all the other languages I use all use + for adding words. Adding makes sense for words... I added on to what he said. I added some words to his sentence. If you add these two phrases together... Is there any benefit to having a separate symbol for adding (ok, concatenating)? If not feel free to break the language here too.Concatenation is quite different from addition: int[3] a = [1,2,3]; int[3] b = [4,5,6]; int[] c = a + b; // c[] = [5,7,9] int[] d = a ~ b; // d[] = [1,2,3,4,5,6] Two distinct operators are necessary.
Jul 01 2006
Chris Nicholson-Sauls wrote:Except for "Array operations not implemented" as yet. Any idea when this much-coveted, much-anticipated feature will come to life? I don't mean to push, but I've dreamt of array-ops nearly since I first got involved with D back in 2003.It'll have to be a 2.0 thing.
Jul 02 2006
Walter Bright skrev:Chris Nicholson-Sauls wrote:Perhaps not part of core language, put thought operator overloads. I guess there are a million reasons as to why not have them, but if I could choose this would be a nice syntax for both introducing operator overloads and properties to existing types: type int[] { int[] opAdd(int[] a) { assert(this.length == a.length); int[] r; r.length = this.length; foreach (i, v; this) { r[i] = v + a[i]; } return r; } int sum() { int r = 0; foreach(v; this) { r += v; } return v; } } // Making these work; int[] a = [1, 2, 3]; int[] b = [4, 5, 6]; int[] c = a + b; // [5, 7, 9]; int d = c.sum(); // 15 // FredrikExcept for "Array operations not implemented" as yet. Any idea when this much-coveted, much-anticipated feature will come to life? I don't mean to push, but I've dreamt of array-ops nearly since I first got involved with D back in 2003.It'll have to be a 2.0 thing.
Jul 07 2006
Fredrik Olsson wrote:Walter Bright skrev:This gives me a thought. Currently we have the pseudo-member effect, which causes the following to be possible: Also, in D (theoretically at least) it seems all operators are rewritten as function calls. Such that the expression (a + b) becomes (a.opAdd(b)). So, perhaps we could do something like this: length" ); Just a crazy thought. -- Chris Nicholson-SaulsChris Nicholson-Sauls wrote:Perhaps not part of core language, put thought operator overloads. I guess there are a million reasons as to why not have them, but if I could choose this would be a nice syntax for both introducing operator overloads and properties to existing types: type int[] { int[] opAdd(int[] a) { assert(this.length == a.length); int[] r; r.length = this.length; foreach (i, v; this) { r[i] = v + a[i]; } return r; } int sum() { int r = 0; foreach(v; this) { r += v; } return v; } } // Making these work; int[] a = [1, 2, 3]; int[] b = [4, 5, 6]; int[] c = a + b; // [5, 7, 9]; int d = c.sum(); // 15 // FredrikExcept for "Array operations not implemented" as yet. Any idea when this much-coveted, much-anticipated feature will come to life? I don't mean to push, but I've dreamt of array-ops nearly since I first got involved with D back in 2003.It'll have to be a 2.0 thing.
Jul 08 2006
Walter Bright wrote:Lucas Goss wrote:Ah, thanks! That makes sense. LucasIs there any benefit to having a separate symbol for adding (ok, concatenating)? If not feel free to break the language here too.Concatenation is quite different from addition: int[3] a = [1,2,3]; int[3] b = [4,5,6]; int[] c = a + b; // c[] = [5,7,9] int[] d = a ~ b; // d[] = [1,2,3,4,5,6] Two distinct operators are necessary.
Jul 01 2006
Sean Kelly wrote:Walter Bright wrote:As someone with a substantial body of D code, I'd be happy to retrofit the whole darned thing to get const. I'd say "go for it" (as long as it supports returning an array as a const, without .dup being involved)Another problem happens when people try to transliterate C++ code into D. That doesn't work very well - you have to rethink things a bit.In my experience, transliterating C++ to D allows for a lot of code to simply be tossed out. It's issues like this that aren't obvious from simply reading a spec.Nevertheless, I still regard D as a better C++. Not in terms of being a true superset, but in terms of being a better solution to the same types of problems that C++ is targetted at. Note that C++ isn't a true superset of C, either, although it is billed as a "better C".I've yet to do the same level of work in D that I do in C++, but so far I'd have to agree. And I'm looking forward to some more ambitious projects once the framework is sorted out sufficiently. That said, I do think D's lack of any sort of const checking may be an issue for large projects (I haven't done this level of development in Java so I don't have a good non-C++ basis for comparison here). I know the issue has been beaten to death in the past, but perhaps we could do with a constructive discussion before 1.0 appears on the horizon? I've become convinced that the "default everything to const" method seems ideal, but this seems like something that should really be done before 1.0 if it's going to happen? Sean
Jun 30 2006
kris wrote:Sean Kelly wrote:As someone without a substantial body of D code, I'd be happy to retrofit other's code if necessary. In all other respects (on this particular matter), I just agree with Kris :) -- Lars Ivar Igesund blog at http://larsivi.net DSource & #D: larsiviWalter Bright wrote:As someone with a substantial body of D code, I'd be happy to retrofit the whole darned thing to get const. I'd say "go for it" (as long as it supports returning an array as a const, without .dup being involved)Another problem happens when people try to transliterate C++ code into D. That doesn't work very well - you have to rethink things a bit.In my experience, transliterating C++ to D allows for a lot of code to simply be tossed out. It's issues like this that aren't obvious from simply reading a spec.Nevertheless, I still regard D as a better C++. Not in terms of being a true superset, but in terms of being a better solution to the same types of problems that C++ is targetted at. Note that C++ isn't a true superset of C, either, although it is billed as a "better C".I've yet to do the same level of work in D that I do in C++, but so far I'd have to agree. And I'm looking forward to some more ambitious projects once the framework is sorted out sufficiently. That said, I do think D's lack of any sort of const checking may be an issue for large projects (I haven't done this level of development in Java so I don't have a good non-C++ basis for comparison here). I know the issue has been beaten to death in the past, but perhaps we could do with a constructive discussion before 1.0 appears on the horizon? I've become convinced that the "default everything to const" method seems ideal, but this seems like something that should really be done before 1.0 if it's going to happen? Sean
Jun 30 2006
Mike Parker wrote:clayasaurus wrote:aye, I've been busy lately :-PJarrett Billingsley wrote:Shame on you, Clay, for not keeping up with my blog! http://www.gamedev.net/community/forums/topic.asp?topic_id=400729"David Medlock" <noone nowhere.com> wrote in message news:e819r5$h8i$1 digitaldaemon.com...link?Read my post on LTU and snk_kid's response:snk_kid is just another C++ fanboy. I'm dealing with him on gamedev.net too.
Jun 30 2006