Jim gray in his popular presented some of the bugs which are named after some famous scientist names.
Most of the bugs that we come across are reproducible, and are known as bohrbugs. They are named after niel bohr, who proposed a simple and easy to understand atomic model in 1913. In bohr’s modelthings like the path and the momentum of the electron in ana atom are predictable. Similarly bohrbugs are predictable-you can produce them if you run a software with similar conditions. For example when the program crashes with a null pointer access, it always crashes there for a given input; so ypou can easily reproduce it.
All experienced programmers have faced situations where the bug that crashed the software just disappears when the software is restarted. No matter how much time and effort is spent trying to reproduce the problem, the bug eludes us. Such bugs were named as heisenbugs, after Werner Heisenberg, who is known for his ‘uncertainity principle’. According to his theory, it is not possible to accurately or certainly determine the position and velocity of an electron in an atom at a particular moment. When bugs change their behavior when you try to debug, probe or isolate, they are called as heisenbugs. It can happen for example, when you use uninitialized variables. When the program is run, it will access the variables that are uninitialized and hence result in a bug. However when you try to debug the program, the program must work just fine, because many de buggers initialize uninitialized variables to zero’s and so you might not hit the problem!!
When the cause of the bug is too complex to understand and the resulting bug appears too chaotic, it is called a mandelbug. These are named after benoit Mandelbrot, who is considered the father of fractal geometry( fractals are complex, self similar structures). A bug in an operating system that depends on scheduling is an example of mandelbug.
Sometimes you look into the code, and find that it has a bug or a problem that should have never allowed it to work at the first place. When you try out the code, the bug promptly shows up, and the software fails!!!
Though it sounds very uncommon, such bugs do occur and are known as schrodinbugs. They are named after the scientist Erwin schrodinger, who proposed a theoretical ‘cat experiment’. In quantum physics,quantum particles like atoms could exist in two or more quantum states, but schrodinger suggested that in more classical objects like a cat which is made up of many atoms, existing in two states was impossible. He theorized about a scenario in which a cat a cat is kept in a sealed chamber, with a vial of poison ( attached to radioactive atom). If the atom decayed, the voil would be smashed and the poson would leak, killing the cat. But with chamber sealed there could be no way to know whether the cat is dead or alive. So till the chamber is opened, theoretically the cat would be in two states-dead or alive. In quantum physics this is called as superposition state, where the cat is both alive and dead.
Coming back to bugs, by merely observing the problem in the code, you change the outcome-either the software works or breaks. So these kind of bu