Tuesday, April 27, 2010

Why Space (Distance) Is an Illusion

Abstract

In my previous article, Why Einstein's Physics Is Crap, I argued that spacetime physics is crackpottery for three reasons: a time dimension makes motion impossible; continuous structures lead to an infinite regress; and the relativity of motion and position leads to a self-referential universe. I concluded that Einstein's physics was crap and that the reason it has lasted for so long is that physicists are a bunch of gutless cowards who go along with the mainstream in order to safeguard their careers. In this article (which I adapted from an old essay), I continue my merciless attack on Einstein's physics by showing that the concept of space is illogical.

The Space Concept

Is there such a thing as a space in which we exist and move? Is space a collection of positions or points? Does matter occupy space? Ever since Newton legitimized the idea of space most physicists have believed in some sort of physical space existing separately from matter. To Newton, space was absolute. Einstein's revolution did not do away with the idea of an independent physical space but transformed it into the concept of spacetime.

The concept of a space existing separately from matter has not been without its detractors. Sir Isaac's nemesis, none other than the great German mathematician and philosopher Gottfried Leibniz, rejected the concept of space, absolute or otherwise. Leibniz wrote that "space is nothing else but an order of the existence of things, observed as existing together; and therefore the fiction of a material universe, moving forward in an empty space cannot be admitted." Leibniz apparently understood that the position of an object is not the property of an extrinsic space but an intrinsic property of the object. These properties, taken together, form an abstract order that he called space. I fully agree with Leibniz on this issue.

Why Is Space an Illusion?

The short answer it that the existence of space leads to an infinite regress. Over the years, I have found that almost everything that is fundamentally wrong with classical physics has to do with infinite regress. Note that physical space is defined as a collection of positions existing apart from particles. The idea is that, in order for any physical entity or property to exist, it must exist at a specific position in space. But if a position is a physical entity that exists, it too, must exist at a specific position. In other words, if space exists, where is it? One can posit a meta-space for space, and a meta-meta-space for the meta-space, but this quickly turns into an infinite regress. The only possible conclusion is that there is no such thing as space. It is an illusion of perception. That is, it is the way the brain organizes its sensory universe.

Consequences of Nonspatiality

There are other equally irrefutable proofs of the non-existence of space but the one above is sufficient. The most immediate consequence of nonspatiality is that all physical properties in the universe are absolute. The relative is abstract (in our minds) and is dependent on the absolute. The reason is that, since there is no space, all properties, including position, are intrinsic to (belong to) individual particles. They are absolute by virtue of being intrinsic. We've been told that absolute motion and position do not exist. The truth is that the relative is abstract and only the absolute exists.

By far, the most exciting consequence of nonspatiality is that it should be possible for a particle to move almost instantly from one position to any other without going through the intervening positions. Normally a particle moves by making a quantum jump, i.e., its intrinsic positional property changes from one discrete value to another. However, there is no reason to suppose that the positional property of a particle cannot change by amounts larger than the fundamental value. Note that this is not the same as moving faster than light. Superluminal motion only means that a quantum jump happens at a speed faster than c. This is not the case with long distance jumps because the particle does not travel through the distance between departure and destination positions.

What is even more exciting about this is that it opens up the future possibility of visiting other star systems and even other galaxies hundreds of light years away without having to go into stasis during the voyage. Closer to home, long distance jump technologies would revolutionize our way of life by eliminating conventional modes of transportation. Imagine waking up in New York City and having breakfast in Paris or Rome and lunch in Rio de Janeiro! What kind of world would we have?

See Also:

Why Einstein's Physics Is Crap
Nasty Little Truth About Spacetime Physics
Nothing Can Move in Spacetime
Physics: The Problem with Motion

Saturday, April 24, 2010

Why the FAA's Next Generation Air Traffic Control System Will Fail

The FAA Is at it Again

According to an Associated Press article, the FAA's NextGen air traffic control system is being delayed on account of glitches in a $2.1 billion crucial software subsystem. Why am I not surprised? Many years ago, I contacted the FAA about my ideas on software reliability and they treated me like I was a filthy bum in Beverly Hills. I am not callous enough to say that the FAA's current troubles serve them right and I am not one to say 'I told you so' but I did. It's kind of funny that both Lockheed Martin and Raytheon, who are major contractors to the FAA for NextGen, have visited my blog many times over the years. Somehow I doubt that either of these giant defense firms have incorporated my ideas into NextGen. That's too bad.

