Place the blame on technology, not upon the people that develop
software. I am very good at what I do. With over forty years of experience
in developing software, I cannot produce what I consider adequate code. It
is not that I do not know what to do, it is because I do not have the proper
tool needed to do my job.
"Jane", the system I have been researching and developing for the last
seven year is what I believe is needed to develop software. In this
Newsletter I will try to explain this statement. I have determined that we
have come to a dead-end in respect to software technology. We must rethink
and redesign our concept of what software can accomplish. The first step is
to find a way to remove the human from the software development process.
My strong recommendation is to start over. Change the way computers are
built, the instruction set, the character sets, the language, and our
There can only be one:
"Jane" as an individual must be unique. She must have only one approach to
the storage and maintenance of information. We humans build application in
blocks of code we call "functions". These are for our connivance, but for
"Jane" they are of little value, for she is working at the hardware level,
where they are not necessary for the running of any application.
"The common person fears to think beyond the common" - Bryant McGill
"Yesterday is gone. Tomorrow has not yet come. We have only today. Let
us begin." - Mother Theresa
"Resources are hired to give results, not reasons." - Amit
"Perfection is achieved, not when there is nothing more to add, but
when there is nothing left to take away." - Antoine de Saint-Exupéry
"Advertising - A judicious mixture of flattery and threats." -
"For there is a way back from imagination to reality and that is -
art" -- Sigmund Freud
A New Direction:
"Jane", my system, should be written as a unique entity. As such the
rules of development change drastically. We must alter our design in
terms of the best way for "Jane" to understand her own environment. We
change from how the human understands and our limitations, to how to
take advantage of the computer's capabilities of her speed, computing
power, flexibility, and storage capabilities.
"Jane" will use an extendable natural
language for describing the qualified actions requested by the users.
"Jane" is an Application Building Table Driven System. She is
designed to maintain the logic for everything that is possible, and then
provide this optimized logic at the request of the user. She is to
retain all information and logic in a way that is accountable, testable,
changeable, reliable, and securable at all levels. This removes the
need for programmers. This is possible due to the fact that
the system is accumulative, and that it retains all information needed
to rebuild every application on every hardware platform.
This what I am building, which is a system that builds applications.
This turns out to be far easier than building the applications
themselves. "Jane" is a collection of information and logic that is put
together, managed, edited and arranged, and expanded at the request of
"Jane" must know everything about the information and logic that she is
responsible for. This includes everything that a human knows, what is
it? where is it? who created it? how to get it? how to change it? how to
store it? how to move it? can it be changed? what can be done to it?
what is it called? what is it used for? what is related to it?.
"Jane" does all the things that is possible, or at a very minimum of
what is needed with information and logic. Knowledge in "Jane" is
accumulative, so that it can be added to at any time. With more
knowledge more capabilities. This is not "AI" is it simply software
knowing what something is so that the user can request some action on
any piece of information.
This knowledge must be tied to reality, and to the words, terms, and
languages humans use.
What is Possible:
"Jane" will handle all the basic structures, storage, transfer and
hardware instructions. We will get rid of the need for Databases, Client
Server Technology, and Software Versions. "Jane" will remove all numeric
The computer language that "Jane" uses is infinitely
expandable. This means that all existing symbolic language can be
incorporated. The language can be adjusted to the specific needs of
every user. There are probably thousands of symbolic languages such as:
Computer, Math, Chemistry, Physics, Dance, Music, Chinese, Sign
Language, ... Each of these can be used to communicate to the
computer to perform some action.
The foundation of "Jane" is to protect the ownership of information in any form.
Computers have stripped our privacy and ownership of information. I hope
to change this back to private ownership and its access at all levels.
Phone Calls, Emails, Web Sites, Images, Letters, Videos, Programs, are
the property of the creator and "Jane" must protect them above all else.
No longer will information be locked in proprietary databases, binary
structures, or encrypted without the explicit permission of the owner.
Reliability, Accountability, Testability, Changeability, Accessibility,
Understandability, and Security
are a must. We must have complete transparency when we make a
request in any form to the computer. With our current software we
have no understanding of what is going to happen, ever. We do not know
what to expect, but we should.
When I write any computer language statement, even with 43 years of
experience, I have no idea what is actually going to happen. I am
required to humanly put all the pieces together that go into making that
one particular statement to happen as I expected. We further complicate
things by writing code for multiple conditions which requires me to go
through and test all permutations of execution. An impossible task, so
our software sucks.