Monday, November 23, 2015

Each Researcher has an obligation to know Truth – It is his sacred Duty

Except software products, no other product created by using components has spaghetti design. There is no valid reason, why software alone must be burdened with spaghetti design/code. This document/page provides 3-page summary about the reality about the CBD (Component Based Design). The 3 minute video gives just an example of reality of CBD. Each year mankind is building 100s of such new kind of products. Software experts use baseless excuses such as software is unique and different, without any valid justification for why and what manner it is unique/different.

Each and every component of such physical products is being constantly and frequently redesigned without being burdened by spaghetti code/design. Any component can be disassembled to refine and test individually to satisfy exact needs and fit perfectly by performing as expected. Engineer of any component is not forced to see even a single line of internal code implemented for any other component. Over 90% of the physical product is free from spaghetti code, since 90% of features and functionality is implemented in such custom individual components. This is the well-known and obvious reality of the design of any large physical products.

 Researchers and scientists has an obligation to know the Truth about reality. In fact, it is their sacred duty, because the very purpose of scientific research is pursuit of absolute truth. Existing software engineering paradigm is rooted in fundamentally flawed assumptions “the reusable software parts/modules are components” or “any kind of useful software part is a kind of a component”. It has no basis in reality. In fact, most fact or concepts for CBD for software contradicts countless facts or concepts we know about the reality of physical functional components & CBD of physical products.

            Who invented or discovered this kind definitions for components or CBD? Who tested or validated it? No one knowns. No one can give names or documentation for proof. I can’t find answers to these basic questions, even after being in this industry for 30 years, of which 15 years doing research on components and CBD. The existing paradigm for software engineering has been evolving for 50 years by relying on such untested assumptions by considering the assumptions as self-evident truths.

            This paradigm is not much different from geocentric paradigm existed until 500 years ago. No one could name, who discovered “the Earth is static at the centre” and “who proved this”. They assumed that “the Earth is static” is a self-evident truth, which needs no proof. On the other hand, we don’t need a Ph.D or MS to answer these simple questions: Even a school kid knows, who discovered “the sun is at the centre”.

Who proved this Truth? Many science college graduates may say newton’s discoveries of laws or motion, universal gravity and invention of calculous conclusively proved this fact. The invention of calculous allowed providing mathematical proof. Later we found many discoveries independently and repeatedly confirmed this Truth. For example, to name one: The observation of perturbation in the Orbit of Uranus lead to suspicion of existence of another planet and lead to the discovery of Neptune.

The most important thing now is, not proof alone but mankind found no evidence to contradict this Truth (i.e. the Sun is at the centre). In the basic sciences every basic Truth is discovered by someone (whose name/names is widely known) and the Truth is provide beyond any reasonable doubt, where the proof is also widely known. Any evidence to contradict the Truth or Proof would be documented and investigated until it reaches a logical conclusion. Without this kind well documented proof, no one would blindly rely on any unproven Truth for advancing our knowledge.

Computer science is in crisis because researchers sheepishly and blindly relying on wishful thinking and fantasy proposed 50 years ago (e.g. at a 1968 NASA conference) – building software by assembling COTS (Commercially Off The Shelf) parts from 3rd party component vendors. They assumed that it is a self-evident truth, which needs no proof. Some people named it Software-ICs (i.e. analogues to ICs that are used for building computers or cell-phones). It is just nothing but a 21st century alchemy. No one can name, who discovered the nature of components and who proved it. No documentation can be found for any kind of proof or evidence. These flawed axioms deeply entrenched into our collective consciousness over 50 years.

Software researchers become slaves of their prejudices. They lost their integrity and have no courage to face the truth, plain and simple. They are blocking the progress of knowledge. As if this is not bad enough, they helped create the conditions for the establishment of a brainwashed and intolerant society that is hostile to freedom of thought. In short, establishing a dictatorship over minds against common sense and obvious reality. The above are harsh words, but undeniable Truths. The research community abdicated their sacred duty. They created a hostile situation by making it impossible to even express Truth freely and openly. Today, created a GUI-API and tools that even a fresh software graduate can create real-software-components for achieving real CBD for software (having 0% spaghetti code). Many researchers refuse to see such empirical evidence, by demanding non-existing references such as research papers or text books. Where could anyone find reference to heliocentric model 500 years ago? Only way is to see empirical evidence.

Many researchers in medical field want a vaccine to prevent cancer – is it a discovery or wishful thinking? Many scientist in physics want to invent cold-fusion – It is not a discovery but just a desire. Only way to realize this wish is by making necessary scientific discoveries, but not by making up laws of nature without any basis in reality. Few software researchers 50 years ago wanted to invent components, such that, software developers can build software by assembling prefabricated reusable software components – this is not a discovery but a desire. It is not hard to prove that the desire is a fantasy no different from alchemy in the dark ages. They choose to make up nature of the components and CBD, instead of discovering the nature and reality about the physical functional components and CBD of physical products.

In basic sciences, researchers try to discover Truth about the reality (e.g. for achieving a desire such as cold fusion or a new vaccine) and try to invent things by relying the validated Truths/facts. In software, researchers invented the Truths (for components based on their fantasy) and try to fit the reality to the fantasy.

This mistake at the root of existing software engineering paradigm has huge costs – blocking the scientific progress by hostile to free thought. It is impossible to predict what great discoveries and inventions lay ahead (if and when we overcome these blockades), when computer science and software engineering respectively transformed in to real science and real engineering. I feel, discoveries that will lead to the invention of real AI (Artificial Intelligence) is one of them.