Why NextGen Will Fail

I predict that NextGen will fail. And it will fail miserably (and maybe even catastrophically) unless the FAA has the guts to do the right thing. Why will it fail? Because the baby boomers have shot computing in the foot in the last century. That's why. The hacker culture of the boomer generation is usually credited with launching the computer revolution in the early eighties but nothing could be further from the truth. What launched the revolution was the introduction of a highly empowering new technology called Very Large Scale Integration (VLSI). The Von Neumann architecture was already well-known in those days. Opportunistic computer geeks were suddenly free to fully abandon discrete transistor technology and began using VLSI to create all sorts of cheap processors and computers based on Von Neumann's old ideas.

What the boomer geeks really gave us is the cult of Turing. They forced everyone in the business to worship the Turing machine as God's gift to humanity. The result is that we are now faced with a nasty problem known as the parallel programming crisis. This is on top of the software reliability and productivity crises that have been wreaking havoc from the beginning. So now, with the old geeks still in charge of computer science and the computer industry, the FAA, Toyota and the rest of society are paying a heavy price for their mess.

There is a Solution

It is not too late for the FAA to do the right thing. There is a way to build bug-free code regardless of complexity. Just don't ask the boomer geeks because they don't know how. They're too busy worshiping the ground Turing walked on. And they're liable to lynch you if you say anything against their hero. But guess what? Turing's antiquated ideas are useless in the search for a solution. In fact, the Turing computing model is the problem, not the solution. It's time for the boomer geeks to admit that they have failed. They should gracefully retire and let a new generation have their turn at the wheel. Click on the links at the end of this article for more on how to build reliable software applications.

What the FAA Should Do

There is no question that the FAA's NextGen effort will fail because of their chosen software model. Current approaches to software construction are crap, primarily because deterministic timing is not an inherent and fundamental part of the programming model. As a result, complex software systems used for automation become unreliable as their complexity increases. Since NextGen falls into the category of extremely complex software systems, it's a guarantee that it will be riddled with bugs, including potentially dangerous and/or costly bugs. However, I would not advise the FAA to abandon their current overall design.

I believe that most of the current NextGen software and design documents can serve as the specs for a new reliable system based on the COSA software model. Every safety-critical NextGen application, including all avionics software, should be (re)programmed in COSA and hosted on a computer running the COSA OS. Existing non-critical applications can continue to run on existing computers plugged into the network as a way to keep costs down, if desired. With the right team in place, I believe that the entire NextGen system, as it stands, can be rebuilt within five years. The new COSA-based NextGen system would be fully and easily upgradeable without fear of introducing new bugs into the system and would provide rock-solid operation for years to come. There is no doubt in my mind that it is possible to use COSA to fully automate air traffic control before the end of the decade. Even the aircrafts can become self-piloting, as they should be. Let us hope that FAA administrators can read the writing on the wall. But I am not holding my breath.

See Also:

How to Construct 100% Bug-Free Software
How to Solve the Parallel Programming Crisis
COSA: A New Kind of Programming
The COSA Software Model
Why Software Is Bad and What We Can Do to Fix It

Why Einstein's Physics Is Crap, Part III

Part I, II, III

Abstract

In Part II, I said that Einstein's physics is crap because it calls for the existence of continuity, a pseudoscientific concept. I argued that continuous structures lead to an infinite regress. This is so obvious that it boggles the mind that physicists can be so stupid. In this post I explain why the incessant mantra in the relativist community that there is only relative motion and position in the universe is so easy to refute that even children will understand it.

The Crackpottery of Relativity

We have all been taught by relativists that there is no such thing as absolute motion or position or that every motion and position in the universe are relative. This unsubstantiated belief, which I will call relativity for simplicity's sake, has been around for centuries, even before the advent of Albert Einstein and his spacetime theories. It was not until early in the twentieth century, however, that relativity became in vogue. Nowadays most physicists consider the concept of absolute motion to be no more credible than the flat earth. I originally wrote three proofs to show that relativity is bogus. I have since decided that it's an overkill. One proof is enough.

