"Environment tests"

Darius Clarke DClarke at fadal.com
Thu Nov 6 02:05:27 UTC 2003


To All,

I think it might help to look at the big picture.

Some marriage councilors explain that "For ever couple in bed together,
there are six people there. The couple, the husband's parents and the
wife's parents" referring to the collective habits, personality, and
genetics that the couple has acquired over years. So too, there is more
than one person sitting at your desk.

There are at least 7 people sitting at your desk, represented in your
code/image or environment:
* Your current you - the code you're editing and translating from the
spec. and searching in the other code
* Your past you - the code you've already written with all its warts
* Your future you - the code you plan or have been asked to create
* Programmers of the past - previous versions your code or others' code
may have been written for
* Programmers of the future - those who will be using your tools and
objects & new API and schema coming down the road for you to use
* Current Programmers - those with whom you share and run beta code
* Your Hardware - to perform your logic, your programs must talk to the
machine who/which has needs of its own

[You can include your operating system's API among the programmers of
the past and future.]

Now imagine all these people talking at the same time. Would you expect
miscommunication? We forget that a computer language is a LANGUAGE
burdened to communicate between all these people. Often we forget that
there must be a source and destination for communication via a language.
We treat computer languages as a logic/data repository rather than a
message sent from a sender to a recipient over a period of time. This
also tries to illustrate the Name Space problem.

A professional speech writer will tailor the speech for the type of
audience expected. Yet, we don't provide tools so that the developer can
tailor how to express the desired logic to the intended recipient of the
7 people above. Your hardware doesn't want to hear the same thing as
your future you. Neither do the rest of the 7.

You can multiply the number of the above people when you add varying
programming styles of different programmers, programming styles that
vary over time, new paradigms (like Traits), various code libraries, and
API (black boxes).

Microsoft tries to answer the above problem with its ubiquity, Common
Language Runtime (CLR), and Source Safe code repository. Those efforts
don't approach the ideal that we can imagine. 

I believe that, as techies, we forget that computer languages really
communicate between people. OOP does nothing to help the hardware, but
adds more stack calls than goto programming does. It's a discipline of
thought, efficiency of communication, division of labor, and a slight
improvement over finding what's needed over what we had before. It just
doesn't adapt to changes over time very well. A million API calls might
be reduced to 100,000 of objects, but that's still mental overload for
the mind. Barriers make great halls, but movable walls can help the
halls when large crowds spike over time.

To go from the abstract to the practical, first try to imagine what an
"ideal" development environment with little or no compromises would be
like, then see how we can move toward that. Someone else's code should
always be able to run in my environment no matter the age. The concepts
might be conveyed in ways other than code. Assumptions probably should
be codified or put in a logic database and made automated and searchable
(not the code, the assumptions). The purpose of the code, and why it was
chosen to be implemented in that specific way, probably should be
codified or put in a logic database and made automated and searchable.
The intended audience probably should be codified or put in a logic
database and made automated and searchable. The computations by the
tools should be done a development (and import export) time rather than
run time. The executed code is just a subset of the logic and thinking
behind it which also needs to be preserved an communicated... and
communicated as efficiently as cognitively possible.

My 2 cents. (Where is my cent key again????)

Cheers,
Darius


To be rational leads one towards truth.
Rationalization leads one away.





























































































***********************************************************************************
This transmission contains information which may be legally privileged, proprietary in nature, or otherwise protected by law from disclosure, and is intended only for the use of the addressee(s) named above. If you are not the addressee, or the person responsible for delivering this to the addressee(s), you are hereby notified that reading, copying, or distributing this transmission is prohibited. If you have received this transmission in error, please telephone us immediately at 818-407-1400 and mail the transmission back to us at the above address.

This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.
***********************************************************************************




More information about the Squeak-dev mailing list