Wednesday, October 5, 2016

How to compel researchers of computers science to use proven scientific methods for acquiring knowledge essential for addressing unsolved problems?

Dear Friends,

Researchers of computer science have been refusing to use scientific methods for acquiring knowledge essential for solving outstanding problems. For example, the infamous software crisis is a huge problem, which could have been solved decades ago, if researchers of computer science used scientific methods for gaining knowledge about things such as the nature and true essence of CBD (Component Based Design) of physical products and nature and essential properties of physical components.

The reason for the software crisis is infamous spaghetti code. Software crisis can be solved by eliminating such spaghetti code. The true essence of the CBD is eliminating spaghetti code. Except design and development of software products, no other product in the world is affected by the spaghetti code, because the designers of physical products employ true CBD, which uses only true components. For example, particularly design & development of new one-of-a-kind products such as experimental spacecraft or fully tested pre-production working models of next generation jet-fighters.

The essential properties of physical components imply the set of properties uniquely and universally shared by each and every known physical functional component. If the essential properties are discovered (by using proven scientific methods), it is a trivial task to invent real-software-components having the essential properties, where the real-software-components are capable of achieving real CBSD (CBD for software), where real-CBSD can eliminate software crisis by eliminating the spaghetti code. I invented this and I can provide irrefutable proof backed by evidence.

This proves that it is not only possible to use scientific methods to gain essential missing parts of knowledge but also such missing knowledge is essential for inventing solutions for each of the outstanding and unsolved problems of software. Such missing knowledge can only be acquired by using scientific methods. But software researchers refusing to use scientific methods by employing frivolous arguments such as computer science can’t use scientific methods for gaining knowledge for theoretical foundation, because computer science is a branch of mathematics (and not a branch of science).