Amazingly Simple Proof That Relativity Is Bogus

If all positions are relative, then we have a self-referential system in which every position is ultimately relative to itself. Since every position is relative to every other position, the system is self-referential. That's it. As simple as that. Since relativists like to talk in terms of frames of reference, you can replace 'position' above with 'frame of reference', if you wish. Relativity amounts to saying things like, "you are as tall as you are" or "this sound is as loud as itself" or "pick yourself up by your own bootstraps." Of course this is silly but this is the sort of silliness we have to believe in if we accept relativity.

The Nasty Little Truth

The nasty little truth turns out to be the exact opposite of what we have been taught to believe. The only type of motion or position in the universe is absolute. The relative is abstract and dependent on the absolute. Relativity is part of what I have been calling chicken feather voodoo physics, because if we subscribe to it, we have to believe that things happen as if by magic.

The Relativist's Objection

Relativists will immediately retort that if it cannot be measured or observed, it does not exist. Never mind for now that physics is bloated with concepts and models (time dimension, spacetime, curled up dimensions, etc...) that are impossible to test empirically.

First of all, it is a misconception that we measure the relative directly. We perceive only absolute sensations (such as photons impinging on the light detectors in the retina) and we may interpret them as meaning that object A is moving relative to body B. Sure, it's a logical and sensible interpretation but it is an indirect one nonetheless. It must be inferred.

Second, a truth that can be deduced logically is just as valid as a truth that can be experienced first hand. Is it not more beneficial to know the fundamental truth of absolute motion than it is to bury one's head in the sand and act as if it did not exist? Which is better, ignorance or knowledge? And who knows what new insights will come out of it?

Absolute Space?

Does this mean that one should believe in an absolute space or reference frame à la Newton? Absolutely not. In the physical universe there exist only particles, their properties and their interactions. Since all properties are intrinsic to particles, they are therefore absolute (independent) by virtue of being intrinsic. Besides, the absolute does not need a reference frame to be relative to. That is the definition of the relative. Absolute means independent. In an upcoming article, I will explain why space (distance) is a perceptual illusion.

Conclusion

It should be obvious that Einstein's physics is not physics at all. It is just a bunch of equations for predicting the motion of particles. As such, like Newtonian physics before it, it explains nothing. It is no better in this regard than Ptolemaic epicycles. That would not be such a bad thing but what really turned Einstein's physics into total crap is all the bullshit claims that relativists (including Einstein) have made and continue to make on its behalf. Using a mathematical formula for the prediction of motion in order to conjure up voodoo crap like wormholes, black holes, big bangs and time travel is the ultimate form of crackpottery.

What is truly amazing about Einstein's physics is the ease with which it can be demolished. The crackpottery is blatant and in your face. So why did it last so long and why is it still a scientific theory? I can only think of two reasons. First, physicists are, for the most part, a bunch of gutless cowards and ass kissers who go along with the flow for fear of being ostracized. Second, somehow the physics community has managed to convince the average lay person into believing that he or she is too stupid to understand physics. This is not unlike the way the priests and wizards of old used to bullshit the people. I think it's time for the public to wake up and realize that it has been duped. I think it is time for the public to rise up and demand to know why their money is being spent on pseudoscientific crap. It's time to fire the crackpots and the pretenders.

See Also:

Nasty Little Truth About Spacetime Physics
Nothing Can Move in Spacetime
Physics: The Problem with Motion
Why Space (Distance) Is an Illusion

Thursday, April 22, 2010

Why Einstein's Physics Is Crap, Part II

Part I, II, III

Abstract

In Part I, I wrote that the requirement of a time dimension in Einstein's physics is absurd because a time dimension makes motion impossible. In this post, I will argue that the universe is necessarily discrete. Therefore, the use of continuous structures in Einstein's physics is pure crackpottery.

Why Is the Universe Discrete?

