Feb 2016
Issue
Apr 2016
Issue
Organization of Code:

It's not our lack of logic, rather it's our lack of organization that sets limits. I want billions of lines of code to work flawlessly, to achieve this it must be in a system so simple everyone will know it and it cannot be improved. 

The location of a light switch is generally known. The organization of code must work this way for billions of lines of code.  My system for organization, although quit easy, took me 38 years to stumble upon.  

Yes, knowing the location of code is important, along with what it does, and its name. My organization goes far beyond this. It has 4 other major benefits, first it reduces the number of lines of code by 75%, second it permits infinite expansion, third it promotes perfection, and forth logic is context sensitive. 


Context:

A desirable quality of software is doing things in context to improve understanding. As it turns out this also has a large impact on the number of lines of code that is needed.  I can reduce the number of lines by 30% just by handling context.

My system does not add lines of code to handle context, just the reverse, I take out lines and makes logic much simpler.


 

"It does not matter how slowly you go as long as you do not stop" -- Confucius

"Strive for continuous improvement, instead of perfection" -- Kim Collins

Diplomacy is the art of saying 'Nice doggie' until you can find a rock. -- Will Rogers

It isn't what we don't know that gives us trouble, it's what we know that ain't so. -- Will Rogers

Get your facts first, then you can distort them as you please. -- Mark Twain

Ox drawn cart:  software development and we are the Oxen:

I have seen the affect of improvements to software after the first version is released. It is never as good as the original.  When software cannot be modified and a new product is created to enhance the original, then some capabilities are always left out or poorly implemented. Code is not modifiable so workarounds are found, or kluges are written that are not really correct. 

All of these things can be seen everywhere. JavaScript: where enhancements are poorly implemented. HTML5: just a trial and error to see what might happen, a never ending kluge. Compilers: one failure after another. Most of the changes to our environment now take years to implement, but are really only just a few hours of work. Most logic is less than 50 lines of code.

Something new everyday, that corrupts past work. So what is the underlying problem to improvement? In a word "Overhead". It is that "overhead" code that binds logic and information together that cannot be modified. The problem is not in the code of the logic. Logic would be easily modifiable if all overhead were removed, and this is exactly what I have done.  I get a 75% reduction is the number of lines of code, if I treat logic and information the same and I manage all the overhead.

I have 80% of the overhead management down to 500 lines of code, with the remaining 20% overhead management at about 12,000 lines. I hope to get this final number of lines down to 2,000 lines or less, in this coming year.


Expansion:

Adam is a single software application that can manage billions of lines of code.

I treat all information and logic the same. Just as the brain must use a single system to store and recall so must this system. Where information and logic are stored does not matter, I just want to be able to store and recall information by name.  Expansion without limits.

Perfection:

If we waited for the automobile to be totally perfected, we would all still be walking.  The first car (1768) had the same design as today, we simply keep perfecting each component.
Perfection in software is just our ability to improve on something that already works.

Unfortunately with current software technology, we cannot improve the design of individual components. I know that all code can be improved (security, speed, capabilities). Improvements in software are never done in isolation. We must be able to make improvements that ripple throughout billions of lines of code with absolute certainty to the impact to the system.

If we change the engine in the first automobile, this affects every other system such as the brakes, steering, and suspension. So we must also improve these components to account for the increased speed. 

Software is the same, however we are always limited by our ability to change the other components, so this stops us from making any improvement to our software. If we do make the changes, they are always a kluge, or we tell people to never drive over 3 miles an hour.

To achieve perfection in software means that we must have absolute control over making changes to every part of the system.  This is exactly what my system does.

I deal with the technical and well as with the political, social, and economic forces that hinder change. Every force that affect change, must be, and is managed. 

Author: Clif Collins
http://CollinsSoftware.com
Houston, Texas

March 3, 2016

email: c2@CollinsSoftware.com