Case Values and Qualified Values:
I have created two computer language statements to permit the entry of
information and action requests. A resource is a collection of
information and all the actions that relate to it.Cast Value:
a resource. The text representation of a resource.
Qualified Value: a complex resource with qualifiers. The
text representation of the context of a set of resources, which includes
the resources or access to them.
A "FILE" is a resource. To be more specific it is the binary
"content" stored on disk. "FILENAME" is a resource. To be more specific
it is the text name of the location of a "FILE".
cast value example:
A = file:(A,B,C\n1,2,3);
B = filename:(c:/temp/csv.txt);
B = A;
qualified value example:
C = csv{<B>,sep=comma,has names};
All the actions possible on a resource are available, and loaded
on demand.
for (index,row in C) alert(row);
To carry this out to its conclusion, every company resource is
available as a one line statement.
A = accounting{user=Clif Collins};
B = A.New Invoice;
B.Customer = "Collins Software";
B.Deliver
Do we need both qualified values and cast values even
though a qualified value is in fact a cast value. I added cast values to
make code more readable. It comes down to how information is to be
used, and how we perceive its use.
"Try not to become a man of success. Rather become a man of
value." -- Albert Einstein
"If I have seen further it is by standing on the shoulders of
Giants." -- Isaac Newton "I learned very early the difference
between knowing the name of something and knowing something." --
Richard Feynman "Do I love you because you're beautiful, or are you beautiful because
I love you?" -- Cinderella "4 out of 3 people struggle
with math." -- Anonymous |
|
The Assistant:
We must think of software as the assistant to the master. It is
there to provide help to someone that is performing a task. In real
terms, an assistant provides help doing things that the master can do but
wishes to let someone else perform them.
The Perfect Assistant:
We know what this is, he/she does what we ask, when we ask,
understands what we ask, and gets better over time to the point that the
student becomes the master.
The Computer as an Assistant:
This is where we went wrong. We have too many assistants, they are
constantly changing, each thinking they are the master and require us to
learn their way of doing things.In programming we have hundreds of
thousands of assistants. The instruction set, the operating
system, the compilers, the editors, the applications, all the system and
library functions, all of which are unique and independent. Each doing
things in a way that requires the master to become the student to
perform even the simplest of tasks. To make things worse, we never know
if the request will be done as we expect. An example, there are probably
four thousand ways to add two number together, none of them giving
identical results.
Every application now requires hundreds of assistants to create it, and
even more to run it. This is far too fragile and time consuming.
In programming terms, a function is an assistant that we call to do part
of our work. Functions are almost never complete, which forces more work
on the programmer. The result is that we can only ask for things that each assistant allows, which is the
worst possible way to program.
Jane, One Assistant:
The only way to improve software development is to have only one
assistant. One that we train, that understands our requests, and we can rely
upon to do what we ask. As "the" only assistant she will perform any and all requests quickly and professionally.
By giving the assistant a name, implies that the user has no control
over how she does things. In a word we will not micromanage. We design
and build Jane as an individual and give her complete authority to
perform her job to the best of her ability. The job of building Jane is
to have professionals create the subsystems at the direction and control
of Jane herself. The result is to let Jane do as many common programming
jobs as possible to free up the masters to do their work of application development.
The more she learns the faster it will be for every job to be done
and with less work on the user. Again back to my belief that software
development can be reduced from man-years of work to just a few minutes. |
|