The short answer is that a continuous universe (the opposite of a discrete universe) leads to an infinite regress. Why? Because continuity implies infinite divisibility, as simple as that. The last time I said this (see Sitting on a Mountain of Crap, Wasting Time), some anonymous coward from Stanford University (you know who you are) replied that I did not know what continuity meant and that it had nothing to do with infinite divisibility. I rejected his comment for both its stupidity and its cowardice. The fact is that a continuous surface is infinitely smooth by definition. An infinitely smooth surface consists of an infinite number of infinitely small areas or mini-surfaces. It does not take a genius to conclude that this crap leads to an infinite regress. So why do physicists insist on acting as if continuity were a possibility? The answer is that most physicists are gutless ass kissers who must go along with the mainstream for fear of losing their jobs or their source of funding. Some of them will even argue with a straight face that there is nothing wrong with infinity. They are wrong, of course, since it is easy to show that infinity is illogical because it leads to the conclusion that something can be both infinitely small and finite at the same time. I think the physics community may be suffering from a case of collective madness or stupidity or both.

Einstein and Continuity

It is worth noting that, not long before his death, Albert Einstein (Mr. Continuity himself) wrote to a friend, "I consider it quite possible that physics cannot be based on the field concept, i.e., on continuous structures. In that case, nothing remains of my entire castle in the air, gravitation theory included, [and of] the rest of modern physics." (From: "Subtle is the Lord" by Abraham Pais.)

I would not say that all of modern physics is falsified by the fact that continuous structures are illogical but I would say that a huge portion of it is. For one, a discrete universe is necessarily an absolute universe because all motion is necessarily restricted to a fixed and discrete grid. Having said that, there are much simpler and irrefutable arguments against the stupid notion that only relative motion and position exist in nature. Indeed, the exact opposite is the truth. This will be the subject of my next post.

[By the way, is it any wonder that I insist that modern physics is built on a mountain of crap? The bullshit is so deep and so pervasive, it truly boggles the mind.]

See Also:

Why Space (Distance) Is an Illusion
How Einstein Shot Physics in the Foot
Nasty Little Truth About Spacetime Physics
Physics: The Problem with Motion
Nothing Can Move in Spacetime

Wednesday, April 21, 2010

Why Einstein's Physics Is Crap, Part I

Part I, II, III

Abstract

Relativists love to point to experiments that confirm the predictions of Einstein's special and general relativity theories as evidence for the correctness of Einstein's physics. They love to talk about the beauty and simplicity of the math but there is a lot of ugliness underneath that is kept hidden. In this article, I will argue that there are several fundamental aspects of Einstein's physics that are not just false, but are conceptual disasters that have retarded progress in physics by at least a century. I am talking about the notion of a time dimension, the belief in continuous structures and the often repeated but utterly absurd mantra that absolute motion and position do not exist. These things alone are proof that, as I wrote in my previous article, modern physics is resting on a mountain of crap.

The Physics Community Can Kiss My Ass

The idea that there is a time dimension along which we are moving in one direction or another is so stupid and so detrimental to our understanding of nature that I place it on a par with the flat earth hypothesis. I cringe every time I think about it. At the same time, as a result of a century of relativist indoctrination, it is so entrenched in the public's psyche that I sometimes despair of ever seeing it debunked in my lifetime. But I can always try.

There are a handful of people in the physics community who understand that the time dimension concept is crap but they don't make much noise about it because of the political climate surrounding relativity. Criticizing Einstein's physics is like criticizing Alan Turing in computer science. It is guaranteed to bring a quick end to one's physics career. Luckily for me, I have no such fear. The physics community does not put food on my table and even if they did, I would still tell them to kiss my ass.

Why Is There No Time Dimension?

The short answer is that a time dimension would make motion impossible because a changing time coordinate is self-referential. The slightly longer answer is that motion in time assumes a velocity in time which would have to be given as v = dt/dt, which is nonsensical. It is that simple, folks. In other words, things like spacetime trajectories, geodesics, objects moving along their world-lines in spacetime are all hogwash. Nothing moves in spacetime, period. Don't let die-hard relativists pull a wool over your eyes with bullshit non-explanations of why there is motion in spacetime. It's all crap. This simple truth reveals famous physicists like Albert Einstein,  Stephen Hawking (Mr. Black Hole), Michio Kaku (the crackpot on TV), Kip Thorne (Mr. Wormhole), Brian Greene (Mr. String Theory) and others for what they are, a bunch of spacetime crackpots.

The Time Dilation Crap

