February 08, 2005 Re: Compiler support for writing bug free code | ||||
---|---|---|---|---|
| ||||
Posted in reply to Matthew | On Wed, 9 Feb 2005 06:47:39 +1100, Matthew <admin@stlsoft.dot.dot.dot.dot.org> wrote: >> First time reader, first time poster! >> >> I think some people are missing the point that code rots. A coder >> might add a return(0) to shut up the compiler and this might be a >> reasonable thing to do *at that point in time*. For instance, if it >> is simply impossible for the code to reach this point, then there is >> probably no acceptable real artifact that can be returned, so he might >> as well return 0. >> >> Later, if the code morphs around this function, the returned >> "artifact" might not come through as such. Zero might be an actual >> useful value and was just returned as an error because there was >> nothing more appropriate. The compiler can not guess that return(0) >> has become outdated. > > Agreed. Last time this was debated, someone suggested a "neverreturn" > keyword, or some such. That's less likely to rot, don't you think? I agree. Having some sort of way to tell the compiler what you mean is useful, in addition it tells the next guy who looks at the code your intent. It's not strictly necessary to have a keyword, an assert can do the job, but it has to be visible in the code to have the full effect. The problem (it seems this is what Walter is most worried about) is how to get people to use it.. a keyword might achieve that goal? Regan |
February 08, 2005 Re: Compiler support for writing bug free code | ||||
---|---|---|---|---|
| ||||
Posted in reply to Charles Patterson | I think you and I have very similar opinions on this matter.
I think most all of us here agree on what the best outcome is, what we seem to disagree over is what the compiler can best do to achieve it.
On Tue, 08 Feb 2005 13:07:21 -0500, Charles Patterson <charliep1@excite.com> wrote:
> First time reader, first time poster!
>
> I think some people are missing the point that code rots. A coder might add a return(0) to shut up the compiler and this might be a reasonable thing to do *at that point in time*. For instance, if it is simply impossible for the code to reach this point, then there is probably no acceptable real artifact that can be returned, so he might as well return 0.
>
> Later, if the code morphs around this function, the returned "artifact" might not come through as such. Zero might be an actual useful value and was just returned as an error because there was nothing more appropriate. The compiler can not guess that return(0) has become outdated.
>
> Restated, as code changes and assumptions change, leaving a potentially leaky return boldly states, "this will never happen and the compiler can add assertions all it wants". However, adding a return(0) loses that intention.
>
> So next argument is, "OK. So don't use a no-nag return but put an assertion in. This will accomplish the same thing without involving the compiler."...
>
> First, this will still not help until run-time.
>
> I think there is an elegance issue to work through as well. And I'll mention up front that I don't have any conclusions. (-: The following, Andrew code, is clean code.
>
> int foo(CollectionClass c, int y)
> {
> foreach (Value v; c)
> {
> if (v.x == y)
> return v.z;
> }
> }
>
> Aahhh. This reminds me of the simple code snippets you would find in an analysis of algorithms tome -- no extra if's used for checking on production results. Could real code truly be this clean?
>
> And yet the question will nag: is this programmer boldly stating that he will always return inside the loop and so he needs no terminal case? what if the programmer simply forgot his terminal exception case?
>
> I wouldn't be upset with forcing the coder to have his own assertion, (or throw one in for him if not?) but it does seem less elegant. However, code like the above rarely appears in production code. It's usually tons of tests against file opens, matrix reads, zero values, etc. The "inelegance" of peppering your own code with asserts isn't too bad.
>
> So I think it is 6 of one, half dozen of the other. Perusing a few of the messages on this newsgroup, it appears that this language is Walter's puppy, and when it comes to a tie, I'd let him have his way. (-: I'd hate to see this language suffer the same burnt-out, never-finished fate of so many other promising starts.
>
> Let me also say that I dont' think it is worth distorting a language too much in order to get as much compile time checking as possible. I think the reasonable limits are fairly well known (strong typing, etc.) I wouldn't over-use the argument that the compiler *could have* caught this.
>
> - Charlie
>
>
>
> Regan Heath wrote:
>> Disclaimer: Please correct me if I have miss-represented anyone, I appologise in advance for doing so, it was not my intent.
>> The following is my impression of the points/positions in this argument:
>> 1. Catching things at compile time is better than at runtime.
>> - all parties agree
>> 2. If it cannot be caught at compile time, then a hard failure at runtime is desired.
>> - all parties agree
>> 3. An error which causes the programmer to add code to 'shut the compiler up' causes hidden bugs
>> - Walter
>> Matthew?
>> 4. Programmers should take responsibilty for the code they add to 'shut the compiler up' by adding an assert/exception.
>> - Matthew
>> Walter?
>> 5. The language/compiler should where it can make it hard for the programmer to write bad code
>> - Walter
>> Matthew?
>> IMO it seems to be a disagreement about what happens in the "real world", IMO Matthew has an optimistic view, Walter a pessimistic view, eg.
>> Matthew: If it were a warning, programmers would notice immediately, consider the error, fix it or add an assert for protection, thus the error would be caught immediately or at runtime.
>> It seems to me that Matthews position is that warning the programmer at compile time about the situation gives them the opportunity to fix it at compile time, and I agree.
>> Walter: If it were a warning, programmers might add 'return 0;' causing the error to remain un-detected for longer.
>> It seems to me that Walters position is that if it were a warning there is potential for the programmer to do something stupid, and I agree.
>> So why can't we have both?
>> To explore this, an imaginary situation:
>> - Compiler detects problem.
>> - Adds code to handle it (hard-fail at runtime).
>> - Gives notification of the potential problem.
>> - Programmer either:
>> a. cannot see the problem, adds code to shut the compiler up. (causing removal of auto hard-fail code)
>> b. cannot see the problem, adds an assert (hard-fail) and code to shut the compiler up.
>> c. sees the problem, fixes it.
>> if a then the bug could remain undetected for longer.
>> if b then the bug is caught at runtime.
>> if c then the bug is avoided.
>> Without the notification (a) is impossible, so it seems Walters position removes the worst case scenario, BUT, without the notification (c) is impossible, so it seems Walters position removes the best case scenario also.
>> Of course for any programmer who would choose (b) over (a) 'all the time' Matthews position is clearly the superior one, however...
>> The real question is. In the real world are there more programmers who choose (a), as Walter imagines, or are there more choosing (b) as Matthew imagines?
>> Those that choose (a), do they do so out of ignorance, impatience, or stupidity? (or some other reason)
>> If stupidity, there is no cure for stupidity.
>> If impatience (as Walter has suggested) what do we do, can we do anything.
>> If ignorance, then how do we teach them? does auto-inserting the hard fail and giving no warning do so? would giving the warning do a better/worse job?
>> eg.
>> "There is the potential for undefined behaviour here, an exception has been added automatically please consider the situation and either: A. add your own exception or B. fix the bug."
>>
|
February 08, 2005 Re: -release switch | ||||
---|---|---|---|---|
| ||||
Posted in reply to Unknown W. Brackets | On Mon, 07 Feb 2005 22:56:53 -0800, Unknown W. Brackets <unknown@simplemachines.org> wrote:
<snip>
> But, if they report a bug (which hopefully should be unlikely anyway) and it gets fast response, that's something else. Confidence. They knew there would be bugs before, but now, NOW they know that if they ever find one, they'll have an easy message to report, and once you get it you'll fix it for them and get them the new version. They will love you.
This is the principle that the company I work for operates by. It, by and large it appears to work as you have described.
Regan
|
February 08, 2005 Re: Compiler support for writing bug free code | ||||
---|---|---|---|---|
| ||||
Posted in reply to Charles Patterson | On Tue, 08 Feb 2005 13:22:06 -0500, Charles Patterson <charliep1@excite.com> wrote: > Regan wrote: >> switch(a) { >> case 1: >> case 2: >> } >> a C compiler might say, "Warning: no default case". The D compiler is going to add a default case which throws an exception if triggered, now, can't it also issue a notification of what it has done eg. "Note: default case added". > > Not to pick on you Regan I don't feel you are. :) > , because this is the second note of yours I've replied to, but if it is possible to leave off a default case *on purpose* Sure, you leave it off because you don't believe it can 'ever' occur, I can understand that. The current D compiler behaviour is such that in this case the compiler inserts the 'assert' and if you're right, it never occurs, no harm done. But, if you're wrong you get an assert which clearly shows where the bug is. The alternative, if it did not add the assert, is for the program to continue having not done any of your switch statements, likely crashing shortly thereafter, in which case you'd be looking in the wrong place for the bug. > , then I hate it when I have done what I intended and the compiler is spitting out any warnings or errors. Maybe I'm just anal, but I wouldn't like to see the compiler say "5 notes; 0 errors" when I'm through. I bring this up because I bet I'm not alone. You're not alone. In fact, I agree with you. I too would find the "5 notes" annoying and would want to 'fix' them, I think it's part of our nature. This is exactly the behaviour Walter is describing which causes programmers to add 'dead code' in order to 'shut the compiler up'. So.. if it gave the 'note' you'd fix it, at best by adding a default case with an assert (which the compiler is already doing automatically), at worst by adding a default case with nothing in it. (there are other options, but I believe they fall into one of the two categories based on their outcome) I say at best and at worst because those two actions cause the two results I have described above, an assert at the bug, or a crash at some indeterminate stage later. I get the impression most people like the current behaviour WRT switch statements, it seems people dislike the same behaviour WRT to missing returns. I am confused as to why, to me they seem like the same thing.. tho there is a nagging in the back of my mind that I cannot put into words that says there is a difference somewhere. Regan |
February 08, 2005 Re: Compiler support for writing bug free code | ||||
---|---|---|---|---|
| ||||
Posted in reply to Regan Heath | >I think you and I have very similar opinions on this matter. > > I think most all of us here agree on what the best outcome is, what we seem to disagree over is what the compiler can best do to achieve it. Absolutely. That's the entire problem. Walter thinks that if the compiler tells the user there's a problem, the most likely outcome is a shut-up because programmers are unprofessional. This hamstrings all diligent engineers. Pessimism vs Optimism/Responsibility. As has been observed, there's no resolution of this difference, so we need to find a compromise. > On Tue, 08 Feb 2005 13:07:21 -0500, Charles Patterson <charliep1@excite.com> wrote: >> First time reader, first time poster! >> >> I think some people are missing the point that code rots. A coder might add a return(0) to shut up the compiler and this might be a reasonable thing to do *at that point in time*. For instance, if it is simply impossible for the code to reach this point, then there is probably no acceptable real artifact that can be returned, so he might as well return 0. >> >> Later, if the code morphs around this function, the returned "artifact" might not come through as such. Zero might be an actual useful value and was just returned as an error because there was nothing more appropriate. The compiler can not guess that return(0) has become outdated. >> >> Restated, as code changes and assumptions change, leaving a potentially leaky return boldly states, "this will never happen and the compiler can add assertions all it wants". However, adding a return(0) loses that intention. >> >> So next argument is, "OK. So don't use a no-nag return but put an assertion in. This will accomplish the same thing without involving the compiler."... >> >> First, this will still not help until run-time. >> >> I think there is an elegance issue to work through as well. And I'll mention up front that I don't have any conclusions. (-: The following, Andrew code, is clean code. >> >> int foo(CollectionClass c, int y) >> { >> foreach (Value v; c) >> { >> if (v.x == y) >> return v.z; >> } >> } >> >> Aahhh. This reminds me of the simple code snippets you would find in an analysis of algorithms tome -- no extra if's used for checking on production results. Could real code truly be this clean? >> >> And yet the question will nag: is this programmer boldly stating that he will always return inside the loop and so he needs no terminal case? what if the programmer simply forgot his terminal exception case? >> >> I wouldn't be upset with forcing the coder to have his own assertion, (or throw one in for him if not?) but it does seem less elegant. However, code like the above rarely appears in production code. It's usually tons of tests against file opens, matrix reads, zero values, etc. The "inelegance" of peppering your own code with asserts isn't too bad. >> >> So I think it is 6 of one, half dozen of the other. Perusing a few of the messages on this newsgroup, it appears that this language is Walter's puppy, and when it comes to a tie, I'd let him have his way. (-: I'd hate to see this language suffer the same burnt-out, never-finished fate of so many other promising starts. >> >> Let me also say that I dont' think it is worth distorting a language too much in order to get as much compile time checking as possible. I think the reasonable limits are fairly well known (strong typing, etc.) I wouldn't over-use the argument that the compiler *could have* caught this. >> >> - Charlie >> >> >> >> Regan Heath wrote: >>> Disclaimer: Please correct me if I have miss-represented anyone, I >>> appologise in advance for doing so, it was not my intent. >>> The following is my impression of the points/positions in this >>> argument: >>> 1. Catching things at compile time is better than at runtime. >>> - all parties agree >>> 2. If it cannot be caught at compile time, then a hard failure at >>> runtime is desired. >>> - all parties agree >>> 3. An error which causes the programmer to add code to 'shut the >>> compiler up' causes hidden bugs >>> - Walter >>> Matthew? >>> 4. Programmers should take responsibilty for the code they add to >>> 'shut the compiler up' by adding an assert/exception. >>> - Matthew >>> Walter? >>> 5. The language/compiler should where it can make it hard for the >>> programmer to write bad code >>> - Walter >>> Matthew? >>> IMO it seems to be a disagreement about what happens in the "real >>> world", IMO Matthew has an optimistic view, Walter a pessimistic >>> view, eg. >>> Matthew: If it were a warning, programmers would notice >>> immediately, consider the error, fix it or add an assert for >>> protection, thus the error would be caught immediately or at >>> runtime. >>> It seems to me that Matthews position is that warning the >>> programmer at compile time about the situation gives them the >>> opportunity to fix it at compile time, and I agree. >>> Walter: If it were a warning, programmers might add 'return 0;' >>> causing the error to remain un-detected for longer. >>> It seems to me that Walters position is that if it were a warning >>> there is potential for the programmer to do something stupid, and I >>> agree. >>> So why can't we have both? >>> To explore this, an imaginary situation: >>> - Compiler detects problem. >>> - Adds code to handle it (hard-fail at runtime). >>> - Gives notification of the potential problem. >>> - Programmer either: >>> a. cannot see the problem, adds code to shut the compiler up. >>> (causing removal of auto hard-fail code) >>> b. cannot see the problem, adds an assert (hard-fail) and code to >>> shut the compiler up. >>> c. sees the problem, fixes it. >>> if a then the bug could remain undetected for longer. >>> if b then the bug is caught at runtime. >>> if c then the bug is avoided. >>> Without the notification (a) is impossible, so it seems Walters >>> position removes the worst case scenario, BUT, without the >>> notification (c) is impossible, so it seems Walters position >>> removes the best case scenario also. >>> Of course for any programmer who would choose (b) over (a) 'all the >>> time' Matthews position is clearly the superior one, however... >>> The real question is. In the real world are there more programmers >>> who choose (a), as Walter imagines, or are there more choosing (b) >>> as Matthew imagines? >>> Those that choose (a), do they do so out of ignorance, impatience, >>> or stupidity? (or some other reason) >>> If stupidity, there is no cure for stupidity. >>> If impatience (as Walter has suggested) what do we do, can we do >>> anything. >>> If ignorance, then how do we teach them? does auto-inserting the >>> hard fail and giving no warning do so? would giving the warning do >>> a better/worse job? >>> eg. >>> "There is the potential for undefined behaviour here, an exception >>> has been added automatically please consider the situation and >>> either: A. add your own exception or B. fix the bug." >>> > |
February 08, 2005 Re: Compiler support for writing bug free code | ||||
---|---|---|---|---|
| ||||
Posted in reply to Matthew | On Tue, 8 Feb 2005 15:18:52 +1100, Matthew <admin@stlsoft.dot.dot.dot.dot.org> wrote: > "Regan Heath" <regan@netwin.co.nz> wrote in message > news:opsluof7fx23k2f5@ally... >> On Tue, 8 Feb 2005 09:48:10 +1100, Matthew >> <admin@stlsoft.dot.dot.dot.dot.org> wrote: >>>>>> Or, this post is simply an attack designed to make Walters >>>>>> position >>>>>> seem weaker, when in fact it supplies no logical evidence to do >>>>>> so. >>>>> >>>>> Oh come on! It goes to the motivation behind the missing return >>>>> value. >>>>> Plain as the nose on your face. >>>> >>>> I don't see how showing someones past mistake (a matter of opinion, >>>> which I happen to share), has any bearing on another action which >>>> may/may not be a mistake (another matter of opinion). >>>> >>>> Yes, Walters motivation may be as stated, however, clearly he >>>> believes >>>> he is being true to that motivation WRT to the missing return >>>> situation, therefore "at best" Kris has shown that length was/is a >>>> bad idea and needs to be changed, but it has little or no bearing >>>> on >>>> the missing return situation. >>> >>> Well put. I just don't agree. >> >> Sorry, don't agree with what in particular? >> - Walter believes it's true to his motivation. >> - The behaviour is true to Walters motivation. >> - This argument has no bearing on the other. >> >>>>>> In other words I can't see how this post has any bearing on the >>>>>> argument at hand. At best it's a strawman: >>>>>> http://www.datanation.com/fallacies/straw.htm >>>>> >>>>> Yawn! Keep trotting 'em out. They must be important and apposite, >>>>> if >>>>> there's a link you can reference. >>> >>> Marvellous stuff. Keep going. I'm sure you've got one for every >>> occasion, and it's ripping good sport. >> >> By defintion I have one for every instance in which someone appears to >> _me_ to be illogical. >> (I accept the posibility that I could be wrong and welcome a rebuttal) >> >>>> 1. You have chosen to attack the method in which I have presented >>>> my >>>> argument, instead of the actual argument itself: >>> >>> Well, it appears that you're more adept at quoting other's wisdoms, >>> than >>> acquiring your own. >> >> Now you're attacking me: >> http://www.datanation.com/fallacies/attack.htm >> >>> Specifically, I _did_ attack the argument, and the >>> proof of that is that you responded to my point. Doh! >> >> You attacked _both_ the argument _and_ the method in which it was >> proposed. >> The first is fine, the seccond is illogical. >> >>> Let's see what gnomic little nugget you're going to profer next ... >> >> The reason I profer these links is simple. In my experience a skillful >> writer/speaker can sway an audience to believe/disbelieve just about >> anything, they can do it without providing any logical or rational >> reasoning. >> >> These links helped _me_ understand what they were doing and why it was >> illogical, I hope to enlighten as many people as I can, so that we can >> all get on with having logical, rational debates with good sound >> reasoning. >> >> Now, I'm not saying either you or Kris _are_ illogical and/or >> irrational at all, you both exhibit very good logical and rational >> reasoning, however in this particular case I think the argument is >> illogical and I'm trying to explain why to the best of my ability. >> >> My intention is not to attack the person at all (for that would be >> illogical), however for some reason you seem to have taken it as an >> attack against the person, and attacked back in that fashion. >> >> I may be wrong about this argument being illogical. If you believe so >> please make an attempt to refute my argument in the same manner in >> which it was proferred, with logic. > > Very well, put. What you either fail to recognise, or may recognise all > too well, is that by contextualising both your own arguments and those > of others in logic terms (I'd say logical terms, but that'd be > confusing, illogical as that may be), you are attempting to coerce just > as surely as those whom you (claim to) refute. Please explain, I don't understand. > Indeed, examining your posts from a psychological perspective reveals > all manner of interesting little tactics. For example, "please make an > attempt to refute my argument in the same manner in which it was > preferred, with logic". This not only attempts to (subconsciously) > persuade the recipient (me) _and_ others to accept that my/Kris' > arguments thus far are devoid of logic I see what you mean, and I agree, that sentence was ill considered. What I meant by it was that I believed some of the arguments presented were illogical, in particular those that I indicated were and why. > , it also inclines us all to treat > your posts as logical because you explicitly and overtly put in your > impressive links. The links merely serve to better explain the concepts I am trying to explain. I can see your point, some people view links as 'authorative' and posting links therefore has an effect. What can I say, I wish it were not so. It all gets a bit circular, by reading these links I've learnt to spot things like this, but I had to follow the link to do so. > Furthermore, it attempts to control the debate - in > your favour no doubt - by prescribing its form. You seem to be assuming malicious intent on my part? I realise not everything can be expressed logically, but it appears to me that this can, and should be. > I'm neither impressed with your tactics (though I recognise that they > may well be effective in many of your online relationships), nor am I > inclined to comply with your attempts to frame the debates according to > your own terms. Saying I have 'tactics' implies that I am trying to beat you in some way. My intent is for us to find and share common ground not war. Regan |
February 08, 2005 Re: Compiler support for writing bug free code | ||||
---|---|---|---|---|
| ||||
Posted in reply to Matthew | On Wed, 9 Feb 2005 06:42:44 +1100, Matthew <admin@stlsoft.dot.dot.dot.dot.org> wrote: > "Ben Hinkle" <Ben_member@pathlink.com> wrote in message > news:cuaddf$1tqk$1@digitaldaemon.com... >> In article <cu9eiv$26pa$1@digitaldaemon.com>, Matthew says... >>> >>> >>> "Regan Heath" <regan@netwin.co.nz> wrote in message >>> news:opsluof7fx23k2f5@ally... >>>> On Tue, 8 Feb 2005 09:48:10 +1100, Matthew >>>> <admin@stlsoft.dot.dot.dot.dot.org> wrote: >>>>>>>> Or, this post is simply an attack designed to make Walters >>>>>>>> position >>>>>>>> seem weaker, when in fact it supplies no logical evidence to do >>>>>>>> so. >>>>>>> >>>>>>> Oh come on! It goes to the motivation behind the missing return >>>>>>> value. >>>>>>> Plain as the nose on your face. >>>>>> >>>>>> I don't see how showing someones past mistake (a matter of >>>>>> opinion, >>>>>> which I happen to share), has any bearing on another action which >>>>>> may/may not be a mistake (another matter of opinion). >>>>>> >>>>>> Yes, Walters motivation may be as stated, however, clearly he >>>>>> believes >>>>>> he is being true to that motivation WRT to the missing return >>>>>> situation, therefore "at best" Kris has shown that length was/is >>>>>> a >>>>>> bad idea and needs to be changed, but it has little or no bearing >>>>>> on >>>>>> the missing return situation. >>>>> >>>>> Well put. I just don't agree. >>>> >>>> Sorry, don't agree with what in particular? >>>> - Walter believes it's true to his motivation. >>>> - The behaviour is true to Walters motivation. >>>> - This argument has no bearing on the other. >>>> >>>>>>>> In other words I can't see how this post has any bearing on the >>>>>>>> argument at hand. At best it's a strawman: >>>>>>>> http://www.datanation.com/fallacies/straw.htm >>>>>>> >>>>>>> Yawn! Keep trotting 'em out. They must be important and apposite, >>>>>>> if >>>>>>> there's a link you can reference. >>>>> >>>>> Marvellous stuff. Keep going. I'm sure you've got one for every >>>>> occasion, and it's ripping good sport. >>>> >>>> By defintion I have one for every instance in which someone appears >>>> to >>>> _me_ to be illogical. >>>> (I accept the posibility that I could be wrong and welcome a >>>> rebuttal) >>>> >>>>>> 1. You have chosen to attack the method in which I have presented >>>>>> my >>>>>> argument, instead of the actual argument itself: >>>>> >>>>> Well, it appears that you're more adept at quoting other's wisdoms, >>>>> than >>>>> acquiring your own. >>>> >>>> Now you're attacking me: >>>> http://www.datanation.com/fallacies/attack.htm >>>> >>>>> Specifically, I _did_ attack the argument, and the >>>>> proof of that is that you responded to my point. Doh! >>>> >>>> You attacked _both_ the argument _and_ the method in which it was >>>> proposed. >>>> The first is fine, the seccond is illogical. >>>> >>>>> Let's see what gnomic little nugget you're going to profer next ... >>>> >>>> The reason I profer these links is simple. In my experience a >>>> skillful >>>> writer/speaker can sway an audience to believe/disbelieve just about >>>> anything, they can do it without providing any logical or rational >>>> reasoning. >>>> >>>> These links helped _me_ understand what they were doing and why it >>>> was >>>> illogical, I hope to enlighten as many people as I can, so that we >>>> can >>>> all get on with having logical, rational debates with good sound >>>> reasoning. >>>> >>>> Now, I'm not saying either you or Kris _are_ illogical and/or >>>> irrational at all, you both exhibit very good logical and rational >>>> reasoning, however in this particular case I think the argument is >>>> illogical and I'm trying to explain why to the best of my ability. >>>> >>>> My intention is not to attack the person at all (for that would be >>>> illogical), however for some reason you seem to have taken it as an >>>> attack against the person, and attacked back in that fashion. >>>> >>>> I may be wrong about this argument being illogical. If you believe >>>> so >>>> please make an attempt to refute my argument in the same manner in >>>> which it was proferred, with logic. >>> >>> Very well, put. What you either fail to recognise, or may recognise >>> all >>> too well, is that by contextualising both your own arguments and those >>> of others in logic terms (I'd say logical terms, but that'd be >>> confusing, illogical as that may be), you are attempting to coerce >>> just >>> as surely as those whom you (claim to) refute. >>> >>> Indeed, examining your posts from a psychological perspective reveals >>> all manner of interesting little tactics. For example, "please make an >>> attempt to refute my argument in the same manner in which it was >>> preferred, with logic". This not only attempts to (subconsciously) >>> persuade the recipient (me) _and_ others to accept that my/Kris' >>> arguments thus far are devoid of logic, it also inclines us all to >>> treat >>> your posts as logical because you explicitly and overtly put in your >>> impressive links. Furthermore, it attempts to control the debate - in >>> your favour no doubt - by prescribing its form. >>> >>> I'm neither impressed with your tactics (though I recognise that they >>> may well be effective in many of your online relationships), nor am I >>> inclined to comply with your attempts to frame the debates according >>> to >>> your own terms. >> >> Jeepers, guys. Chill out. I'm half-way not believing that Matthew >> posted that >> since it doesn't really sound like him. This "debate" has gotten too >> polarized >> IMO. Everyone put the knives down and back away... :-P > > Agreed. Bad day behaviour. I guess I just don't like being told what to > do, or how to think. > > Sorry all round. Matthew, I too am sorry. My intention wasn't to tell you what to do or how to do it, but rather to share an ideal to which I prescribe. I have replied to your last post, probably because I have to have the last word. :) I would be happy if you felt like reading and replying, thought I'll understand if you simply want to leave the horse where it lies, so to speak. To re-iterate I have the greatest respect for both you and Kris (and many other people here), at the same time I have strong opinions of my own and will always share them. I realise that I can come across aggressively, I fear it's a flaw of what I hope is a passionate nature. Regan |
February 08, 2005 Re: Compiler support for writing bug free code | ||||
---|---|---|---|---|
| ||||
Posted in reply to Regan Heath |
"Regan Heath" <regan@netwin.co.nz> wrote in message news:opslwiflq723k2f5@ally...
> On Wed, 9 Feb 2005 06:42:44 +1100, Matthew <admin@stlsoft.dot.dot.dot.dot.org> wrote:
>> "Ben Hinkle" <Ben_member@pathlink.com> wrote in message news:cuaddf$1tqk$1@digitaldaemon.com...
>>> In article <cu9eiv$26pa$1@digitaldaemon.com>, Matthew says...
>>>>
>>>>
>>>> "Regan Heath" <regan@netwin.co.nz> wrote in message news:opsluof7fx23k2f5@ally...
>>>>> On Tue, 8 Feb 2005 09:48:10 +1100, Matthew <admin@stlsoft.dot.dot.dot.dot.org> wrote:
>>>>>>>>> Or, this post is simply an attack designed to make Walters
>>>>>>>>> position
>>>>>>>>> seem weaker, when in fact it supplies no logical evidence to
>>>>>>>>> do
>>>>>>>>> so.
>>>>>>>>
>>>>>>>> Oh come on! It goes to the motivation behind the missing return
>>>>>>>> value.
>>>>>>>> Plain as the nose on your face.
>>>>>>>
>>>>>>> I don't see how showing someones past mistake (a matter of
>>>>>>> opinion,
>>>>>>> which I happen to share), has any bearing on another action
>>>>>>> which
>>>>>>> may/may not be a mistake (another matter of opinion).
>>>>>>>
>>>>>>> Yes, Walters motivation may be as stated, however, clearly he
>>>>>>> believes
>>>>>>> he is being true to that motivation WRT to the missing return
>>>>>>> situation, therefore "at best" Kris has shown that length
>>>>>>> was/is
>>>>>>> a
>>>>>>> bad idea and needs to be changed, but it has little or no
>>>>>>> bearing
>>>>>>> on
>>>>>>> the missing return situation.
>>>>>>
>>>>>> Well put. I just don't agree.
>>>>>
>>>>> Sorry, don't agree with what in particular?
>>>>> - Walter believes it's true to his motivation.
>>>>> - The behaviour is true to Walters motivation.
>>>>> - This argument has no bearing on the other.
>>>>>
>>>>>>>>> In other words I can't see how this post has any bearing on
>>>>>>>>> the
>>>>>>>>> argument at hand. At best it's a strawman:
>>>>>>>>> http://www.datanation.com/fallacies/straw.htm
>>>>>>>>
>>>>>>>> Yawn! Keep trotting 'em out. They must be important and
>>>>>>>> apposite,
>>>>>>>> if
>>>>>>>> there's a link you can reference.
>>>>>>
>>>>>> Marvellous stuff. Keep going. I'm sure you've got one for every occasion, and it's ripping good sport.
>>>>>
>>>>> By defintion I have one for every instance in which someone
>>>>> appears
>>>>> to
>>>>> _me_ to be illogical.
>>>>> (I accept the posibility that I could be wrong and welcome a
>>>>> rebuttal)
>>>>>
>>>>>>> 1. You have chosen to attack the method in which I have
>>>>>>> presented
>>>>>>> my
>>>>>>> argument, instead of the actual argument itself:
>>>>>>
>>>>>> Well, it appears that you're more adept at quoting other's
>>>>>> wisdoms,
>>>>>> than
>>>>>> acquiring your own.
>>>>>
>>>>> Now you're attacking me: http://www.datanation.com/fallacies/attack.htm
>>>>>
>>>>>> Specifically, I _did_ attack the argument, and the
>>>>>> proof of that is that you responded to my point. Doh!
>>>>>
>>>>> You attacked _both_ the argument _and_ the method in which it was
>>>>> proposed.
>>>>> The first is fine, the seccond is illogical.
>>>>>
>>>>>> Let's see what gnomic little nugget you're going to profer next ...
>>>>>
>>>>> The reason I profer these links is simple. In my experience a
>>>>> skillful
>>>>> writer/speaker can sway an audience to believe/disbelieve just
>>>>> about
>>>>> anything, they can do it without providing any logical or rational
>>>>> reasoning.
>>>>>
>>>>> These links helped _me_ understand what they were doing and why it
>>>>> was
>>>>> illogical, I hope to enlighten as many people as I can, so that we
>>>>> can
>>>>> all get on with having logical, rational debates with good sound
>>>>> reasoning.
>>>>>
>>>>> Now, I'm not saying either you or Kris _are_ illogical and/or
>>>>> irrational at all, you both exhibit very good logical and
>>>>> rational
>>>>> reasoning, however in this particular case I think the argument
>>>>> is
>>>>> illogical and I'm trying to explain why to the best of my
>>>>> ability.
>>>>>
>>>>> My intention is not to attack the person at all (for that would be
>>>>> illogical), however for some reason you seem to have taken it as
>>>>> an
>>>>> attack against the person, and attacked back in that fashion.
>>>>>
>>>>> I may be wrong about this argument being illogical. If you believe
>>>>> so
>>>>> please make an attempt to refute my argument in the same manner in
>>>>> which it was proferred, with logic.
>>>>
>>>> Very well, put. What you either fail to recognise, or may recognise
>>>> all
>>>> too well, is that by contextualising both your own arguments and
>>>> those
>>>> of others in logic terms (I'd say logical terms, but that'd be
>>>> confusing, illogical as that may be), you are attempting to coerce
>>>> just
>>>> as surely as those whom you (claim to) refute.
>>>>
>>>> Indeed, examining your posts from a psychological perspective
>>>> reveals
>>>> all manner of interesting little tactics. For example, "please make
>>>> an
>>>> attempt to refute my argument in the same manner in which it was
>>>> preferred, with logic". This not only attempts to (subconsciously)
>>>> persuade the recipient (me) _and_ others to accept that my/Kris'
>>>> arguments thus far are devoid of logic, it also inclines us all to
>>>> treat
>>>> your posts as logical because you explicitly and overtly put in
>>>> your
>>>> impressive links. Furthermore, it attempts to control the debate -
>>>> in
>>>> your favour no doubt - by prescribing its form.
>>>>
>>>> I'm neither impressed with your tactics (though I recognise that
>>>> they
>>>> may well be effective in many of your online relationships), nor am
>>>> I
>>>> inclined to comply with your attempts to frame the debates
>>>> according
>>>> to
>>>> your own terms.
>>>
>>> Jeepers, guys. Chill out. I'm half-way not believing that Matthew
>>> posted that
>>> since it doesn't really sound like him. This "debate" has gotten too
>>> polarized
>>> IMO. Everyone put the knives down and back away... :-P
>>
>> Agreed. Bad day behaviour. I guess I just don't like being told what
>> to
>> do, or how to think.
>>
>> Sorry all round.
>
> Matthew, I too am sorry. My intention wasn't to tell you what to do or how to do it, but rather to share an ideal to which I prescribe.
>
> I have replied to your last post, probably because I have to have the last word. :)
>
> I would be happy if you felt like reading and replying, thought I'll understand if you simply want to leave the horse where it lies, so to speak.
>
> To re-iterate I have the greatest respect for both you and Kris (and many other people here), at the same time I have strong opinions of my own and will always share them. I realise that I can come across aggressively, I fear it's a flaw of what I hope is a passionate nature.
Regan, I am, like everyone else, flawed in myriad ways. One of 'em is I don't like being told what to do. Add that to a few frustrating days in my work life, and you get overreaction, rudeness, patronisation and general bad form.
I think the way you carry on with the logic is irritating, but (i) I overreacted, and (ii) I know full well that I can be, and often am, at least as irritating, and probably in several different ways.
'nuff said?
Cheers
The Huffy Nerfal .....
|
February 08, 2005 Re: Compiler support for writing bug free code | ||||
---|---|---|---|---|
| ||||
Posted in reply to Matthew | On Wed, 9 Feb 2005 09:25:50 +1100, Matthew wrote: >>I think you and I have very similar opinions on this matter. >> >> I think most all of us here agree on what the best outcome is, what we seem to disagree over is what the compiler can best do to achieve it. > > Absolutely. That's the entire problem. Walter thinks that if the compiler tells the user there's a problem, the most likely outcome is a shut-up because programmers are unprofessional. This hamstrings all diligent engineers. Pessimism vs Optimism/Responsibility. As has been observed, there's no resolution of this difference, so we need to find a compromise. > The best compromise I've heard of so far is to have the '-v' (verbose) DMD switch to tell me (a hopefully responsible coder) where DMD has inserted the assert(0) code. Most people do not use -v in normal compilations, so only anal coders, such as myself, could use it to find out where I could improve my poor coding practices. [snipped stuff that is not relevant to the above comment] -- Derek Melbourne, Australia 9/02/2005 10:11:31 AM |
February 08, 2005 Re: Compiler support for writing bug free code | ||||
---|---|---|---|---|
| ||||
Posted in reply to Matthew | On Wed, 9 Feb 2005 10:07:19 +1100, Matthew <admin@stlsoft.dot.dot.dot.dot.org> wrote: > "Regan Heath" <regan@netwin.co.nz> wrote in message > news:opslwiflq723k2f5@ally... >> On Wed, 9 Feb 2005 06:42:44 +1100, Matthew >> <admin@stlsoft.dot.dot.dot.dot.org> wrote: >>> "Ben Hinkle" <Ben_member@pathlink.com> wrote in message >>> news:cuaddf$1tqk$1@digitaldaemon.com... >>>> In article <cu9eiv$26pa$1@digitaldaemon.com>, Matthew says... >>>>> >>>>> >>>>> "Regan Heath" <regan@netwin.co.nz> wrote in message >>>>> news:opsluof7fx23k2f5@ally... >>>>>> On Tue, 8 Feb 2005 09:48:10 +1100, Matthew >>>>>> <admin@stlsoft.dot.dot.dot.dot.org> wrote: >>>>>>>>>> Or, this post is simply an attack designed to make Walters >>>>>>>>>> position >>>>>>>>>> seem weaker, when in fact it supplies no logical evidence to >>>>>>>>>> do >>>>>>>>>> so. >>>>>>>>> >>>>>>>>> Oh come on! It goes to the motivation behind the missing return >>>>>>>>> value. >>>>>>>>> Plain as the nose on your face. >>>>>>>> >>>>>>>> I don't see how showing someones past mistake (a matter of >>>>>>>> opinion, >>>>>>>> which I happen to share), has any bearing on another action >>>>>>>> which >>>>>>>> may/may not be a mistake (another matter of opinion). >>>>>>>> >>>>>>>> Yes, Walters motivation may be as stated, however, clearly he >>>>>>>> believes >>>>>>>> he is being true to that motivation WRT to the missing return >>>>>>>> situation, therefore "at best" Kris has shown that length >>>>>>>> was/is >>>>>>>> a >>>>>>>> bad idea and needs to be changed, but it has little or no >>>>>>>> bearing >>>>>>>> on >>>>>>>> the missing return situation. >>>>>>> >>>>>>> Well put. I just don't agree. >>>>>> >>>>>> Sorry, don't agree with what in particular? >>>>>> - Walter believes it's true to his motivation. >>>>>> - The behaviour is true to Walters motivation. >>>>>> - This argument has no bearing on the other. >>>>>> >>>>>>>>>> In other words I can't see how this post has any bearing on >>>>>>>>>> the >>>>>>>>>> argument at hand. At best it's a strawman: >>>>>>>>>> http://www.datanation.com/fallacies/straw.htm >>>>>>>>> >>>>>>>>> Yawn! Keep trotting 'em out. They must be important and >>>>>>>>> apposite, >>>>>>>>> if >>>>>>>>> there's a link you can reference. >>>>>>> >>>>>>> Marvellous stuff. Keep going. I'm sure you've got one for every >>>>>>> occasion, and it's ripping good sport. >>>>>> >>>>>> By defintion I have one for every instance in which someone >>>>>> appears >>>>>> to >>>>>> _me_ to be illogical. >>>>>> (I accept the posibility that I could be wrong and welcome a >>>>>> rebuttal) >>>>>> >>>>>>>> 1. You have chosen to attack the method in which I have >>>>>>>> presented >>>>>>>> my >>>>>>>> argument, instead of the actual argument itself: >>>>>>> >>>>>>> Well, it appears that you're more adept at quoting other's >>>>>>> wisdoms, >>>>>>> than >>>>>>> acquiring your own. >>>>>> >>>>>> Now you're attacking me: >>>>>> http://www.datanation.com/fallacies/attack.htm >>>>>> >>>>>>> Specifically, I _did_ attack the argument, and the >>>>>>> proof of that is that you responded to my point. Doh! >>>>>> >>>>>> You attacked _both_ the argument _and_ the method in which it was >>>>>> proposed. >>>>>> The first is fine, the seccond is illogical. >>>>>> >>>>>>> Let's see what gnomic little nugget you're going to profer next >>>>>>> ... >>>>>> >>>>>> The reason I profer these links is simple. In my experience a >>>>>> skillful >>>>>> writer/speaker can sway an audience to believe/disbelieve just >>>>>> about >>>>>> anything, they can do it without providing any logical or rational >>>>>> reasoning. >>>>>> >>>>>> These links helped _me_ understand what they were doing and why it >>>>>> was >>>>>> illogical, I hope to enlighten as many people as I can, so that we >>>>>> can >>>>>> all get on with having logical, rational debates with good sound >>>>>> reasoning. >>>>>> >>>>>> Now, I'm not saying either you or Kris _are_ illogical and/or >>>>>> irrational at all, you both exhibit very good logical and >>>>>> rational >>>>>> reasoning, however in this particular case I think the argument >>>>>> is >>>>>> illogical and I'm trying to explain why to the best of my >>>>>> ability. >>>>>> >>>>>> My intention is not to attack the person at all (for that would be >>>>>> illogical), however for some reason you seem to have taken it as >>>>>> an >>>>>> attack against the person, and attacked back in that fashion. >>>>>> >>>>>> I may be wrong about this argument being illogical. If you believe >>>>>> so >>>>>> please make an attempt to refute my argument in the same manner in >>>>>> which it was proferred, with logic. >>>>> >>>>> Very well, put. What you either fail to recognise, or may recognise >>>>> all >>>>> too well, is that by contextualising both your own arguments and >>>>> those >>>>> of others in logic terms (I'd say logical terms, but that'd be >>>>> confusing, illogical as that may be), you are attempting to coerce >>>>> just >>>>> as surely as those whom you (claim to) refute. >>>>> >>>>> Indeed, examining your posts from a psychological perspective >>>>> reveals >>>>> all manner of interesting little tactics. For example, "please make >>>>> an >>>>> attempt to refute my argument in the same manner in which it was >>>>> preferred, with logic". This not only attempts to (subconsciously) >>>>> persuade the recipient (me) _and_ others to accept that my/Kris' >>>>> arguments thus far are devoid of logic, it also inclines us all to >>>>> treat >>>>> your posts as logical because you explicitly and overtly put in >>>>> your >>>>> impressive links. Furthermore, it attempts to control the debate - >>>>> in >>>>> your favour no doubt - by prescribing its form. >>>>> >>>>> I'm neither impressed with your tactics (though I recognise that >>>>> they >>>>> may well be effective in many of your online relationships), nor am >>>>> I >>>>> inclined to comply with your attempts to frame the debates >>>>> according >>>>> to >>>>> your own terms. >>>> >>>> Jeepers, guys. Chill out. I'm half-way not believing that Matthew >>>> posted that >>>> since it doesn't really sound like him. This "debate" has gotten too >>>> polarized >>>> IMO. Everyone put the knives down and back away... :-P >>> >>> Agreed. Bad day behaviour. I guess I just don't like being told what >>> to >>> do, or how to think. >>> >>> Sorry all round. >> >> Matthew, I too am sorry. My intention wasn't to tell you what to do or >> how to do it, but rather to share an ideal to which I prescribe. >> >> I have replied to your last post, probably because I have to have the >> last word. :) >> >> I would be happy if you felt like reading and replying, thought I'll >> understand if you simply want to leave the horse where it lies, so to >> speak. >> >> To re-iterate I have the greatest respect for both you and Kris (and >> many other people here), at the same time I have strong opinions of >> my own and will always share them. I realise that I can come across >> aggressively, I fear it's a flaw of what I hope is a passionate >> nature. > > Regan, I am, like everyone else, flawed in myriad ways. One of 'em is I > don't like being told what to do. Add that to a few frustrating days in > my work life, and you get overreaction, rudeness, patronisation and > general bad form. > > I think the way you carry on with the logic is irritating, but Understood. I'll do my best to curtail my religeous zeal. > (i) I > overreacted, and (ii) I know full well that I can be, and often am, at > least as irritating, and probably in several different ways. > > 'nuff said? Yeah. (yet here I am posting more? I really must admit to having a problem with needing the last word... ) Regan |
Copyright © 1999-2021 by the D Language Foundation