Wishing every one a Very Happy New Year! Let’s hope
history would record 2014 is the pivotal year for transforming computer science
& engineering from science fiction (based on unsubstantiated assumptions
& myths) to real science & engineering (based on irrefutable facts
& reason).
Brief summary of my research in 5 simple sentences: Any scientific and technological process
and/or progress requires 2 essential steps: (1) basic scientific research to
discover irrefutable facts; and (2) engineering research to invent useful
things by relying on the facts discovered in step-1. It is impossible to make a
successful invention by relying on facts having errors. Unfortunately software
researchers skipped the essential first-step by blindly relying on
unsubstantiated axiomatic assumptions (having errors) as facts for inventing useful
things in step-2.
The main objective is to expose a huge
error in a seed postulation of existing software engineering paradigm, where
the error was planted more than four decades ago and the existing software
engineering paradigm has been evolving by relying on the erroneous seed
postulation (without even suspecting possible existence of the error). I am
sure truth will prevail, if enough experts are aware of possible error and try
to validate the basic unsubstantiated postulations.
It is huge error to expect apple tree by erroneously
planting seed of any other tree. The assumptions, decisions, objectives &
paths chosen by any field in its early formative years determine outcomes
(including success or failure). I referred to such axiomatic assumptions that
are basis and at the root of any mature complex paradigm as “seed
postulations”. Any errors in seed postulations certainly derail scientific
progress for decades or centuries until the errors are exposed. The respected
academic and research institutions must play vital role in investigating truths
by validating such unsubstantiated assumptions.
Please allow me to summarize a simple proof that existing
software paradigm resulted from a broken scientific process and violated basic
scientific principles. The basic scientific process for inventing any useful
thing (e.g. the fiber-optic-networks, semiconductor-chips or real-CBD for software)
require two essential steps (1) discovering scientific facts for basic building
blocks and (2) inventing useful things by relying on the facts discovered in
the step-1. The step-2 of inventing any useful thing can never be successful,
if step-1 is skipped or if there is a fatal error in the facts discovered in
step-1 (even by investing a trillion dollars on the research for the inventions
without exposing such hidden error).
How is it possible to invent the fiber-optic-networks by
ignoring or being clueless about the nature of light and how light behaves in
media such as glass-fibers? How is it possible to invent the
semiconductor-chips by ignoring or being clueless about the nature of electrons
and how electrons behave in semi-conducting-materials? How can software
researchers invent real-CBD for software by being clueless about the nature and
essential aspects of CBD of physical products (e.g. without even knows what is
real-CBD) and innate nature and unique properties of components essential for
achieving such real-CBD?
Today CBD for software is defined as using so called
software components, which is no different than defining flying (i.e. CBD) is
flapping fake wings (or components) without even knowing “what is real flying”.
Any person who looked in to the sky and observed aerobatic maneuver of birds or
Jet-fighter can never accept definition that flapping fake-wings is flying
(i.e. controlled powered flight). Likewise, any person observed real-CBD of
physical-product for discovering “what is real-CBD” (e.g. essential aspects uniquely and
universally shared by the design of each and every large CBD-product)
could never accept baseless definition “using so called software components is
CBD for software”.
I followed basic scientific principles (first discovered
the facts and relied on the facts to invent useful things): I discovered unique aspects of
CBD for physical products, where the unique aspects are universally shared by
design of each and every large and complex CBD-product known to the mankind.
These aspects are essential to discover the answer to “what is real-CBD” and
invent real-CBD for software (which is logically equivalent the CBD of
physical-products for offering comparable or better benefits). After
discovering “what is real-CBD”, I need to invent real-software-components that
can enable such real-CBD. To secure such benefits, I need to discover the
innate nature and unique properties universally shared by each and every
physical functional-component that are essential to “enable such real-CBD”. We
are entailed to the patents for each of the useful things we could invent in
step-2 by relying on our basic discoveries in step-1.
Kindly allow me to summarize the existing state of
software: The term “Software-Components” is used as a Synonym to “Useful
Software-Parts”, without any basis in reality or substantiation. For
example, the scientists of computer science never investigated innate nature of
the physical functional components and CBD (Component-Based Design) of physical-products
before defining software components and CBD for software. These assumptions
were made during mid 1960s, but no one ever tried to substantiate this
assumption.
It is impossible to find any evidence that any one else
ever suspected that there could be an error or dared to question its validity.
This unsubstantiated axiomatic postulation resulted in many kinds of software
components without any consideration to facts or basis in reality, where each
kind of so called software-components by definition (or convention) is a kind
of useful parts either (1) Having certain useful properties (e.g. reusable or
standardized etc.) or (2) Conforming to a so called Software Component-Model.
This baseless axiomatic assumption and defining each kind
of useful software parts is a kind of software components, resulted in many
kinds of so called software components. Since using one or more kinds of so
called software components is defined as a kind of CBSD (CBD for software),
which resulted in many kinds of so called CBSDs. How it is different from
preposterous definition: Flapping fake-wings of one or more kinds is a kind of
flying (resulting in many kinds of flight)? It is impossible to accept such
preposterous definition, if one discovers the essential aspects (e.g. CBD-structure and CBD-process)
uniquely and universally shared by Component Based Design of any CBD-product.
Flapping wings not
even remotely resembles the flying one can discover by looking in to the sky to
observe flying birds or airplanes. Likewise, using so called software
components not even remotely resembles the CBD one can discover by observing
the design of any physical product built by hierarchically assembling physical
components (i.e. CBD-structure), where each of the components can be easily
disassembled or re-assembled (e.g. either to replace by a better component or to
redesign and test individually outside of the product in step-1 or step-3 of
CBD-process).
The computer science violated basic scientific principle
by skipping step-1 and broke the scientific process by defining nature of
software components and CBSD without any basis in reality, in clear contradiction to the known facts about the real-components and real-CBD. The
researchers of software engineering have been relying on this broken scientific
process for over 4 decades (wasted billions of dollars, without even realizing
the fatal error).
No useful thing can be invented by relying on such
erroneous facts (without realizing the errors), even if mankind invests a
trillion dollars for another 100 years. What pains me most: researchers wasting
their valuable effort on research by relying on such unsubstantiated axiomatic
assumptions (having errors) as facts. My efforts to make the researchers at
respected institutions (e.g. CISE at NSF, NITRD, organizers of CBSE and “Science Fiction Institute” SEI at CMU) aware of the error failed
so far.
This kind of fatal error in any scientific field manifests
in many kinds of problems (e.g. by making many things unpredictable by
resulting in inexplicable paradox), and the scientific field certainly ends up
in a crisis. When exposing such fatal but hidden error (which managed to be
hidden for many decades as in case of existing software paradigm; or many
centuries in case of then prevailing geocentric-paradigm 500 years ago) results
in a scientific revolution (Ref. book “The Structure of the Scientific
Revolutions” by Thomas Kuhn). In simple terms, such errors derail scientific
progress (i.e. researchers would stuck in loops of a complex maze of ever
expanding interdependent concepts by adding more and more concepts each year
circling infinite paradoxical maze), and exposing the error puts the scientific
progress on right tracks for advancement in the right path.
Only place one can define nature of things (without any
basis in reality) is in science fiction movies and books. By defining the
nature of components and CBD (without any basis in reality), computer science
ended up as a science-fiction. The first-ever scientific revolution in a
scientific filed requires most complex paradigm shift, since it has to
transforming the field into real-science based on facts and reasoning, from
pseudo-science that had been evolving by relying on baseless myths and
unsubstantiated definitions (or unknown errors).
Exposing such errors require open and honest exchange of
ideas. There are two kinds of enemies to open honest debate,
which is essential for scientific discoveries. I put all the proof openly to
eliminate the perception that I am one of them. Any unsubstantiated insults or
snubs only expose the incompetence of unethical or irrational skeptics in such
open forum (e.g. to overcoming insidious enemies of scientific progress).
The truth would prevail by open and transparent debate in an open forum (e.g.
blogs) by keeping all the parties honest knowing they can’t deny their written
statements. After investing more than a decade on this research & to
absolutely make sure that I am correct, I felt it is my duty & there is no
reason to be scared for telling inconvenient truths (even if it offends common
sense and deeply entrenched collective wisdom).
Best
Regards, Raju Chiluvuri
Enemies to science: http://real-software-components.com/misc_docs/irrational-skeptics.html
Please allow me to summarize the existing state of software: The term “Software-Components” is erroneously used as a Synonym to “Useful Software-Parts”. The scientists of computer science made a error by ignoring innate nature of the physical functional components and defined many kinds of components without any consideration to facts & basis in reality, where each kind of so called software-components by definition (or convention) is a kind of useful parts either (1). Having certain useful properties (e.g. reusable or standardized etc.) or (2). Conforming to a so called Software Component-Model.
ReplyDeleteThis misconception, that each kind of useful software parts is a kind of software components, resulted in many kinds of so called software components and many kinds of so called CBSDs, where each kind CBSD (i.e. CBD for Software) is defined as using a kind of software components. I am sure no software expert can refute these facts about software components and CBSD exist today. But in reality, there exists just one kind of CBD for physical products, which can't be achieved by using any other kind of parts except physical-components.
Such definitions for CBS is preposterous not much different from defining flying is flapping fake wings. Flapping wings not even remotely resembles the flying one can discover by observing birds or airplanes flying in the sky. Likewise, using so called software components not even remotely resembles the CBD one can discover by observing the design of any physical product built by hierarchically assembling physical components (i.e. CBD-structure), where each of the components can be easily disassembled or re-assembled (e.g. either to replace by a better component or to redesign and test individually outside of the product in step-1 or step-3 of CBD-process).
What frustrates me most is: many experts stubbornly insist that it is impossible to invent real-software-components that are logically equivalent to the physical functional-components and are capable of achieving a structure equivalent to logical CBD-structure of physical products. Many experts still hold such views stubbornly, even after seeing dozens of applications created as hierarchies of real-software-components on my laptop; while other experts refuse to see even such irrefutable evidence (as if I am a religious evangelist forcing them to convert religion). One must not forget, as scientists and researchers Truth/Fact is our God, and our religion is pursuit of absolute truth/facts.