Apr 2020
May 2020 Issue #1
Collins Software's Newsletter
May 2020
Issue #2
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 language.

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, selectability, 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

"It is impossible for a man to learn what he thinks he already knows." -- Epictetus

"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

"Progress always 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.

Each 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 computer.

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.

Author: Clif Collins

Houston, Texas
May 1, 2020

email: web1@collinssoftware.com