order of evaluation parse date s - (nf)

tektronix!zehntel!zinfandel!mark tektronix!zehntel!zinfandel!mark
Wed Mar 16 01:19:52 AEST 1983


#R:houxj:-22000:zinfandel:14600004:000:1416
zinfandel!mark    Mar 10 11:28:00 1983

Michael Wagner has a very good point: readability by humans.
When I run across like that being discussed here I have to decide:

	1. How does this code work on the machine for which the
	   author wrote it?
	2. How does it work on the machine(s) on which I intend
	   to run it?
	3. If they are different does it matter?
	4. If it matters, is it
		a. necessary (eg, fix differences in the machines)
		b. a "feature" (ie, can be tolerated)
		c. a "bug" (ie, must be fixed)
	5. Did the author consider any or all of (1)-(5)?
	6. If so, do I think s/he was correct on all of them?
	7. If not, am I missing something or is the author?
	8. If the author didn't consider all of the points, or was wrong
	   on some of them, how closely should I look at the rest
	   of the code for other non-portable constructs?

In other words, even if the code works probably on all existing and known
machines and compilers I have to waste a lot of time on the code,
even if it turns out to be ok.

I don't care if the compiler can sort things out if people can't;
such features should be used, even when portable, without a very
compelling reason.

Mark Wittenberg
...!decvax!sytek!zehntel!mark


PS.  I can't think of any compelling reasons for the examples mentioned here.
PPS. I also don't like use of ADA overloading for similar reasons;
     please direct all flames to /dev/null, as I don't want to start
     ADA debates here.




More information about the Comp.lang.c mailing list