Why Start Over -- Software Technology: Software development technology does not work. It is something that cannot be fixed. The foundation of the technology is a house of cards, where every card is a single point of failure. The current software development technology is a set of incomplete solutions. In the development of software we are forced to use a predefined logic style. Meaning that we have no choice in how we implement our logic, it has already been decided. It has been decided how we allocate and access memory, how we store information on disk, how we draw on the monitor, how we perform math, how we put information on paper, what characters we can use, what language we can use and where we can use it. The list is basically everything we do has been decided by the thing we call "Our Software Development Technology". It should really be called "Our One Lane Path to Oblivion". Software development has become a religion of idiots. Our colleges think that computers are only used for math operations. We have pasted the point of no return. We cannot fix the technology, we must start over.
"Success is stumbling from failure to failure with no loss of
enthusiasm." -- Winston Churchill "Do not be afraid of complexity. Be afraid of people who promise an easy shortcut to simplicity." -- Elif Shafak "To those of you who
received honors, awards and distinctions, I say 'well done. And to the C
students, I say: you too can be president of the United States." --
George W. Bush "We forget very easily what gives us pain." -- Graham Greene "Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius - and a lot of courage to move in the opposite direction." -- E. F. Schumacher "It takes a long time to learn how to do something simple." -- Marty Rubin |
Universal Knowledge - Not: We need our development system to have universal knowledge so we can reduce the repetitive work of implementation. With universal knowledge the computer would already know things and would have the ability to do something with this knowledge. What kind of knowledge?
Readability: Our current software development technology is not readable. The computer only understands that the "E" is represented by the number 69, but not really. The number 69 might represent my age, or the price of an apple. Only the one line of code that does something with the value of 69 assumes its meaning. This assumption might be wrong, who is to say. Maybe the programmer made a mistake, maybe that was not his intension, maybe his understanding of the units of 69 were wrong and the value really represented inches not feet. It could be that 69 was EBCDIC not ASCII. But if the computer understood the word "Elephant" and its context there would be communication and understanding by everyone who knows English. For anyone in Sweden the system would convert it to "Elefant tånagelsvamp" We have common knowledge: the symbol PI, the meaning of E = MC2, my Wife's Name, how many inches in a foot. Once we have a vocabulary and knowledge that goes along with the words we can ask the system: "What is the average weight of a baby elephant?". We no longer have to try and figure out that the "W" means.
|
Computer Languages: A multitude of minimalistic cryptic mathematical definition instructions we currently use to define reality. We do not master a language, we master the inconsistencies in the implementations of others that implement small incomplete solutions. So we need to start over, throw away all the code that we have created over the past eighty years. We do this to not contaminate our future software technologies. We start over by having software design the hardware. We have come far enough in development that we know our mistakes. The new computer language will use our spoken and written languages. We write one single language that can contain an infinite amount of knowledge and logic. The knowledge base is the words and terms we use in our spoken language, along with all the known written symbols and their meanings.
Conclusion:
by: Clif Collins |