I am accusing relativists of being a bunch of crackpots and of teaching their crackpottery to generations of students. I am accusing them of putting an effective monkey wrench in the works that prevents the progress of science. Why? Because if there is a time dimension as they claim, there can be no motion. Since motion is observed, there can be no time dimension which means that they are false teachers. The time dimension mindset condemns researchers to chasing after red herrings and prevents them from seeing nature as it is.

Many relativists will, of course, go into an apoplectic fit of rage at my accusations but I don't care. As a rebel, I find it amusing. Some will inevitably retort that time dilation is proof that time can change or that it is a form of time travel. Don't you believe any of it. Clock slowing is not due to time dilation but to energy conservation at work. That's all. Besides, a clock does not measure the passing of time but temporal intervals. If a clock slows down, it follows that the measured intervals will be longer than the previous ones. Time dilation is not just a misnomer, it is a stupid misnomer simply because time cannot change by definition.

Coming Up

As I wrote earlier, time is not the only thing that is wrong with Einstein's physics. In Part II, I will go over the reasons that continuous structures are a pile of crap.

See Also:

Why Space (Distance) Is an Illusion
How Einstein Shot Physics in the Foot
Nasty Little Truth About Spacetime Physics
Physics: The Problem with Motion
Nothing Can Move in Spacetime

Wednesday, April 14, 2010

Sitting on a Mountain of Crap, Wasting Time

Theater of the Absurd

I love physics but I cannot stand physicists. No other field of science has more ass kissers and more blatant, in-your-face crackpottery. Just a couple of days ago, some crackpot physicist by the name of Nikodem Poplawski announced to the world that the universe is inside a wormhole, which is inside a black hole that lies within a much larger universe full of other black holes, wormholes, crackpot physicists and other universes. I swear I am not making any of this shit up. But this crap is common fare in the physics community. And only physicists can get away with going public with such absurdities.

A Mountain of Unadulterated Bullshit

As we all know, black holes and wormholes are based on Einstein's physics. The problem is that Einstein's physics is based on the existence of continuous structures and of a time dimension, both of which are pure unmitigated crackpottery. This crap is not even wrong because, as anybody with a lick of sense should know, a time dimension makes motion impossible. Moreover, continuity (infinite divisibility) is, of course, a pile of crap on the face of it because it leads to an infinite regress by definition. But these two turd examples only scratch the surface of the Himalayan-size mountain of bullshit on which modern physics is resting. Almost everything you learned in physics school is crap, from the Star-Trek voodoo fairy tales of time travel and multiple universes to the Einsteinian idea that only relative motion and position exist in the universe. It's all pure unadulterated bovine excrement. I need lots of synonyms for 'crap', I know.

Chicken Shit Voodoo Physics

Who will rise up to deliver us from this mountain of crap? Will it be the little con artist in the wheelchair over in England? I seriously doubt it. Stephen Hawking is one of the most prolific crap makers of them all. His shit stinks to high heaven even if his band of disciples and the clueless media love it so. I feel like vomiting every time I think about Hawking's chicken shit voodoo physics.


The situation in the physics community is so bleak that, lately, I am considering buying a rubber chicken to make my point. I will write 'Physicist' on it with a black marker pen and I will hang it by the neck at the entrance of my home. Why? Because all I read about lately is worthless chicken shit voodoo physics and chicken shit voodoo physicists like Hawking and Poplawski.
Please do me a favor. Don't write to tell me that you're offended because I don't care. I am the one who should be offended because I spent countless hours of my life learning a bunch of physics crap only to spend countless more hours unlearning it. Yes, I have been sitting on this mountain of crap most of my life, wasting my precious time. And I don't like it. The physics community owes me and everybody else an apology, goddammit. But thanks to the internet and computer engineering, none of which was made possible by wormhole physics, multiverses, time travel and other such crap, I can vent my spleen to my heart's content. I can crap all day long on their wormhole, black hole, Big Bang and time travel religion. It's the rebel in me. Isn't free speech grand?

I feel better now. Thank you.

See Also:

Why Einstein's Physics Is Crap
Physics: The Problem With Motion
Nasty Little Truth About Spacetime Physics
Nothing Can Move in Spacetime
D-Wave's Quantum Computing Crackpottery

Sunday, April 4, 2010

COSA Vs. LabView

Abstract

