Re: 3rd party Device driver development...

> You see, the semantics of a function depends on the class within which
it’s

declared, it’s no longer necessarily fixed and global. If you want to
know
what a function does, you must look at the .h file ! That’s the C++ way.

The whole point of a named function in a programming language is to
represent some larger (previously-debugged) series of operations by means of
a single mnemonic. If I have to consult a header file every time I call
function X, just to make sure I’m remembering the right semantic context (or
risk getting unexpected results), then I might as well just retype the
series of operations myself. The function becomes a burden rather than a
useful tool.

There’s a term in usability engineering called “affordances.” Human beings
make shortcut decisions about how something will behave based on previous
experiece with similar objects. If something looks like a faucet, then when
I turn it, I expect liquid (or gas) to come out. I don’t expect the lights
to dim, or music to begin playing, or the front door to open. If something
looks like a shift operator, then it ought to be doing some shifting.

The notion that “every operator is just a reassignable name” is an
interesting academic concept, but it doesn’t reflect the way human beings
actually work. It doesn’t improve productivity. In practice, it causes
problems.

BTW: Every word I’ve typed so far is really just a reassignable symbol. The
correct meaning of this posting is something entirely different than the
meaning you’ve just given it. Consult the relevant header files…

:wink: )-; (dyslexic version)

Regards,
Art Baker


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Well, looks like you’re going against OO as such. It’s a valid position, but
it’s a trifle against the current ! And remember, other languages allow you
to define function names in other than global contexts.

Alberto.

-----Original Message-----
From: Art Baker [mailto:xxxxx@nfr.com]
Sent: Friday, November 02, 2001 11:14 AM
To: NT Developers Interest List
Subject: [ntdev] Re: 3rd party Device driver development…

You see, the semantics of a function depends on the class within which
it’s
declared, it’s no longer necessarily fixed and global. If you want to
know
what a function does, you must look at the .h file ! That’s the C++ way.

The whole point of a named function in a programming language is to
represent some larger (previously-debugged) series of operations by means of
a single mnemonic. If I have to consult a header file every time I call
function X, just to make sure I’m remembering the right semantic context (or
risk getting unexpected results), then I might as well just retype the
series of operations myself. The function becomes a burden rather than a
useful tool.

There’s a term in usability engineering called “affordances.” Human beings
make shortcut decisions about how something will behave based on previous
experiece with similar objects. If something looks like a faucet, then when
I turn it, I expect liquid (or gas) to come out. I don’t expect the lights
to dim, or music to begin playing, or the front door to open. If something
looks like a shift operator, then it ought to be doing some shifting.

The notion that “every operator is just a reassignable name” is an
interesting academic concept, but it doesn’t reflect the way human beings
actually work. It doesn’t improve productivity. In practice, it causes
problems.

BTW: Every word I’ve typed so far is really just a reassignable symbol. The
correct meaning of this posting is something entirely different than the
meaning you’ve just given it. Consult the relevant header files…

:wink: )-; (dyslexic version)

Regards,
Art Baker


You are currently subscribed to ntdev as: xxxxx@compuware.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com