On 2006-08-28, Paul Tomblin wrote:
In a previous article, Matt Whiting said:
Wow, I've never heard that excuse before ... not. Any skilled
tradesperson or professional will use better tools when they are
available. Programmers are one of the few professions that don't. I
honestly have tried to figure this out, as have many others, but I'm
still stumped.
You know who else are stumped? Carpenters who wanted to catch their own
mistakes rather than having safety guards on their saws.
Sometimes, C or C++ is the right tool for the job.
On the other hand, I don't think anyone should write C professionally
until they've used asm in anger (any asm, it doesn't matter which). When
you've written an asm program, and see some buffer run off the end and
over your stack, you understand on a visceral level why you should check
buffers. Those developers who've only ever used a compiler may not be
aware of how things might get arranged in memory, and might believe that
a buffer overflow will just cause a crash. Those who have written stuff
in asm - any asm, even 8 bit stuff, will know that the RET instruction
gets the return address off the stack. They will therefore also know the
consequences of something smashing through the stack, and replacing the
word on the stack that contains the return address. They will know this
because to write anything non-trivial in asm, they will have had to have
thought about this kind of thing.
--
Yes, the Reply-To email address is valid.
Oolite-Linux: an Elite tribute:
http://oolite-linux.berlios.de