[QUOTE]\nAllowing people to focus their limited resources on the important issues\ninstead of distracting them with irrelevant detail results, in my\nopinion, in a greater chance of those "polished gems of engineering by\npeople who take pride" being produced.[/QUOTE]\n\nWhich is why I'm not arguing that this is the (or that there is a) One True Way\nto structure C sources.\n\nHowever, I have found this old-school approach to be very nice and workable\non a recent project of mine; none of the FUD against it is proving to be\na generalization. (FWIF, I have much more experience with the "every header\nis guarded, and includes what it needs" approach.)\n\nAnyway, in real engineering, there is more global awareness of changes\nto a design. Maybe software is the way it is because everyone expects not\nto be distracted with irrelevant details such as "how the hell does this\nthing actually work as a coherent whole".\n\nIn electronics, you would never get away with bullshit like "I'm just going to\nthrow a little sub-circuit into this schematic and not care about anything\nelse, since the impedances obviously are such that it has no impact". (Let\nsomeone else worry about board area and layout, noise and crosstalk issues,\nemission, added power consumption and heat dissipation, etc).\n\nIt's not easy enough for some people that we can just type our product\nfrom a keyboard and have a toolchain convert it into the final running\nimage. It additionally has to be possible to make changes without knowing\na whole lot of pesky context. Because our time is so expensive, and all.\n\nMaybe this is why companies sometimes spend hundreds of thousands developing\nsome beautifully functioning working for a device, and then it goes to hell\nbecause the task of making drivers was given to some yahoos as an afterthought,\nand the end product is a flop that blue-screens everyone's PC.