Home Home  Article Index Article Index  
GuruPedia  

Action at a distance

In physics, action at a distance is the instantaneous interaction of two objects which are separated in space. Newton's theory of gravity was one of the first theories incorporating this notion. After the advent of special relativity, action-at-a-distance was seen to violate the principle of relativity - if one of the interacting objects were suddenly displaced from its position, the other object would feel its influence instantaneously, whereas the special theory of relativity sets the speed of light as the upper limit to the speed of propagation of an interaction. Attempts to sort out the conflict between Newton's theory with action-at-a-distance, and the principle of relativity in the theory of gravitation led to the theory of general relativity.

Incidentally, there is no problem with Coulomb's law in electrostatics seeming to be a theory with action-at-a-distance - Coulomb's law deals with charges which have been static since eternity, and the completion of Coulomb's law to include moving charges lead to Maxwell's equations, which are fully compatible with special relativity.

Current physical theories incorporate the principle of relativity as one of their basic building blocks, hence ruling out action-at-a-distance. At the same time however, action at a distance appears to be an essential feature of some very fundamental quantum mechanical effects like entanglement and quantum nonlocality. Further understanding of these effects, in order to reconcile them with the principle of relativity, might lead to some new physics.


In some subcultures of programming (see, e.g., http://perldesignpatterns.com/?ActionAtADistance), action at a distance refers to having a variable or condition in one part of a program structure which varies wildly based on difficult or impossible to identify operations in another part of the program.

One example is a data structure that unpredictably changes its format between when it is created and when it is used. In Perl, one way to observe this is by setting the variable $[, which determines the starting value of the numeric index of arrays, to something arbitrary, such as 20 or 4.

The most obvious way to avoid such a problem is to make changes in code at a local rather than a global level.

Action at a distance is an example of an anti-pattern.

Popular Topics

This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.  For the live article, click here.

Privacy