People write to me regularly to tell me that COSA is nothing new and that it's already implemented in a graphical dataflow language called LabView. I beg to differ. What follows was posted earlier on the Rebel Science Discussion Forum. It is my reply to a poster named hcsik who insists that LabView is COSA. I felt it was important enough to repost it here on the Rebel Science News blog.

hcsik wrote:
Nice concepts.
Alas, not as new as one would have liked to believe.

http://www.ni.com/labview/whatis/

Every proposed COSA feature you find realized in LabView:
"Change-Driven", "causality", and "temporal consistency" (a.k.a dataflow semantics),
"passive and active objects", "cells and components" (called "virtual instruments" with input and output connectors),
"visual software construction", "total overview", and "programming by design" (draw connection diagrams to code).
They seem to offer free time-limited evaluation copies for download; you should really try it out; I guess you'll love it.

LabView saw its first release in 1986.
Nowadays you can purchase specialised hardware with CPU boards dedicated to the parallel code, which don't run a standard OS, but a realtime kernel optimised for the purpose (this should count as a realisation of the proposed "CODA OS").
Nowadays they even offer an FPGA development board to optimally exploit the parallelism of the components you design. http://www.ni.com/fpga/
Believe me, I have heard this many times before. You are mistaken. Here are some fundamental differences between COSA and LabView:

Not Dataflow

COSA is not a dataflow language. The idea of data flowing like a stream from one component to another is not a fundamental aspect of COSA. COSA does have reactive data connectors but they are not used for dataflow in the LabView sense. A COSA program consists of actors (sensors and effectors) and the environment (data). That's pretty much it.

Fine-Grained Parallelism

My understanding is that LabView is a high-level coarse-grained dataflow language that propagates variables or data structures from one so-called 'virtual instrument' (a code subroutine or algorithm) to another. COSA, by contrast, is a fully reactive, non-algorithmic, execution and programming environment for fine-grained parallelism. COSA is a software model that redefines the way we build and program our computers. The fine-grained, instruction-level parallelism of COSA is the reason that a COSA program will run slow on existing processors. COSA will require special processors specifically designed and optimized for this sort of processing. LabView seems to run fine on current machines because it is not a new software model. A COSA processor is a pure vector processor and will have no trouble handling any kind of high throughput parallel processing, including the kind of graphic processing now being done with GPUs.

Control Hierarchy and Complementarity

COSA has control concepts like sensor/effector associations, self-activated effectors, sensor and motor coordination principles and hierarchical composition; none of which exists in LabView. A component in COSA is either a supervisor or a slave, a concept that is analogous, at the lowest level, to sensors and effectors. Complementarity is a fundamental aspect of COSA.

Timing and Temporal Determinism

Timing is also a fundamental aspect of COSA, so much so that there are no logic gates in the traditional Boolean sense. The logic detectors in COSA are strictly timed, meaning that they are signal-based as opposed to being state-based. In COSA, temporal determinism is an absolute must. This is the reason that COSA programs, unlike Labview programs, cannot use multithreading since multithreading is non-deterministic by definition. Same goes for existing multicore processors.

As Few Icons as Possible

One of the things that I don't like about LabView is the proliferation of icons. COSA uses as few icons as possible: the connection line, the sensor, the effector, the synapse, the data icon, the component and the component connector. That's it.

Hierarchical Composition
Sadly, however, LabView didn't apparently succeed in solving all the software reliability problems.
Even though the diagrams look nice and simple (when you start...), and it's easy to design simple applications, in the end it turns out that the concepts of LabView (and consequently COSA) tend to lead to even more complex software solutions then the equivalent typical text-based computer languages (which you would call "algorithmic").

