May 2017
Issue
 

Access:

The standard operating mode for companies that write software is to never provide any user access to their own information. The word "proprietary"  is used and therefore it restricts users from accessing their own information. I spent 25 years translating these so called "proprietary" structures so companies could move their information to another system, otherwise they would have been stuck on an old system paying millions of dollars in license fees, and not being able to upgrade.

I now find this same attitude is being used in access to our own hardware, which in affect produces the same result. Actually is has been going on all the time, I have always assumed is was lack of technology.  40 years without progress in software development has to be on purpose. I keep seeing the world of software development taking more and more time and producing less and less functionality.

I am writing "Jane" to break all access barriers and provide companies with complete access to all hardware, information, and logic. I want Jane to provide all the basic logic, so things that now take years can be done in seconds.

Jane will eliminate all variations in information structures. There will be one number format of infinite size, one image format, one video format, one font format, and so on.  To Jane it's not one format, but rather one set of terms relating to a specific person, place, or thing. All terms relating to the thing "Video" are known to "Jane" and she provides instant access to this knowledge and provides the logic to perform known actions. So all the terms relating to video such as: Read, Write, Play, Rewind, Position, Fames, Length, Size,... are readily available.

Many of the video's terms, apply to any time based, location based, human endeavor, or historical events information structures. Jane is not just concerned with the mechanical handling of information but also with all related knowledge.  The terms used for video, also apply to construction projects, pieces of art, and other time based information structures. So I can ask; when was it created?, who was in it?, where was it shot?. Any term relating to Video are managed by Jane, as well as all other Persons, Places or Things.

Most corporations might have 50 subject headers. So someone like Johns Hopkins Hospital, could run their facility with 50 main terms. Then within these terms any piece of information could be retrieved using at most six sub-terms. "Male patients of Dr Wentworth, diagnosed with Acute Myeloid in 2014".


Quotes:

"A capacity, and taste, for reading gives access to whatever has already been discovered by others." -- Abraham Lincoln

"Chickens are the way eggs reproduce." -- unknown

"I haven't spoken to my wife in years. I didn't want to interrupt her." -- Rodney Dangerfield

Status of Software Development

I have been searching the web for ways to improve software development.  I find the same words; AI, AGILE, Cloud, Big Data, Testing,... I cannot find a description on the problem for software development.

I state that software development's problem is "access". Access to hardware, access to information, and access to knowledge. Just as we have given no knowledge of medicine, therefore we are forced into the medical system. So it is with software development, over the last 50 years, we are given less and less access to computer technology. This means we are forced into slavery to the corporate systems.

"Jane" is being written to allow complete access to hardware, information and logic.  Jane will not add any new to the technology but the speed of software development will go from man year to seconds. We already know how and what, and why, we are simply being denied access. "Jane" will remove all barriers.

I would like to be the only one to run software on my own hardware. I am getting less and less of my own resources.


CPU Access

The number of Intel CPU instructions is 2,034.  The number of instructions that I have direct access using C++ is about 200 (10%). Using JavaScript I have only indirect access to about 40 instructions (2%).

When I counted the number of instructions used in EXCEL, there were about 47 different CPU instructions.

Software development is hindered by limited CPU access. I will write my compiler to allow access to 100% of the CPU instructions.  I will do this by expanding the syntax of JavaScript. For example to use the BCD instructions, I will permit a BCD datatype, and the access to the instructions will be by using standard JavaScript statement syntax.  I can (and have) implemented the Intel assembler syntax, but I think I will take this out because it is redundant and much harder to write that it should. I will let the compiler do the work.


Library Science:

The National Library of Medicine has 16 classifications.  Dewey Decimal has 10 classes. Library of Congress has 23 Pattern Headings. Universal Decimal Classification has 10 classes.

These are examples of classification schemes. In my examples I generally assume a company has limited resources and cannot easily define universal subject headings. This is not a bad thing, it may actually be the preferred method within a closed system. It may be better to create domain specific terminology that simplifies and speeds up communication.

Keyboard Access:

I built a JavaScript compiler, and in doing so, I was limited by the keyboard character set. The keyboard determines the number of characters that I can use to specify logic.

I started looking at redesigning the keyboard. I was shocked at what I found. The windows keyboard has 104 keys, I only have access to 64 of these keys. The remaining 40 keys are never used, so 39% of the keyboard is useless.

The first thing I would do is move the CAP-LOCK key. It causes most of my typing errors, especially on my laptop.

To improve software development we must improve the keyboard by adding more characters in which to describe logic. This also implies that we need better editors to take advantage of the redesign.

My redesign of the keyboard would permit the entry of math equations. The companion editor would enter, display and print the equations in their natural form. I would also look at adding more grouping characters.

We have based all of software development around the design of the 1903 typewriter. I think with each new carefully chosen character that we add, to the keyboard, will improve software development ten fold.

I think I will add a few new characters to the JavaScript language. I can add stickers to my keyboard's unused keys.

☾ ☽ ❬ ❭ √  ∫ ∞ ≠ ∠ £ ÷ ± λ
᚜ ᚛ ∑ ∝ ∴ ⊃ • ° ∂ ∈ Δ π ⇔ ⧼ ⧽

Here are 28 characters that I might use to expand the JavaScript syntax. I will not use Unicode, rather create a new 256 character set with a new font system. More on the faults within the current font system at a later date. I will simply say the current font systems do not provide the information, nor the functionality needed for character placement, font transport, sorting, or for nationality tagging. The character sets I create are infinite in size if you are worried when I said 256, this is all I need for the US keyboard.

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

email: c1@CollinsSoftware.com