The Future of Software Development Technology:
Software development will no longer exist, there will be no technology,
it will just be. The capabilities of software has limitations, but those
limitations are known, everything else is possible.
language communication is designed and implemented to be the input of choice.
A better editor, one that handles all forms of written, verbal
and implied communication. Math equations as written, along with
music, chemistry, and all other symbolic written forms of knowledge
transfer. Symbolic language pieces (characters) can be used defined.
This is important to have technology forever moving forward and improving.
Which is to improve communication and to produce a common understanding for
Self Aware Context:
Leaving behind the concept of single application for a single data
structure. This is the completeness of our current software
technology. Every application is unique and different, and only works
on one unique data structure.
The future software is context aware and will
adjust itself to any change to its own environment. Instead of state
transitions, where all states are predefined and controlled by logic, the
future of software is to alter the existing logic whereby no controlling
logic is required. Context is able to change but will stay in the same state
of execution. This ability permits an infinite number of possibilities
with minimum impact to understanding and programmability.
For example: take a given state of
a "number". We will be able to change the context of the number, from
an "Integer" to a "Whole Number" to a "Real Number". For a more complex
example: the state of "Compile a text file", we will be able to change the
context to handle over seven hundred computer languages.
The difference here is that a change of state
would be "Compile a COBOL program" now change the state, to "Compiler a C++
program". Where a change of context: The state is "Compile a Program"
set the context to "COBOL" and then change the context to "C++".
In our current software development
technology, "change in state" is rare, and we never have a "change of
context". The better technology is to have unlimited use of both,
charge of state and change of context transparent to the user and handled
"If you think in terms of a year, plant a seed; if in terms of ten
years, plant trees; if in terms of 100 years, teach the people." --
"Unfortunately, the clock is ticking, the hours are going by.
The past increases, the future recedes. Possibilities decreasing, regrets
"The best way to predict your future is to create it."
-- Abraham Lincoln
"If stupidity got us into this mess, then why canít
it get us out?" -- Will Rogers
"If you want your children to be intelligent, read
them fairy tales. If you want them to be more intelligent, read them more
fairy tales." -- Albert Einstein
Taking Advantage of the Computer:
The computer has certain capabilities that can enhance the work of
humans: speed, infinite memory, never forgets, and global sharing of
information and capabilities.
The future for software is to have
absolute control by the user of every aspect of the hardware. There will be only one computer
language. There will only one information format,
with no limitations on logic. All personal preferences will
be removed from software. Software is to reflect reality, and as such
will use the existing terminology and forms of communication.
Speed of execution: The computer
started at about 2,000 instructions a second (Z2 computer - 1941). This
is somewhat faster than a human can perform the same function at about 1
instruction every 5 seconds.
Storage Capabilities: The
amount of information that can be stored on disk out performs the amount
of information the human can accurately store for a longer period of
Global Sharing of Information and
Moving, accessing, and sharing information, knowledge and logic
has never been easier.
Can run forever without stopping.
The future is to be designed with single internal methods for handling
all information and logic. The object is to eliminate "single points of
failure, with a side effects of fewer lines of
code and easier to understand.
Much of the future's logic is built into
the system, hidden, and automatically applied. No more reading and
writing files. No more
databases to content with. No more client server technology. No more
security issues. As time passes the system will automate more and more
of our logic to a point that it can handle all possibilities, removing
the need for programming of any kind.
Our only job will be to tell the system
how we want reality to be handled. We provide the knowledge needed to
adjust logic to fit our needs. "Fire at the Klingons", "Drive me to
The future software has no fixed applications. Applications are
created upon request to the specification of the user. Every
logic block of an application will be described and demonstrated to the
user upon request.
The future is to remove all the so called
"standards" and remove all the made up terms used to describe vague
The future technologies will
have to adjust to the limitations of our spoken languages
- Homonyms --spelt same different meaning
- singulars and plurals the same (dice, deer )
- multiple meanings (pet, fall, park, ...)
context will have to be explicit, and be able to be verified.
Humans know context and what to ignore, the computer does not.
Providing context will be the "art"
part of the future system.
Building Block Logic, built to handle all realistic logic possibilities.
As conditions change, logic is adjusted to take advantage of the
capabilities of the computer, and to select the best possible approach
to resolve the request.
No longer are applications written, what we
have are capabilities and knowledge that is accumulative. These actions
are then put together as a functional application. As more logic blocks
are added to the system the more powerful is the overall system. At some point, the
requirement for customization is no longer required, and the system can
run on its own. No more human involvement in the software development
What goes away first will be "Client Server Technology", next are
"Databases", and then "Security issues". These are the first three parts
No longer is logic defined as "functions". A function being a fixed set
of statements to produce a fixed result. Rather logic is defined as
blocks of code that are chained together as a single continuous flow of
statements, which is the minimum amount of code to produce an expected
result. The system can adjust itself based on context, both
static and dynamic. The system will start by assuming a give action, but as conditions change and more information
is available, the system can alter its own logic to accommodate the new
Without functions the system only loads block of code that are
required for any given solution. This improves speed of execution, and
greatly reduces the complexity of any given solution.
"There can only be one". Software can never be done by
committee. The future of software must be done by the software itself, not by the personal preference. We must have
confidence in software, and this will only happen when all possibilities
The future single cheap system will have
infinite knowledge and infinite logic needed to provide a flawless
by: Clif Collins