The scientific methods can be used in similar manner for gaining essential pieces/parts of missing knowledge (to expand theoretical foundation) for addressing other unsolved problems such as real machine intelligence by emulating the brains of many kinds of animals and eventually human brain: Please see the number of circuits on an integrated circuits today (https://en.wikipedia.org/wiki/Transistor_count) and compare that to number of neurons in the brains of many kinds of animals: https://en.wikipedia.org/wiki/List_of_animals_by_number_of_neurons.

Even a honey-bee can manoeuvre many times better than most advanced fighter-jets in the world. We might build emulators for brains of many kinds of animals (as chip designers build each ASIC to address unique problem). We might have had the capability to emulate many kinds of such small insect or even animal intelligence and natural instincts for years, if we used scientific methods for acquiring necessary pieces/parts of knowledge such as discovering the nature, properties and functioning of neurons and neural networks. Mathematical methods are not designed and incapable of gaining such missing pieces/parts of knowledge about nature and properties of physical things and processes/phenomena. On the other hand, scientific methods are designed and have proven track record for acquiring such knowledge.

The research effort for discovering necessary pieces of knowledge for inventing real-software-components for achieving real-CBSD, needed no costly resources, equipment or diverse expertise (except common sense, access to internet and rational reasoning). Of course, continuous critique of many experts prevented my research path from deviating too far away from the reality. I am being a software engineer since 1988, I needed no other costly resources, equipment or diverse expertise for investigating nature and properties of physical components/CBD for acquiring necessary BoK (Body of Knowledge) for inventing real software components.

I have made such simple discoveries for accumulating missing pieces/parts of Knowledge by using scientific methods. An elaborate documentation for the BoK for real-CBSD is openly provided in my web-site http://real-software-components.com and in my ResearchGate account. We (i.e. http://pioneer-soft.com) built first and only GUI-platform in the world for building real-software-components to help even junior Java developers to practice real-COP (Component Oriented Programming) paradigm for achieving real-CBD for software. It provides irrefutable empirical evidence to prove that knowledge acquired using scientific methods can solve unsolved problems.

I don’t have the resources or expertise to make necessary observations and conduct experiments for investigating nature, functioning and properties of neurons and neural networks to invent natural or general intelligence (or real AI - Artificial Intelligence). It requires a team having diverse skills and expensive equipment for conducting experiments. But I am sure thousands of software companies and government research organizations around the world have the necessary resourced for assembling such teams having necessary expertise and recourses to do research for acquiring necessary BoK for inventing real-AI (by using scientific methods).

To invent solutions for solving such outstanding problems, it is essential for the researchers of computer science to acquire knowledge by using scientific methods. Certain problems (e.g. real-CBSD, which I already invented; or real-AI, which I don’t have resources to address) can never be invented without filling many missing pieces of essential knowledge, which can only be acquired by using scientific methods. But the community of software researchers have been stubbornly refusing to use scientific methods (having proven track record) to gain missing pieces/parts of knowledge essential for makings such inventions. Isn’t it foolishness, if not a fraud?

Many software researchers are using baseless excuse such as computer science is a branch/sub-domain of mathematics (so it is not and/or can’t be a branch of science) to evade using scientific methods (having proven track record for acquiring such missing pieces/parts of knowledge essential for making such inventions): https://www.researchgate.net/publication/306078165_Computer_Science_Software_Must_be_Considered_as_an_Independent_Discipline_Computer_Science_Software_must_not_be_Treated_as_a_Sub-Domain_or_Subset_of_Mathematics

Please kindly remember this: Any real truth (e.g. discovery of objective reality/fact for scientific or engineering BoK) can withstand even the most rigorous validation and prevail. In fact, any real discovery of Truth/reality would shine brighter and brighter when put under bright lights of rigorous scrutiny or validation. But how such truth/reality can prevail if every respected researcher tries to cover-up by using every possible excuse to hide Truth/reality in dark (by refusing to see the evidence)?

How can we emulate real CBD or neural networks without acquiring BoK such as nature, properties and description for functioning (or phenomena) of such system? Mathematics is incapable of providing such knowledge. Such knowledge can be acquired only by using scientific methods. Isn't common sense: If one needs to draw a picture of something, for example XYZ, doesn't he at least try to know what is XYZ and how does XYZ look like? For example, how could anyone draw a picture (or painting) of an elephant, without ever even seeing or without having basic knowing, whether the elephant is a tree, animal, bird or a landmark? If one needs to paint (or emulate) anything, shouldn't he try to know what it is and how it works or looks like?

Summary: It is impossible to solve certain huge unsolved software problems without acquiring missing pieces of essential knowledge, which can only be acquired by using scientific methods. Software researchers refusing to any use other methods (except mathematics) for acquiring knowledge to expand the theoretical foundation in order to facilitate software inventions for solving unsolved problems. Refusing to use scientific methods for gaining such essential knowledge is shocking and scandalous. How to compel researchers of computers science to use proven scientific methods for acquiring knowledge essential for addressing unsolved problems?

Best Regards,

Raju Chiluvuri

Sunday, September 11, 2016

Isn't it a fraud, if researchers of a scientific or engineering discipline refuse to use any mechanism to validate or correct theories or hypothesis?

Dear Friends,

            The scientific method evolved for centuries and comprises of comprehensive mechanisms for testing, validation or correction of any theory or assumption (or hypothesis). The researchers of sciences use scientific method for acquiring knowledge, which is elaborately explained in this wiki: https://en.wikipedia.org/wiki/Scientific_method
           
            The scientific method comprises of powerful mechanisms for validation and correction such as falsifiability:  https://en.wikipedia.org/wiki/Falsifiability. Such mechanisms for correction or validation are extremely valuable for gaining deeper and deeper insights and wisdom about the ultimate objective reality.

            Relentless efforts to advance each of the (scientific or engineering) disciplines, competition between researchers, and having mechanisms for validation, whose test every theory must withstand or fail. This would expose accepted theories or published conclusions that are result of sloppiness, bad luck and even fraud; and swept away by the advances of the field. In fact, we can gain more wisdom and deeper insights from exposing such flawed theories.

            The researchers of mathematics have comprehensive mechanisms for testing, validation or correction of any theory or assumption (or hypothesis). For example, researchers of mathematics (or logic) rely on set of axioms to build axiomatic systems. If there is an error in any of the axioms, the research results lead to contradictions or inconsistencies. The axioms are corrected or replaced to eliminate contradictions or inconsistencies. Even of the contradictions may not detect the flawed axiom, the contradictions are a clear indication of a flaw in one or more of the axioms (or theories or hypothesis).

            Mathematical methods (or logic) have in-built mechanisms for detecting flawed axiomatic assumptions, theories or hypothesis. For example, if an axiom is flawed, applying series of steps (that are strictly in complacence with established mathematical methods) by relying on such flawed axiom sooner or later leads to glaring contradiction or unacceptable inconsistence (e.g. such as 0 = 1). The flawed axiom can be detected by retracing the steps (by making sure each step is correct and strictly in complacence with established mathematical methods), which certainly leads to the source of the contradiction or inconsistence. This knowledge and insights are used to make necessary corrections or discord the flawed axiom.

            Computer science can never be a real science and software engineering can never be a real engineering, without mechanisms for correction or validation. How do we know the validity of each of the accepted theories or published conclusions (e.g. definitions for components, CBD or neural networks) in the BoK (Body of Knowledge) for computers science and/or software engineering?

            Unfortunately, researchers of computer science (software) made no effort to device such corrective mechanisms, even in cases where such corrective mechanisms are readily available. My years of effort to propose objective facts and mechanisms for correction or validation have been not only ignored but also I have been snubbed and insulted.

            Isn't fraud, if mechanisms for correction or validation are ignored even when such mechanisms for correction or validation are available (or proposed)? For example, no error (e.g. in axiom, theory or hypothesis) can ever be detected, if there are no mechanisms for correction or validation. If any discipline that is not using (by choice/ignorance or it is impossible to use) scientific methods, it is a Pseudoscience: https://en.wikipedia.org/wiki/Pseudoscience

            Many soft sciences (https://en.wikipedia.org/wiki/Hard_and_soft_science) try to use scientific methods, even if it is not possible to strictly conform to the scientific rigor. It may be impossible to strictly follow methods for validation in certain disciplines. Isn't it fraud, if researchers refuse to use any methods for validation, even such methods are available (e.g. proposed) and possible to gain valuable knowledge for substantial advancement of the discipline (or field)?

Best Regards,
Raju Chiluvuri

Monday, January 25, 2016

Who should be held responsible for any scientific crisis in 21st century & resulting waste of efforts of thousands of researchers or scientists?


Progress of any scientific discipline side tracks into a wrong path and end up is a scientific or technological crisis, if there are errors in seed axioms of the scientific discipline (or a branch of a scientific discipline) and researchers try to advance the scientific discipline relying on the untested axiom by assuming that the untested axiom is self-evident Truth.

            For example, erroneous axiom “the Earth is static” side tracked scientific progress into a wrong path for 1000 years and resulted in one of the greatest scientific crisis known to mankind. It resulted in deeply entrenched geocentric paradigm and conventional wisdom. Countless researchers and philosophers wasted their life time efforts on advancing geocentric paradigm.

The assumption “the Earth is static” was made more than 2000 years ago. Many great ancient philosophers such as Aristotle and Ptolemy believed that the Earth is static. They started observing the heavens to understand the paths of planetary motions and try to understand the nature and reasons that affecting the movement of planets and stars. They realized that the movement of planets and starts was not random, but definitely an inexplicable pattern (e.g. comprising of retrograde motions and epicycles, see FIG-1 in http://real-software-components.com/more_docs/epicyles_facts.html)

This assumption (i.e. the Earth is static) neither tested nor documented, so no one even aware that it was untested assumption. So researchers between 500AD and 1500AD have no idea they were wasting their efforts by going in the wrong direction and not aware that they have no chance of making any meaningful progress. How can we prevent repeat of this kind of huge waste in the 21st century (and even greater lost opportunity costs)?

Many of the researchers or scientists certainly could make substantial contribution to the advancement of scientific and technological advancement, if the scientific progress were not sidetracked into wrong path. Instead they end up wasting their hard work and life time effort in a wrong path having no possibility of making any meaning full contribution, due to the undocumented error committed by earlier generations.

Who should be held responsible for such huge waste of research effort? Ancient philosophers such as Aristotle and Ptolemy for not documenting their assumption “the Earth is static” is not yet proven? The researchers between 500AD and 1500AD, who were trying to advance mankind’s knowledge by relying on earlier works, without questioning and ascertaining the validity of the earlier works?

Since these researchers wasted their effort and lost their valuable time, so I feel and they are also victims, so must not be held responsible. I believe, any researcher making a genuine mistake must not be blamed. If the mistakes made were genuine (e.g. unavoidable due the best known knowledge available at that time), so it is unfair to blame any one.

But if similar error were to repeat in 21st century, I am sure certain researchers must be held responsible for wasting valuable research efforts of researchers and blocking scientific and technological progress. How any researcher would feel, if he wastes his valuable time in the wrong path (due to the negligence of earlier generations). They could have made major contributions, if the research is moving in the right path? Newton and other made significant contributions to Heliocentric model, since the error was fixed paving the way in the right direction. But Newton and others were to born 100 years earlier, what kind of contribution he or others could make to geocentric model?

Isn’t it a pity, if a great scientist or researcher end up wasting his effort in wrong path, who could have made great contribution when invested in the right path? Imagine, if a major scientific discipline sidetracked due to such error and ended up in a crisis and stuck in wrong path for 3 to 4 decades. How many great scientist or researcher could not contribute to technological progress due to the error (otherwise could have made huge contributions).

I believe, no one should be blamed, if his/her mistake was genuine and unintentional. For example, philosophers thousand years ago when they were students indoctrinated into the altered reality (e.g. see FIG-1 in http://real-software-components.com/more_docs/epicyles_facts.html).

This kind of mistake must not be repeated in the21st century. This kind of mistake can’t repeat, if proven scientific processes and rules are followed. Any mistake can be acceptable, if it is genuine or done without knowing (and while not being negligent). However certain researchers must be held responsible, if the error was made or sustained due to their negligence. How do we define negligence? How can we determine, who are negligent?

Isn’t it negligent, if a scientist and researcher knowingly violates or continue to violate proven scientific processes and rules, even after being made aware of untested axioms at the root? Today in 21st century, can a scientist in a position of influence plead ignorance to basic scientific processes and rules? Can he justify violating proven scientific processes and rules by using baseless or unsubstantiated excuses (e.g. using invalid or unproven chain of reasons)? I feel, the researchers and scientists must accept responsibility, if they ignore clear warnings and information (e.g. proof of violation of scientific process or rules) due to their prejudice or by giving unsubstantiated excuses.

I feel, it is sacred duty of any researcher and scientist to investigate Truth and strictly fallow proven scientific process/rules. Can we accept that it is a genuine mistake, if they ignore or evade their sacred responsibility to investigate truth, when clear and convincing evidence is openly presented to them? Is it acceptable, if they justify violations of basic scientific processes/rules by giving excuses (e.g. a chine of invalid or unproven reasons)?

Mustn’t they share the blame, if they continue promote prevailing possible flawed paradigm by ignoring the information and evidence bring to their notice? Can they refuse to prove the validity of untested axioms at the root of the prevailing possible flawed paradigm? Can they refuse to investigate the evidence provided to expose flawed axioms at the root of prevailing flawed paradigm?

If that is the case, don’t they have obligation to also disclose the information and evidence bring to their notice, when they are teaching the prevailing paradigm to next generation of students or researchers (e.g. future Newtons), who might end up wasting their future research effort? Shouldn’t they provide the information to the students and future researchers, so that, each of the student can make educated choice, which way he/her wish to do research?

I feel, we must do everything to prevent the same mistake in the 1st century. It was a genuine mistake thousand years ago. But can similar error be a genuine mistake in the 21st century? One way to prevent repeating similar mistake (and associated huge waste and lost opportunity costs) is to assign blame to researchers, whose mistakes are not genuine (but negligence).

My objective is to prevent repeat of similar mistake and waste in the 21st century. Hence what kinds of mistakes are no longer genuine in the 21st century based on the valuable lessons mankind learned during past 2000 years? Who should be held responsible for similar scientific crisis in 21st century and resultant sustained waste of the efforts of thousands of researchers and scientists (and lost opportunity costs)? I am sure, no one wants future Newton’s waste their life time effort for advancing Geocentric paradigm.

Best Regards,

Raju Chiluvuri

Thursday, November 19, 2015

How a scientific Truth can be proved, if everyone try to ignore, cover-up or evade necessary validation by giving every possible excuse?


What is the reality of CBD of physical products? What is the true essence and nature of Component Based Design? For example, what are the properties or aspects that are uniquely and universally shared by every known design of physical products, including the design and development of one of a kind physical products such as an experimental spacecraft or prototype of a next generation Jet-fighter? Why almost every software expert insists that it is impossible to invent real CBSD (CBD for software), without even knowing what is real CBSD? Mankind designing and building hundreds of newly invented products using CBD. For example, let’s see an example that illustrates the reality of CBD: https://www.youtube.com/watch?v=hc5e5cYdshI

Please pay attention to 15 seconds bit starting at 1 minute 55 seconds. Let me paraphrase the 15 seconds bit, as I understood it: Essential purpose of the real CBD or engineering is ability to look, feel and test each component independently to tweak and optimize individually for making each component as best as it can be. Periodically bring the components together to build product for making sure that (a) each of them properly collaborating with other parts, and (b) all the components are fulfilling their respective roles as intended for proper operation of the container product.

Let me define my understanding of reality of true essence and essential aspect of ideal CBD: Implementing over 95% features & functionality in physical replaceable components. The term replaceable component imply any component that can be un-plugged (or disassembled), for example to redesign and test individually outside of the product and re-plugged-in (or reassembled) into the container component/product.

Each replaceable component is 100% free from spaghetti code (or design), because each replaceable component can be redesigned (e.g. even little-by-little) or refactored and tested individually (e.g. to make it as best as it can be and/or to fit exactly and function as expected when assembled into product) without any need for seeing even a single line of internal code (or design) implemented for any other component or container application/product. Over 95% of the code (or design) of the product is free from spaghetti code, since over 95% of the features and functionality of the application or product is implemented in such replaceable components.

Hence true essence of the CBD is eliminating spaghetti code (or design). Over 90% of the features and functionality of almost every known large physical product is implemented in physical functional components, where each component is designed and refined individually (free from spaghetti code/design). It is not necessary that even a single large functional component in the physical product is reusable, standardized or conformed to any component model attributed to so called software components.

Most experts insist software is unique and/or different, without giving any valid reason or explain why and what manner. Designers of every new product need to tweak most of the parts (i.e. functionality and features) continuously and/or frequently until prototype is functioning and performing as expected. So it is not unique to software products. The difference is designers of physical products are doing the tweaks to over 90% of the functionality and features free from spaghetti code/design. Only designers of software unnecessarily burdened with the spaghetti code/design.

No software expert can answer what is the true essence of CBD, but almost every one insist that real CBD for software is impossible. Why is it not possible to achieve real CBD for software, if real CBD for software is to implementing 90% of the functionality and features in such replaceable components? No replaceable component (including the necessary communication code for allowing collaboration between this component and other parts of the application) requires more than 3 to 5 lines to plug-in and removing the 3 to 5 lines must effectively remove the component.

It is impossible to find a valid reason why it is not possible to achieve real CBSD. On the other hand, I can demonstrate hundreds of replaceable components and hierarchies of replaceable components to prove that real CBSD is possible. Almost every researcher and scientist I contacted refuse to see proof to know the reality/Truth. Any scientific Truth/reality or engineering invention (if it is real) can withstand rigorous validation and prevail, but how a scientific Truth can prevail, if everyone try to ignore, try to cover-up or evade necessary validation by giving every possible excuse?

We created the first and the only GUI-API that is capable of creating replaceable GUI components for building complex hierarchies of replaceable components to achieve real CBD for software. So even junior Java programmers can achieve real CBSD for RIA (Rich Internet Applications) with little or no help from us. Achieving real CBSD for RIA help designers gain experience and knowledge about the innate nature and essential properties uniquely and universally shared by each and every known physical functional component, for example, to positively identify features and functionality that can be implemented as equivalent replaceable software components for achieving real CBSD for non-GUI applications as well.

Best Regards,
Raju

Monday, November 2, 2015

Why software scientists refusing to investigate simple and obvious facts (that are found everywhere all around us) to discover reality?


Reality is immutable and never changes. Duty of scientists is pursuit of absolute Truths for discovering the reality (a set of Truths and laws of nature that are proven). Mankind’s perception of reality changed many times. For example, several thousand years ago mankind believed that the Earth is flat. Later 2000 years ago mankind believed that the Earth is static. Until 500 years ago this flawed axiom (i.e. “The Earth is static” considered self-evident truth) shaped our perception of reality (a paradoxical paradigm), which was altered reality filled with retrograde motions and epicycles.

            Philosophers had no problem accepting untested axiom (a Lie: the Earth is static) as self-evident Truth (even though they have no evidence any one ever validated it). But it had taken over 100 years to accept the Truth “the Sun is at the centre”. This Truth faced huge resistance and undergone most rigorous validation.

            Let me introduce reality of CBD (Component Based Development) using a small example. Mankind each year inventing and building 100s of new kind of products around the world. For example, one example is trying to create artificial kidney in this video: http://real-software-components.com/CBD/CBD_of_new_product.html.

Please kindly pay attention to 15 seconds bit starting at 1 minute 55 seconds. Let me paraphrase the 15 seconds bit, as I understood it: Essential purpose of the real component-based design is ability to look, feel & test each component independently to optimize individually for making each component as best as it can be. Periodically bring the components together to build product for making sure that (a) each of them properly collaborating with other parts, and (b) all the components are fulfilling their respective roles as intended for proper operation of the container product.

Please notice the reality of CBD: There is no spaghetti code. Each component can be refined individually and tested outside. Over 90% of the features and functionality is implemented in such components. Any component can be refined and tested individually free from spaghetti code. That is, without any need to see internal design or single line of code of any other component. Hence over 90% of the design is free from spaghetti code. Each component is custom designed to fit perfectly in just one product model, so no component is reusable, standardized or conform to any of the so called component models erroneously attributed to the software components.

Any true scientific fact, concept or discovery must satisfy two conditions (1) it must not contradict the reality we all know in the real world and (2) it can’t be falsified, while being highly falsifiable. In light of these observations, let me define the reality of ideal CBD (Component Based Design) for large physical products: The reality of an ideal CBD for physical products is implementing over 90% of the functionality and features in replaceable components, where each component can be refined and tested individually (free from spaghetti code). The physical product is evolved (or redesigned) by evolving (or redesigning) a set of replaceable components.

Nether complexity nor uniqueness (e.g. of a one of a kind product such as an experimental spacecraft or prototype of a next generation jet-fighter) can prevent designers from achieving 90% modularity. That is, the reality of CBS is implementing 90% features and functionality in replaceable components, where each component is free from spaghetti code (i.e. designer of any component never forced to see even a single line of code implemented inside another component). It is not necessary that even a single component in the product is replaceable, standardized or conform to any so called component models (erroneously attributed for software components).

Unfortunately the perception of reality for software components and CBD for software has been shaped by fundamentally flawed definitions and interpretation of the reality: When Douglas McIlroy proposed building products by assembling COTS (Commercially off the Shelf) parts as we build computers, it was just a proposal – a desire or wishful thinking. It is not a scientific discovery (like the Sun at the centre). There is no evidence any one ever tested its validity. But researchers in late 1960s considered that it is a self-evident truth, and today software researchers have been relying on this as if it is proven fact. Dr. Brad Cox proposed software-ICs in 1980s.

Because of this altered perception researchers completely lost their ability to even see obvious facts and apply reason to discover the reality. It is nice to have software-ICs, but is software-ICs possible or reality? Inventing cold fusion is nice, but can we discover laws of nature that can make it reality? I don’t know about the cold fusion, but I am sure that software-ICs as intended can never be a reality.

I requested many researchers to investigate the reality. Is Software-ICs reality? Is it possible to achieve Software-ICs for any other kind of physical product (e.g. automobiles or Airplanes), where it is not possible to use software and applications for competitive differentiation from competing products? The physical products such as cars must use core components (e.g. engine, gear-box or powertrain) for competitive differentiation from competing products.

For example, the makers or cars, jet-fighters or other products custom design core components for competitive differentiation. For example, even when they are relying on third party component vendor for a component, they work closely with the component vendor to custom design the part to perfectly fit juts one product model. For example, Boeing works closely with Rolls Royce or Pratt and Whitney to build custom engine. Likewise, Honda company works closely with makers of various non-core components such as break-pads to custom build the break-pads (to perfectly fit just one model). One can notice this kind of reality of CBD everywhere all around us.

Software researchers argue that software is unique, different and must undergo constantan changes. Why is it any different from the above example for Artificial Kidney? They must also constantly change each of the components until the whole product works. Only difference is, they don’t have spaghetti code. That is, designer of any component can refine and test his component individually, without being forced to see even a single line of code implemented internally for any other component.

Another reality is: The automobile engineers just deal with many product models within just one product family (automobile product family). Likewise, hardware engineers deals with many kinds of product models within just on product family (i.e. families such as computer or smart-phone). In software, we deal with hundreds of product families ranging from compilers, OS, Video games to MS-Office. It is impossible to reuse core components (e.g. engine or gear-box) for automobile product family can’t be reused in any other product from another product family (e.g. PC or AC). Likewise, core components for compiler product family can’t be used in any other product from another product family such as Video games.

This kind of reality about the CBD of physical products is everywhere all around us. All I am asking is to investigate such simple and obvious facts to discover the reality. Isn’t is obvious that it is impossible to achieve Software-ICs, where it is not possible to use OS and applications for competitive differentiation? Can we invent COTS that allow us to build new products (e.g. Artificial Kidney) that is not yet invented? Is such COTS (e.g. Software-ICs) for not yet invented physical products or that can be readily reusable across hundreds of families of physical products?

Often, designing each new software product is more like inventing a new physical product such as designing one of a kind spacecraft. It is desirable to eliminate the spaghetti code, because the features and functionality must be constantly changed until each of the components and the whole product satisfies the unique and exact requirements. Furthermore, this product must be changed many time in the future to make each successive release. Over 90% of the cost, time and complexity can be eliminated for making large changes by eliminating the spaghetti code.

What is the reason for spaghetti code, even one need to satisfy unique and exact needs by iteratively changing each of the parts little-by-little (e.g. see Artificial Kidney)? Nothing in the reality of CBD for physical products can prevent software designers from implementing 90% of the features and functionality is replaceable components for achieving real CBD for software. Unfortunately every software expert insists that it is impossible to achieve real CBD, without knowing what it is.

How can anyone insist something is impossible, without knowing absolutely nothing and clueless about it? It is impossible to find evidence that any one even ever tried to investigate, what is the true essence of CBD for physical products, such as what is the most useful and striking aspect that is uniquely and universally shared by every known design of large CBD product in the world.

In other words, what are the striking aspects that are unique to the CBD of physical products and universally shared not only by the designers of product models of mature product families (e.g. automobiles) and countless models of crowded product families (e.g. smart-phones), but also the designers of one-of-a-kind product models such as an experimental spacecraft, prototype of next generation jet-fighter or a new kind of fuel-cell or nuclear powered locomotive. It is impossible to find any evidence that any one ever even tried to investigate for answers to this question. But every one insists it is impossible to achieve real CBD for software, without even knowing what it is. Also most of them bluntly refusing to even know what it is.

I am sure, it is possible to achieve the goal of implementing 90% of the features and functionality in replaceable components for any software application. I am openly offering first GUI library that allow anyone to create real software components for achieving real CBD for software. The experience and insights gained while building GUI applications by assembling real software components help software designers discover the truth by experiencing reality. Also I believe, this reality will be more useful than software-ICs, especially for building large software applications.

How do we know and mankind proved, the axiom “the Earth is static” is wrong and the axiom “the Sun is at centre” is correct? Because the second axiom helped us to make subsequent discoveries that include Universal gravity and Newton’s three laws of motion. The three laws of Kepler and Universal gravity with the help of Calculus allowed mankind to create a consistent mathematical model.

These and many other unexpected discoveries (e.g. discovery of the Pluto due to inexplicable perturbations in the orbit of Uranus) conclusively proved that our understanding of reality is progressing on the right path. Of course, many other discoveries such as Theory of relativity shaping our understanding of reality, which hopefully taking our understanding closer and closer to the absolute Truth.

In software, we need to discover reality to define the realistic goals. Achieving Software-ICs is not realistic. On the other hand, it is impossible to find a valid reason why it is not possible to achieve 90% modularity. Today not even 10% of the features and functionality of any large software application is modularized as the way real physical functional components modularize the design of that large physical products.

P.S: Sample description for CBD application at: http://real-software-components.com/CBD/City_GIS.html. An example CBD application for 5 cities can be found here at: http://www.pioneer-soft.com/#/realairtraffic. Please notice Airplanes and Ambulances moving and clicking on Airplane gives real-time data. The shapes and colours indicate various states. Few other such features are not shown.

Best Regards,
Raju Chiluvuri

Wednesday, August 12, 2015

What are the root causes that are seeds for the Scientific Crises?


In real science, anything not having conclusive proof must be considered as no more than an assumption. A real proof requires irrefutable rational reasoning backed by predictable and repeatable empirical evidence.

            The root cause of one of the most famous scientific crisis resulted from evolving mankind’s knowledge by relying on flawed untested assumption ‘the Earth is static at the centre’. This axiom or postulation was considered self-evident fact needs no proof. No one considered that it is an assumption and no one consciously aware (and could have named it ) that this axiom was at the root of mankind’s perception of reality (i.e. About 500 years ago, this reality was a complex paradoxical paradigm comprising countless concepts backed by meticulously documented retrograde motions and epicycles constructed for over 1000 years).

            Of course, root cause was untested and unproven axiom “The Earth Was Static at the Centre”, which was widely accepted as self-evident Truth 2000 years ago. Can this kind of thing happen in 21st century? Of course, I am sure there could be other such scientific crises in existence even in 21st century? Many experts feel that this kind of thing can’t happen today, because mankind’s scientific knowledge, processes and expertise advanced substantially during past 500 years. I disagree.

            I discovered such root cause for scientific crisis in the field of computer science. An important sub-field of computer science is CBSE (Component Based Software Engineering). At the root of CBSE there exists such axioms or postulations, which were considered self-evident Truths 50 years ago (so required no proof or even documenting for future generations to know for validation). That is, 50 years back software researchers assumed that it is impossible to invent real-software-components equivalent to the physical functional components for achieving real CBSD (Component Based Software Design for Software Products), where real CBSD must be equivalent to the CBD of physical products (e.g. one–of-a-kind experimental jet fighter or prototype of a spacecraft).

            It was a reasonable assumption when leading edge programming languages were assembly languages and FORTRAN. Structured programming languages were a distant dream. Things like Object-Oriented Programming languages and GUI components (that are more conducive for real-CBSD) were beyond imagination. So they started using the term ‘software components’ as an alias to useful software parts. In other words, they defined each kind of software components is a kind software parts either having certain useful properties (e.g. reusable or standardised) or conform to a so called software model.

            Today no one even aware of the root cause (e.g. axioms) for such definitions for software components. Today if you ask any one, why do we need many different and strange descriptions for software components and CBD for software products, they give excuses such as software is unique and/or different, without giving any proof or justification for why and what manner software design is deferent from the design of one–of-a-kind products such as experimental jet fighter or prototype of a spacecraft.

            Why can’t we invent software components that are equivalent to the physical functional components for achieving real CBSD, where real CBSD is equivalent to the physical products?

            To invent real software components (that are equivalent to the physical functional components) requires discovering (i) accurate description for the physical functional components and (ii) accurate description CBD of physical products (e.g. for achieving the real CBSD that is equivalent to the CBD of physical products). Best way for defining an accurate description for any physical being (e.g. a specie) is by finding a set of essential properties uniquely and universally shared by each and every specimen belong to the specie (e.g. to positively identify each of the specimen, weather the specimen belongs the specie or not). Likewise, accurate description for CBD of physical products requires finding essential aspects uniquely and universally shared the CBD of each and every known physical product.

            Many experts come up with strange excuses, when I ask why we can’t invent that software components that are equivalent to the physical functional components by discovering the essential properties of the physical functional components. Mankind’s scientific knowledge comprises accurate descriptions for countless complex and physical beings or species that are 20 time more complex than physical functional components, such as in fields ranging from biology, zoology or scientific discipline of microbiology such as virology, mycology, parasitology, and bacteriology. They insist that it is impossible to find such essential properties for physical functional components, without ever trying or showing any evidence that any one ever tried.

           
If one deeply investigates the root cause of each of the scientific crises, he end up finding a hidden flawed axiom at its root, which in past considered self-evident truth and no one ever tried to validate. Seeds for a scientific crisis would be sowed when researchers pick an axiom based on their senses or instincts, without either documenting or finding valid scientific proof. Mankind followed their collective senses, when they assumed that the Earth is static. Researchers followed their then collective instinct, when they defined each kind of useful software parts are a kind of software components. It was beyond their wildest imagination 50 years ago that it might be possible to invent software components that are equivalent to the physical functional components for achieving real-CBSD, where real-CBSD is equivalent the CBD of physical products. Even structured programming was distant possibility 50 years ago and Object oriented programming and GUI library was not even contemplated.

This paper provides the root causes for any scientific crisis. This also provided a proof that kind of error could possible even in the 21st century. It is the responsibility of the research community to investigate the Truth, if any lone researchers discovers a root axiom and no one can find any evidence that the root axiom was validated. Insulting or snubbing the lone researcher for questioning the validity of such axioms is not called for and unbecoming of a scientist or researcher. In real science, no axiom is self-evident Truth until the axiom is tested and validated.

Who discovered that ‘’the Earth is static’?  Ans: No one. There is no proof and no one tried to proof it. Who discovered that the Sun is at the centre? Ans: Copernicus. Who discovered any kind of useful parts is a kind of component? And: No One. They why researchers have been blindly defending the so called software components?


Best Regards,

Raju

Sunday, June 7, 2015

Who is better: the 21st century software researchers or 16th century scientists who felt that it was a blasphemy to say ‘the Earth is moving’?


Is it a blasphemy to ask respected researchers to discover objective facts about the quintessential nature of the large physical functional components (e.g. essential properties uniquely and universally shared by each and every known physical functional component) and essential aspects uniquely and universally shared by any CBD (Component Based Design) for one of a kind physical products such as building a working prototype of a next generation Jet-fighter, nuclear powered locomotive engine or spacecraft?

It is shameful and scandalous that even in 21st century modern scientific and engineering disciplines (originated just about 50 years ago from mid 20th century) are rooted in myths, wishful thinking and fantasies (e.g. that forced researchers to practice 21st century alchemy).

Mankind believed until 500 year ago that “the Earth is static (at the center)”. Mankind evolved a complex paradox (altered reality) for thousands of years by relying on this unproven myth (e.g. by considering that it is an inalienable Truth).

Which planet is at the center? Who made the great discovery “the Earth is static”? Who verified this discovery, before accepting and relying on it as an inalienable Truth for advancing the mankind’s knowledge for 1000 years? No one asked this simple question: Is there any proof to show that “the Earth is static”?

Who discovered software parts having useful properties (e.g. reusable or standardized) are real components for software for achieving real CBD (Component Based Design) for software products? Obviously this is in clear contradiction to our knowledge facts and the reality we know about the physical functional components and CBD of new and one of a kind physical products (e.g. experimental spacecraft and prototype of a next generation jet fighter).

But no one asked this simple question such as: Is there any proof to show that it is a Truth before relying on this myth and wasting several decades? What are physical functional components (e.g. what are the essential properties uniquely and universally shared by each and every known physical functional component)? What is CBD for physical products (e.g. what are the essential aspects uniquely and universally shared by each and every known CBD of physical products)?

Any one ever proved that it is impossible to find such properties/aspects? If the answer is no, any one ever proved that it is impossible to invent true software components (having the essential properties) equivalent to the physical functional components? To prove that such newly invented components are real, they must be able to achieve real CBSD (CBD for software products), where the real CBSD must share the essential aspects of real CBD for physical products?

Today it is even impossible to find any one even ever tried to discover such properties/aspects. When computer science was in infancy 50 years ago, a committee decided that reusable software parts are software components (without any basis and reality). The committee set the goal for the CBSE is to build software products by assembling reusable components from 3rd party component vendors as mankind has been building the computers by assembling COTS (Commercially Off The Shelf) components by ignoring the countless realities. For example, computer engineers deal with just one product family (i.e. computers) and use software for competitive differentiation, while software engineers need to deal with numerous and ever expanding product families such as OSs, compilers, Games, MS-Office, ERP or browsers etc.

Mankind wasted many centuries by relying on untested myth that “the Earth is static”. We all know that, no one proved that it is ‘the Earth is static’. It was just a myth originated thousands of years ago and passed on to each of the successive generations.

Mankind already wasted few decades by relying on hidden untested and undocumented myths by using baseless excuses such as software is unique and/or different. How many more decades mankind can afford to waste by relying on such baseless myths created in the formative years of computer science and passed on to each of the successive generation of researchers, who are forced to practice 21st century alchemy?

Is it possible to invent reusable (i.e. COTS) physical functional components for build not yet invented or new one of a kind physical product by assembling such COTS? Then how is it possible to invent such software components to build software products for ever expanding software product families? Isn’t it equivalent to the 21st century alchemy?

The discovery that “the Sun is at the center” resulted in a radically different reality, which comprising countless concepts that are in clear contradiction (e.g. diagonally opposite) to previously undisputed geocentric paradox. Now we know that it was foolish to use widely accepted concepts of geocentric paradox to discredit the Truths that were basis for then fledgling new heliocentric paradigm.

Likewise discovery of Truth (e.g. the essential properties/aspects) would result in a new radically different reality, which would comprise of countless concepts that will be in clear contradiction (e.g. diagonally opposite) to existing undisputed CBSE paradox. It is foolish to use widely accepted concepts of existing CBSE paradox to discredit the Truths that are at the root of fledgling paradigm that can be evolved by relying on the Truths.

Since the existing CBSE paradox evolved from myths (e.g. such as it is impossible to invent real software components equivalent to the physical functional components), no concept of the existing CBSE paradigm can be used to contradict the Truths (if the truths are in contradiction to the myths at the root of the existing CBSE paradox). It is an invalid circular logic to use the concepts of the existing CBSE paradox to defend the myths at the root of the existing CBSE paradox (e.g. to discredit the Truths of new proposed fledgling paradigm).

Galileo Galilee … I do not feel obliged to believe that the same God who has endowed us with sense, reason, and intellect has intended us to forgo their use.

Computer science needs scientists not yet forgo sense, reason, and intellect. How and where can I find such experts? I can understand why the 16th century scientists believed that the “Earth is static”. Because they lived all their life on the Earth and not only themselves but many generations found no reason to suspect that “the Earth is moving (around any planet)”. But what reasons software researchers have to blindly defend the myths conceived 50 years ago about the software components and CBSE. Many experts not only blindly following the myths but also ferociously defending the myths conceived 50 years ago, even though countless concepts related to the software components and CBSE are in clear contradiction to the reality we know about the physical functional components and CBD of physical products.

Best Regards,

Raju