Fixed Word Size: (Bad technology One)
From day one (Assembler) it has plagued software development. Pick the
number of bites to represent a number. It does not work, it never has
and it never will.
See "Ariane 5" rocket failure. 64 bit float to a 16 bit integer
failed and destroyed a $450 Million rocket on launch. See EXCEL one million record limit (was 65 thousand). Every project is sprinkled with
limitations, bugs, failures, and user irritations simply due to a 80 year
old technology that is not going away.
Jane will implement a variable length integer size. Implemented at the
hardware level. We will no longer pick the number of bits for an integer unless we want to.
Character Set: (Bad Technology Two)
ASCII was voted to be 7 bits instead of 8. So we have 128 characters, only
97 displayable. Thus our keyboard, and the resultant text which is symbolic
and unreadable. This is due to the "fixed word size"
Jane will not use ASCII, but rather an infinitely large character set
(definitely not Unicode). To include control characters and all human
languages. English, Russian, German, Math, Music, ... Dance, Chemistry, Art,
Units: (Bad Technology Three)
Actually no units. A failure of our technology to assume. To always assume
is a terrible failure of our technology.
Jane will allow units on every value. A = 10", B = 120 millimeters, C = A
* B in centimeters
Unreadability of Code: (Bad Technology Four)
Text documents are limited to the 1868 typewriter. We have symbolic
languages, but cannot use them (math equations, music English,...).
However we are forced to use a symbolic language
of a symbolic language. This produces something we cannot read or
Jane will change to an editor to program in all symbolic languages and information structures to be used in a single
document to make it readable (i.e. understandable, as well as functional).
Jane will also include all translators to make all information and logic readable by everyone in their
own preferred format.
"We all die. The goal isn't to live forever, the goal is to create
something that will." -- Chuck Palahniuk
"Cherish those who seek the truth but beware of those who find it"
"There were two ways to be happy: improve your reality, or lower your
expectations" -- Jodi Picoult
"Silence is golden. Duct tape is silver." -- Anonymous
"Quality means doing it right when no one is looking." -- Henry Ford
"Progress is man's ability to complicate simplicity." -- Thor
"It is not by muscle, speed, or physical dexterity that great things are
achieved, but by reflection, force of character, and judgment." --
What Is Real Programming?
It is getting the computer to perform an action in the most
convenient manner. What is convenient for me is to have the
computer already know everything that is capable of doing, then for me
to simply ask it to perform one of those actions.
"Jane, build me a system to run my hospital"
We know most, guess at some, and then ask. This is real programming.
There is nothing ambiguous in this statement, just qualifiers we did not
location, beds, employees?
If this information is already known by the computer, then it does
not need to ask. Or I as a human already know that this information will
be required, and would supply it as part of the request.
A thought: "Clif make sure to keep the request inside the
solution, knowledge is knowledge and should always be kept." How was
this created, by who, when, why, ..., what did it replace. Now I can ask
to duplicate it anytime to anywhere, or to restore, remove, change, or replace
Once Jane is built, a system that does all that it is capable of,
then what? The first thing that happens is that humans are no
longer having to program, there will be no need. The next thing
that happens is we will have only one high level language. This means
that all technologies have a common interface. One that handles all
hardware, information and logic requests.
Next is security, here we will have absolute secure systems. Any
number of things are possible; A push instead of a pull system.
Individual encryption per session. Unique instruction sets at the
hardware level per machine / per user. Unique compilers, Unique value
logic, Data separation, Unique vocabularies, .... The
possibilities are endless.
Next is readability of logic based on facts. The facts of real situations.
To have the ability to communicate using all existing human,
computer, and technology symbolic languages. This includes, English,
German, Math, Chemistry, Dance, Music, FORTRAN, C++, ClifCode,
Next is centralized and accessible capabilities. Instead of
every company having to write the same code for the same capabilities.
The interface is a three tiered scripting
language. This is a single hybrid compiler divided into three
programming environments. Level one is at the hardware level that
handles all speed / hardware critical logic. Level two is the language to perform
conventional logic. Level 3 is a natural language interface between the
human and the bottom two levels.
The three levels of logic are tied together as one system to reduce
human involvement, time, and cost in the production of software.
Our current software development is based on assumptions. This is due to the
limitations of our compilers. On every line of code I write, there is always
an assumption on the result. I never have 100% confidence on the result
of any statement. No language should ever be ambiguous.
computer language compilers are a complete failure. A failure due to the
fact that they give us the ability to add integers, compare integers,
and change the flow of instructions. The human is left somehow to
represent reality using just these three operations.
What are you buying?
Software is being leveraged to take ownership of your information
and even the hardware that you thought you purchased. Software has
always been used to hijack your information so that you do not have
access to it. Only the vendor of the software has complete access to the
information that you should own. This is my objection with a technology
that I have devoted my life to, but I do not agree with.
Software should never own the information (or hardware) that it manages. Jane will
protect the ownership so that any information handled by Jane is always
available. Jane will not import any information or logic that is
not managed by the owner of the hardware.
Clifcode: (my partner named it this)
It is the scripting language of Jane. Only one robust language is
required by Jane. It handles all the capabilities of the hardware and
for the management of the hardware, information and logic.
Importing and exporting of other scripting languages is included in
Clifcode. All text, spoken, symbolic and binary structures are managed
within the Clifcode compiler as the foundation of Jane.
Information and logic is treated the same by Jane. Information is
logic, and logic is information, it all depends on context. Jane should
never make any kind of assumption of the purpose of logic or of information
at any given time.
All failures in software projects do not stem from the people
involved, it stems from the foundations of our software development
technology. The four main failures are: fixed word length, units, our
character set, and readability of code. There is no way for
anyone can bypass or fix these failures, because it is the technology
that we use to build all software. I have named only a very few of our
technology failures. Most if not all stem from these four basic bad
The only way forward if to build a totally new technology. We should
learn from our mistakes. I have been waiting 48 years for SOMEONE to do
something about our software development technology. No one has, so I
guess I will do it.
I have glossed over the problems and solutions. Nothing is this
simple. It is worse that our current software development technology did
not gloss over anything it simply ignores the problems and provides no
solution. Poor stupid humans.
by: Clif Collins