All-rightey then, I finally saw the movie Inception yesterday and I too like everyone else have my own theory on what went on in the Movie. Soon I will be blogging about my own theory on what I think actually happened. However, more than trying to figure out what happened in the movie, it is important to understand the various concepts in the movie.
Like a true software developer (I don’t know why this stereotype), I started thinking about it, and maybe because I was thinking about programming too, I found an explanation for the concepts used in Inception in a very programmatical way. Below I have listed the various concepts used in Inception along with its meaning in Inception itself. Then I present to you a simple programming concept and I will explain the concepts of Inception again using this already well known programming concept.
Architect – Someone who designs a dream
Dreamer – A person who is dreaming and whose dream it is. He is trained by the Architect on what he should dream.
co-Dreamers – Also persons who are dreaming, but they are not in their own dream. They are characters in the mind of the Dreamer. A Subject is also a co-Dreamer, but who is not trained by the architect, and hence cannot consciously influence the flow of the dream.
Subconscious – The projections of the Subject (and co-Dreamers) that fills the dream world of the dreamer. These are usually the people in the dream, other than the dreamer himself.
Dream – A state of sub-consciousness where anything and everything can happen.
Kick – Some that will awaken you from your dream and bring you back to reality.
Totem – An object that only you know how it feels, how it behaves and how much it weighs. No one else can replicate this object in their dream, and hence you can find out if you are in someone else’s dream.
Limbo – A state of deepened sub-consciousness that is reached when one dies in a dream level when under a very powerful sedative. In Limbo the person cannot know that he/she is in a dream and hence cannot come out of it unless someone else goes in and tells or proves to that person that he/she is in Limbo.
Now think about the well known and widely used programming concept called OOPS (not in any way related to the Britney Spears song). Just to jog your memory, OOPS is a concept of classes and objects and instantiation and derivation and so on. Lets relate OOPS to the concepts listed above.
Architect – A Program. An program or an application contains all the classes and methods and other definitions that exist. Ultimately whatever will happen, or should happen, is written down in the program.
Similarly, an architect designs the entire dream, including what each dreamer should dream. What every dreamer dreams is what the architect has written down.
Dreamer – A Class. A class is something that defines all the properties and behaviors of itself.
Similarly, a Dreamer defines his dream world and the behavior of all objects in his dream. He brings the subject and the co-dreamers into his dream.
co-Dreamers – A declared Object. This is a declared object or variable that is of some ‘type’. It has to be instantiated to have any meaning. These objects are declared as attributes in a class and will be instantiated when the class, during its runtime, decides to do so. The life of these instantiated objects
Similarly, the co-dreamers are made to enter the dream of the Dreamer and how and when and in what environment they are brought in is based completely on the Dreamer himself.
Subconscious – Callbacks. A callback is a method that an object exposes an another object can call. The callback could be used to send information from one object to another object. An object can pass any sort of information through the callback and the receiving object can use this information to (possibly) modify itself in any way it deems fit.
Similarly, the Subject sends information to the Dreamer through the dreamers callback. This information is what populates the dreamers world.
Dream – An Instantiation. Within a program (or an object), a new object can be instantiated during runtime. This new object has it own properties based on the class(dreamer, co-dreamer, subject) whose type it is.
Similarly, when one or more people go into a dream, they are going into a new world (a new instantiation) that is defined by the dreamer.
Kick – A Destructor. When an object that is instantiated and it doing its own thing has to be brought out of the instantiation, it has to be destroyed. This is done by calling the object’s destructor.
Similarly, a kick destroys the dream of the person and bring him back to the level that the kick was administered in.
Advanced OOPS: The simultaneous kicks can be considered to be a kind of ‘reference counting’.
Totem – Reflection. Reflection is a way by which an object can find out about its own properties during runtime and may or may not modify itself. An object has use only its own reflection property to find out about itself. If it tried to use some other instance’s property, then it will not be able to find out the runtime information about itself.
Similarly, a Totem is something that a dreamer can use to find out about himself and use this information to alter his own state of mind. The dreamer can find out about himself (whether he is in a dream or not) only through his own Totem, and not through other’s representations of what they think is his Totem. Using this information, the dreamer can wake himself up from his dream.
Limbo – A dangling pointer. When an object is deleted(a person is killed in the movie), but the memory referenced by the object is not destroyed, then the referenced memory is in Limbo. The memory is left dangling without any hope of being freed until something else comes and specifically ‘frees’ up this memory – for example a Garbage Collector.
Similarly, Saito was trapped in Limbo (as his body was killed, but his mind was still free), and Cobb had to specifically come down and remind Saito that he was in Limbo and ‘free’ him.
I would love to hear feedback from you about this blog. Also if you think there are some terms that I have not covered, please do let me know and I will think of, and add the OOPS explanations for them too.
Sponsored Content
These Related posts may interest you
Tagged: explanation, inception, movie, oops, relation, terms
No Trackbacks
You can leave a trackback using this URL: http://blog.prashu.com/2010/07/object-oriented-inception-the-movie/trackback/
2 Comments
Some concept doesn’t seem correct to me so second version of this please
Architect is a function which is like Dream (…) so Co-Dreamers can vary and Class is base class as Humans who can dream … by calling function Dream(…) which is private function of Humans class …
Every thing else can be modified accordingly
…
Too Much of OOPS concept can change the move ha ha ha
….
Surrealism at its best!