Tron Legacy : I’m a user, I’ll improvise

I tried to picture clusters of information as they moved through the computer, what do they look like?
Ships?
Motorcycles?
Were the circuits like freeways?
I kept dreaming of a world I thought I’d never see and then, one day, I got in.
I’m a user.

–Kevin Flynn, Tron Legacy

Yesterday I went to watch Tron with my brothers. It was really cool. I am relieved that movies as creative as that one are still produced. It was aesthetically original, and the music was awesome. Here is the playlist of the soundtrack:

http://www.deezer.com/fr/#music/playlist/tron-legacy-57330538

The story is already a concept we’re familiar with since the Matrix because it features talking programs with feelings (^^) . Well, actually I see now where the Matrix got its inspiration from, especially with the reference to “the grid” in Tron. I was surprised this was a movie produced by Walt Disney but that is probably why there were many kids in the cinema. The story was not complicated but I wonder if the kids got what an Isomorphic Algorithm is and what a talking program involves. Here is one of my favourite scenes where a nodisc program (some kind of illegal program, probably an unlicensed program that was cracked) is terrified of being put in “the game” by a police program:

- nodisc program :  Please, no, no, no.
- police program : Whoa, hey!
- nodisc program : Erase me! he screams as he escapes from the hands of the police program and runs away to jump into a silo where he is destroyed.

So funny. We would be doomed if our programs were suicidal like that. There are other scenes where programs are destroyed and other programs come by their remains and cry. So touching. If that is true, I personally apologize to all the files I have so carelessly deleted and all those windows and tabs I close daily so mindlessly. I am deeply sorry.

Apart from this humanized vision of the digital world, I retained some interesting points from the movie :

Design a system that is flexible

The movie tells a dystopian scenario where the creator of the machine is defeated by its creation because it became more powerful than him. Indeed Kevin Flynn the creator of the virtual world has created a clone program called C.L.U to take care of his world while he is in reality. Flynn asks C.L.U to create a “perfect” world. So C.L.U obeys and creates perfection. Doing so he tries to eliminate his creator that he considers imperfection, hence the whole struggle during the movie between C.L.U and Flynn.

Now we can see here that the evilness of C.L.U is a direct consequence of a mistake in Flynn’s design, because 1. Flynn excluded himself from the definition of “perfection”, 2. He asked for perfection, 3. Most importantly, he forgot to make his program flexible, he forgot the “cancel” feature. I finally understood that this is the mistake that all the creators make in those dystopian scenarios : they all forget to make their system flexible. A flexible system would be stoppable if its actions became harmful for us. A flexible system is a system that listens to our commands at all time, so we can always guide its actions according to what we want. In this movie, if Flynn had just added a “cancel” feature or a way to reprogram his clone, his program would have stopped creating a “perfect” world.

Mistakes are human, mistakes are part of the process of creation. So to correct the mistakes we might make as we build any system it’s essential to plan a “cancel” and a “listen” options to make the system as flexible as possible. We shouldn’t aim at creating fully independent systems because that would make them inflexible and therefore possibly harmful. I think humans and machines will always be connected on some level. Designing a machine so independent that we can’t interact with it anymore is not the goal, we create machines to interact with them.

Most of the time, I think we make the mistake of trying to design perfect applications that we hope to be self-sufficient, so that once created, there is no need to intervene anymore. But perfection is such a bad concept because it qualifies something that is static and that doesn’t make any mistakes, and therefore that doesn’t evolve, it’s unreachable. Yet the systems that we are aiming for (intelligent machines, applications) are in constant evolution with us and with the world. There are always new needs, new conditions, new changes that the system needs to take into account. Making a system flexible allows it to learn, evolve and adapt constantly to its environment and new conditions.

So never forget to make the system flexible and stoppable.

I’m a user, I’ll improvise

In the movie the characters are divided between the programs, the isomorphic algorithms (kind of biological programs), the users and the creator. Users have the power to create programs and to not follow the rules. At one point, Flynn wants to escape from the virtual world with his son, but they don’t have any plan, so his son decides to go one direction to try to escape, and his father asks him “But what is your plan?”, to which the son answers “I’m a user, I’ll improvise!”, it’s my favorite quote from the movie because there is this notion of “the user controls it all”, which is in line with my UI philosophy.

In the absolute sense, the creator controls everything, but in the application, the user controls every action, and the user should also determine the design of the application, so normally the user controls the application. In the French version, they translated this line to something with this meaning “I’m a designer, I’ll improvise” which I find much more eloquent and powerful, than just “I’m a user” because it suggests the ability to create. In comparison, the English version seems a little weak, but it’s still ok. My brother suggested they put “I’m a mac user” to make more impact :p, I suggested “I’m a beta tester”, “I’m an early adopter”, “I’ll improvise!”. We should ask users to improvise now. Here is the code. Improvise!

On the fly

Aesthetically, I really liked the way a motorcycle deployed from a simple stick, that was well imagined. That reminded me of how something is generated dynamically on the fly in an application. The stick is the function, the class that constructs the object “motorcycle” and activating the stick is instantiating the object, calling the function.

Other than this, there were some really funny things in the movie. There is a scene where we see the programs partying in a bar, drinking cocktails and dancing, and I wondered what all that was about, what is a program that drinks a cocktail, what’s the point of such program? But then, my brother enlightened me, a program that drinks a cocktail is actually a program that is in idle mode, it is on pause. Now I understand better. Then, there was Flynn asking forgiveness to C.L.U, and C.L.U rejected him without any feelings at all, exactly like a heartless program, that was deeply moving, overly dramatic. I wondered what is asking forgiveness to a program? Is it like authentication? Is it like begging Internet explorer to render an html page correctly? I didn’t get it. My brother didn’t know either.

All that said, that movie like any interesting movie is great to develop imagination. Now I need to see Tron 1.