January 2022

Disk Storage:
Information and logic is stored on disk for future use. The current storage technology is generally structured into a top level folder that contain pointers to files and other folders. The problem with this is that there is no knowledge known about the information stored on disk. Jane will not use this method, rather she will use one structure; the CELL. A CELL contains information, logic, and all necessary knowledge to make the information application independent.

Each CELL can contain information (i.e. a file) and a list of children (i.e. a folder). The content of every CELL can be thought of as a DISK who's complete content has known actionable information and context.

The CELL's list of children (a folder) has no fixed record structure. So there is no limit on the number of fields that can defined and there is no is limit on the number of records (files and folders). If indexes are required, Jane will maintain them. For Jane a Folder is simply a table with two required fields, an identifier and the block offset to where the child resides within the content of the parent CELL.

Jane maintains the resource type of each CELL's content, and the resource type of each value within the resource. This permits every application complete access to all the information.


Jane a Tool to Build Tools:
Instead of the humans, Jane will build all applications. This approach is much harder to implement, but it has the benefit of being able to test, change, select, and enhance every part of an application. 

One huge advantage that I did not anticipate was the ability to write better logic. Since code is being generated in one location for any given task, then time and resources can be spent to generate optimum code. One thing that happens is that more complex logic can be applied since the human is not having to write and maintain low level coding. In general we humans like to use functions because it isolates logic to make it easier to write. Jane on the other hand has not such limitations.  This opens up whole new worlds when it come to building applications.


"Study the past if you would define the future." -- Confucius

"A brain was only capable of what it could conceive, and it couldn't conceive what it had never experienced" -- Graham Greene

"Intelligence is the faculty of making artificial objects, especially tools to make tools."  -- Henry Bergson

"Intelligence is the ability to adapt to change."
-- Stephen Hawking

"The smarter you get the less you speak" -- unknown

"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe."
-- Albert Einstein

 
Where Is It?
Most of our current software development effort is wasted on accessing information. That is; obtaining logic from disk and move information into memory, then format the information into the functionally correct format. Use it, then take resultant information and either discard, display, print or store the results.

A new DISK and MEMORY structure will be used by Jane to facilitate the work involved in programming.  Somewhere in our applications or in the programmers brain is the information needed to access information. We must change our conception of what is programming. It is no longer just storing and retrieving information, say 32 bits, but it is also knowing everything about the 32 bits.  This is the reality that the 32 bits represent:

  1. Why is it 32 bits?
  2. What terms do we associate it with
  3. Relationships to other values
  4. The context
  5. Where did to come from
  6. Does it get go
  7. Is it entered or derived
  8. The logic that can be performed
  9. Failures and resolutions
  10. Selectability
  11. Validation
  12. Security
  13. Accountability
  14. Reliability
  15. Time and space requirements
  16. Speed
  17. ...

We are no longer using switch boards, paper tape, punch cards or toggle switches to program. Jane can actually keep all of the above information. Why throw it away?  So we start with the DISK and the memory structures required by the applications.


CELL Name Space:
Each CELL has its own name space, which is tied directly to the compiler to resolve information. A hardware name resolution CELL performs hardware term lookup
  • Monitor 1 height
  • CPU instructions
  • CPU overflow flag
  • Hardware disk drives
  • Network speed
  • ...

All binary, scripting, and document CELLS in Jane have a name resolution defined by their resource type.

  • DLL sections
  • DLL Objects
  • Font characters
  • Document Chapters
  • Program functions
  • Program Parse Capabilities
  • ..

The CELL context is global to the parent and children of the CELL with run time and compile time lookup.  

 

 
The CELL:
Merging disk storage of "Folders" and "Files" into one concept I shall call a "CELL".  A CELL is a common structure that has an identical byte structure for all values on disk and in memory. Each CELL is hierarchical in nature independent of application. The content of every cell is known to "Jane".  All binary structures are application independent.

Jane's CELL browser's first level of display in a hierarchical listing (parent / child).  This starts at the CELL level and drills down until the information has no children.  A CELL's content if hierarchical is included.  This would include all binary files, documents, tables, and logic. Basically browse and access to any information both implicit and explicit in our current domain of knowledge.


Programming Decisions:
Just another one of our software development pitfalls and failures. Programmers when writing an application initially choose the best possible approach for a task. Unfortunate most of the time this decision is wrong for a number of reasons. We can easily see these bad decisions by our concept of new releases of an application.  "Versions" is our lack of professionalism in software development.

"Jane" is to change this dead-end approach to software development, and always accommodate all realistic and unrealistic approaches to a task.

A side comment: The "Johnny come lately" programmers many times change the original developer's decision process. This is really irritating since they are generally wrong, both in concept and in not allowing both methods. One example I found the other day was: JavaScript used to trigger an event on a software change to a web component, It no longer does. This could change someone's  whole system design. 


Conclusion:
Changing the disk structure from files and folders to cells consolidates the information, logic and hardware access.  This is the foundation of all applications.  "Jane's" compiler contains name resolution and access to every networked computer. To the user all applications look and run like it's on one machine and in one process with one name space.

Software is software, so there is no inherit limitation to software logic. To improve software development technology we must remove all hard coded information. Code (i.e. logic) should never contain information of any kind.  All knowledge needed by logic must be explicit or derived from the information itself.  This releases all information to every application. Only then can we truly have application independent information.

All information stored on disk we will then have complete access to browse, list, transform, use, update, add logic to, remove logic from, log, secure, delete, and transport. There is never any assumption on the use of any information.