Desired Software Traits for MAX
- Always work, can never fail
- No code size limitation
- No documentation needed
- No versions
I am designing a software system to meet these traits for all
Always work, can never fail
The ability to create perfect software is to write logic that is
Software fails due to a bad development environment. MAX, the system
I am writing, organizes logic so that it is visible at all times. MAX
takes organization of logic away from the developer and give it to the
Adam, making software development a technique rather than an art.
Software failures happen when we are forced to make assumptions or when logic is altered
by external systems. So by removing, permutations in logic, assumptions, and
external systems we can have software that never fails. The
visualization of the system will make it possible to alter any part of
Max with confidence.
In MAX the creation and management of logic includes a completely
automated managed testing and evaluation system. Max will not
permit un-testable logic; logic is initiated by command, all commands
can be tested and evaluated. Tracing of code and logic by command
is managed with a use counter, to determine the price for failures, the
price for changes, and for the optimization of code.
"Cut your expectations short lest you wallow in disappointments.
But take time to differentiate between dreams and expectations or drown
in sorrowful displeasure." -- unknown
"The quality of our expectations determines the quality of our action." --
"High achievement always takes place in the
framework of high expectation." – Charles F. Kettering
"Without deviation from the norm, progress is not possible" --
"Rarely do the followers exceed the expectations of
the leaders." -- Unknown
What is software development?
Provide information to perform a job
Information with minimum navigation
Create actions performed with numbers
The ultimate goal of software development for any
organization is to eliminate the person to person exchange of
information, in other words "no more meetings". All persons doing their
job should have everything they need, and never have to leave their
chair, to know without a doubt that their work is correct.
The number of actions that can be performed on numbers
is finite, and so must the permutations on logic.
What software development is not:
Software development should never write applications or business
rules. Software development write actions, the end user has the ability
to organize actions into applications, determined by his own business rules.
A natural language interface allows the user to describe
in "context" what information he needs to perform his job.
Taking the human out of the equation:
The actions we perform on Adams should never require
humans to augment knowledge that can otherwise be known to the Adam.
In general we know what we want done, the Adam if
asked to do something should know what it needs to complete the request.
There can never be an assumption on the result when we ask the Adam
to perform an action.
We can no longer write callable functions which assumes
understanding and use of someone else's logic. This is accomplished by
separating the request from the action thereby reducing the knowledge
needed to perform an action to a minimum.
A finished software development product will remove the
need for problem resolution by humans. By allowing the action's
logic to be completely written will permit all problems to be
resolved by the Adam. This is done by having the Adam have
context knowledge of every action it performs, reducing the permutations
of logic to a singularity.
MAX release date:
I have been tied up with unexpected work, and have not
been able to devote time to the development of MAX. I have completed
this work and will push for the initial release of MAX by the end of the
A new software development environment:
The level of our software development has been limited
by some key friction points. The first friction point is the hardware
binary number representations. Using the binary number
representation limits logic to that domain, which is at all
levels of logic, and forces a ten fold increase in difficulty in creating logic
that is reliable. The second friction point is use of external systems.
Any use of external logic will corrode over time. The third friction
point is proprietary hidden logic, making it impossible to be
accountable for the unknown. The fourth friction point is the use of
software libraries which funnels logic into paths that are inexact at
best, and completely wrong at worst.
These friction points consume most of the time spent on
software development. Max will not have any of these friction points. To
further reduce development time Max will contain CG3 a storage and
transport structure that is completely transparent, all logic will be
maintained in text form, all logic will be completely table driven, and
all logic is accumulative.
Common Ground 3000 (CG3):
I have redesigned Common Ground 2000 (CG2) into an
adaptable structure used by Max for storage, as a transport media
and as a direct machine hardware accessible binary format. The CG3 format will
eliminate the need to "convert" data for any reason.
The Cg3 format will fix all problems with strings,
arrays, structures, and numbering systems. No reformatting will be
required, the logic needed to access information will be minimum, and
speed in all areas will increase.
I will include a system for numbers, text, units,
images, graphics and math equations in the initial release of CG3. These
systems have hindered our development by having each individual write
them since they have always been
incomplete or non-existent.