Hungarian notation (was RE: variable naming...)

Steve Holden sholden at holdenweb.com
Tue May 1 09:58:00 EDT 2001


"Courageous" <jkraska1 at san.rr.com> wrote in message
news:gknset4klspm1pdo6cs11es007grb9th0r at 4ax.com...
>
> >The underlying fundamental problem is that the programmer speaking in the
> >programming language domain and not in the problem domain.  (I wish I
knew
> >who originally pointed this out to me so I could attribute it
appropriately)
> >Until that distinction is made by the programmer, that programmer is
going
> >write code, and is not going to write programs.
>
> I find this observation to be quite astute. For example, I once worked on
a
> project where the domain experts (not programmers) drafted the object
model
> in Rose and expected us (the programmers) to implement it. It was a
ridiculous
> affair, and unmigated disaster, and predictably so: the object model which
you
> use to solve a problem is distinctly seperated from how user's personally
> conceive of things. While their conceptions might drive what's PRESENTED
> on a user interface, it is only marginally related to how an internal
object model
> might be constructed.
>
At the same time, programmers need to be careful when working as designers
to avoid "implementation bias": inserting detail into a structural design
which is biased by the putative implementation.

I took Roman to mean that naming the coordinates of a point to imply they
were integers introduced a bias towards the initial implementation, whose
assumption was invalidated by a later decision to use real coordinates. If
Hungarian notation were used then lots of name changing would be required
for no very good reason other than to reflect a type change in the
implementation.

Of course, users own the problem at the _requirements_ level, and JAD and XP
are both examples of techniques were implementaion is closely related to
requirements. All the same I am not surprised that your project was a
disaster. A bit like telling me to go build an automobile: I appreciate the
problems, but don;t have the right engineering background to get most of the
answers even approximately right.

regards
 Steve





More information about the Python-list mailing list