Software Development Environment:
A single language across all hardware and software platforms. Access to
all internal and external compiled data structures. Table driven logic
for all primitive instructions and statements. No dependencies on
functions, all capabilities incorporated into the syntax of the
A system of name resolution into context based on the specifics of a
solution. To handle all: information, knowledge structures, context,
name resolution, speed requirements, transfers, storage, transforms, filtering,
display, creation, alterations and security. To perform all actions that
can be handled by the computer without human intervention. It is the
Autonomic nervous system of Jane.
Application Development Environment:
Natural language interface to all logic. Customizable language at all
levels. Symbolic language editor with customizable fonts for characters,
words and phrases, and concepts. A conceptual representation, in verbal
form, of all real world context and actions.
Application Development is the consciousness of Jane. The real work to
be performed, managed and is the true benefit to the human. This is the
part of computer technology that the average human understands and
controls with complete confidence.
"Success is stumbling from failure to failure with no loss of
enthusiasm." -- Winston Churchill
"The only real mistake is the one from which we learn nothing."
-- Henry Ford
"Software, failure amplified." -- Clif
impossible for a man to learn what he thinks he already knows." --
"I think 99 times and find nothing. I stop thinking, swim
in silence, and the truth comes to me." -- Albert Einstein
"Knowing how things work reduces the effort. This is the fundamental
principle of technology." -- Tba Beta
involves risk; you can't steal second base and keep your foot on first."
-- F.W. Dupee
"We learn from our failures, we learn nothing from
our successes" -- Clif
Application Development versus Software Development:|
To make a distinction between the intended use of software.
Application development is for the human and software development is for
the computer. The current technology is a concoction of failed attempts
at providing results. Unfortunately the efforts to produce the failed
results is not the fault of the authors but rather the path technology
took to provide the tools to do so.
If we separate the concepts of Application Development from Software
Development and produce tools that address each as independent sciences,
we will then alter the course of technology.
Application Development is communication, written or verbal, in human
terms, instructions to the computer to perform an action. Software
Development is to create a system in computer terms to perform the
request for actions using the fewest possible words. Even though all
software is an application, we must first build a foundation for a
better application development environment.
The foundation to application development is to handle everything
that is possible that can be done by the computer without human
intervention. This will be the complete management and
handling of knowledge. What remains is Application Development, the
request for specific results.
Software Development is therefore a one time effort. Which is done by
one organization, as a uniform base which accepts a natural language
request from the human to perform an action. The current
software technology must be redesigned to provide complete knowledge
and logic for every functional basic piece of information. The logic will be 100% hardware
and software independent.
The language interface must have information without versioning. This
is the most difficult part of the system, which is to insure
transferable logic and application independent data structures.
The complete system will be self testing to ensure every aspect of
the system over time functions as expected. All data structures are
version independent to ensure complete application independency.
The Single Effort Software Development:
The foundation of software must be completely redesigned because It
does not work. It is not that is can never work, as most people
believe, but rather that it cannot work when it is designed by
committee. Technology cannot be designed by armatures. Take the
simplest of computer tasks, that of setting a clock's correct time. I
have clocks I cannot set. Not that I do not know what I want to
accomplish, but rather I do not know something I do not know. That
something is someone else's way of doing things. What I do know is, if I
asked the person who designed the clock to set the time, I would be
confident that the time would be set correctly. So we always know how to
state the request, but we do not know how to perform the actions.
So we separate the request as Application Development, from
performance of the request as Software Development.
system is independent, performing their jobs without knowledge that the
other system exists. Development in both seamlessly is possible,
however, expectations over time will reduce the need for direct access
to the software development system. The reason for this is that the
design of a two environment system is to reduce human involvement in any
detail that can be handled by the computer. Over time this means that
there will be more accumulative knowledge in the software development
system, reducing the need for external human knowledge for every use of
The separation of the subconscious from the conscious is key to the
functioning of all technology. In respect to technology, man
cannot know, nor does he care, for those things that function on their
own, only if he can rely upon the results. We have no confidence in our
current software technology, therefore I can say with confidence that it
does not work.
To make software technology work, there must be a concerted effort to
provide those parts of the technology to fix all that is wrong with our
current software. I estimate about 25 man-years of work on the Software
Development foundation. The Application Development side has very
little fixed amount of time for its initial development, it will be in a constant
evolution for the next few hundred millenniums.