Besides, the graphical representation tends to really get in your way with everyday practical software engineering necessities like version control, merging, or simply navigating through a huge code base (you can't easily "grep" for graphical symbols). The development model doesn't scale to large teams, the typical LabView app is a one-man show.
LabView is quite successful in its commercial niche of measurement, production, and test automation, but it's a niche nevertheless.
It is because LabView is doing it wrong. They use the wrong compositional approach and too many icons. The COSA compositional tree will solve all the problems that plague LabView. Top to bottom complementarity (master/slave) is the key to effective software composition and large-scale component reuse.
Ironically, I've personally experienced that the developers which most fervently detest LabView and schematic entry tools are exactly the FPGA guys who would know best how to do parallelism. They swear by their purely textual VHDL development environments.
Again, it is because LabView is doing it wrong. But then again, so is FPGA. All that stuff will eventually be supplanted, in my opinion.

How to Construct 100% Bug-Free Software (1st repost)

[I think the message in this article on software reliability is so important to society that I will repost it about once a month until it sinks into the collective consciousness of the computer industry.]

Abstract

Software unreliability is a monumental problem. Toyota's brake pedal troubles are just the tip of the iceberg. Yet, the solution is so simple that I am forced to conclude that computer scientists are incompetent. As I showed in my previous post, the usual 'no silver bullet' excuse (Brooks's excuse) for crappy code is bogus. Contrary to Fred Brooks's claim in his famous No Silver Bullet paper, it is not necessary to enumerate every state of a program to determine its correctness. What matters is the set of conditions or temporal expectations that dictate the program's behavior. Below, I expand on my thesis by arguing that the computer can in fact automatically discover everything that may go wrong in a complex program even if the programmer overlooks them.

Expectations and Abnormalities

Jeff Voas, a software reliability expert and a co-founder of Cigital, once said, "it's the things that you never thought of that get you every time." Voas is not in any hurry to see a solution to the unreliability problem because he would be out of job if that happened. Still, I agree with him that it is observably true that the human mind cannot think of everything that can go wrong with a complex software system but (and this is my claim) the computer is not so limited. It is because the computer has a certain advantage over the human brain: it can do a complete exhaustive search of what I call the expectation space of a computer program. The latter has to do with all the possible decision pathways that might occur within a program as a result of expected events.

A billion mathematicians jumping up and down and foaming at the mouth notwithstanding, software is really all about stimuli and responses, or actions and reactions. That function calculation stuff is just icing on the cake. Consider that every decision (reaction) made by a program in response to a sensed event (a stimulus) implicitly expects a pattern of sequential and/or simultaneous events to have preceded the decision. This expected temporal signature is there even if the programmer is not aware of it. During the testing phase, it is easy for a diagnostic subprogram to determine the patterns that drive decisions within the application under test. It suffices to exercise the application multiple times to determine its full expectation pattern. Once this is known, it is even more trivial for the subprogram to automatically generate abnormality sensors that activate in the event that the expectations are not met. In other words, the system can be made to think of everything even if the programmer is not thorough. Abnormality sensors can be automatically connected to an error or alarm component or to a component constructed for that purpose. The system should then be tested under simulated conditions that force the activation of every abnormality sensor in order to determine its robustness under abnormal conditions.

Learn to Relax and Love the Complexity

The above will guarantee that a program is 100% reliable within its scope. The only prerequisite to having a diagnostic subprogram like the one I described is that the software model employed must be synchronous and reactive. This insures rock-solid deterministic program behavior and timely reactions to changes, which are the main strengths of the COSA software model. The consequences of this are enormous for the safety-critical software industry. It means that software developers no longer need to worry about bugs in their programs as a result of complexity. This way, adding new functionality to a system makes it even more robust and reliable. Why? Because new functionality cannot break the system's existing expectations without triggering an alarm. They must conform to the functionality that is already in place. Expectations are like constraints and the more complex a program is, the more constraints it has. We can make our programs as complex as necessary without incurring a reliability penalty. So there is no longer any reason to not have a completely automated mass transportation or air traffic control system.

Academic Responsibility

This is the part where I step on my soapbox and start yelling. This blog is read everyday by academics from various institutions around the world and from research labs in the computer industry. I know, I have the stats. If you are a computer scientist and you fail to act on this information, then you are a gutless coward and an asshole, pardon my French. Society should and probably will hold you personally responsible for the over 40,000 preventable traffic fatalities on U.S. roads alone. You have no excuse, goddammit.

See Also:

Why the FAA's Next Generation Air Traffic Control System Will Fail
Computer Scientists Created the Parallel Programming Crisis
Parallel Computing: Why the Future Is Synchronous
Parallel Computing: Why the Future Is Reactive
How to Solve the Parallel Programming Crisis
Parallel Computing: The End of the Turing Madness
Half a Century of Crappy Computing
Why Software Is Bad and What We can Do to Fix It
Project COSA
The COSA Operating System