November 2021



Software Sucks:
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 expectations.


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 Kalantri

"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." - Stephen Leacock

"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 the user.


Knowledge:
"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 limitations.

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. 


Sovereign Information:
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.
 
Conclusion:
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.