in

ASP.NET Weblogs

Carl Franklin

.NET Wonk

Luke Skywalker is a Design Pattern

Luke Skywalker is a Design Pattern

I've been thinking a lot about George Lucas, Star Wars, Software, and Joseph Campbell a lot lately for some reason. For those of you who don't know how these things tie together, let me elaborate.

Joseph Campbell (1904-1987) penned the famous book The Hero with a Thousand Faces, which caught the eye of George Lucas, and in fact inspired him to write Star Wars. As the website says, this book traces the story of the (archetypical) hero's journey and transformation through virtually all the mythologies of the world. The definition of a mythology is not limited to wacky stories that our microcranial ancestors used to tell each other around the fire. Mythology includes stories, religion, and art; and more recently music, movies, and video games. Simply put, myths are the shared dreams of peoples. They come from within us. As Campbell said, they are manifestations of the energies of the body shaped by its environment and experiences... or something like that. In any case, the word myth for Campbell did not mean a scientific falsehood that is believed by many to be true, as we use it in our technically savvy English language.

Joseph Campbell came into my realm of experience, as he did for many people, with Bill Moyers' excellent PBS series The Power of Myth. In a series of six one-hour interviews, Campbell exposes us to the depth of mythology and the significance of studying it.Also during the interviews he touches on, of all things, the computer and how one could mythologize it. I'm paraphrasing, but he said that software comes in many forms. The end result of program A and program B are the same, yet they were written by different people with different languages, sometimes in different countries. The means and methodologies (rituals) that they used to get to the result are often completely different, and yet each is true. Each performs the task and achieves the same result.

Back to the hero. In Star Wars episodes 4 through 6, a reluctant Luke Skywalker learns the ways of the Force (a non-descript metaphor for God if there ever was one) and after much work and struggle, succeeds in defeating the Emperor, and (with the aid of his father) restores balance to the Galaxy, returning from his journey to a life of glory, TV sitcoms, and Crunch-and-Munch. Have we heard this plot somewhere before? Hundreds of times.

This is the hero story:  Beowulf, Odysseus, Gawain, Aristides, Sigmund, Moses, Jesus, MuhammadShivaji, Buddha, and more recently Joan of Arc, Abraham LincolnHarriet TubmanFrodo Baggins, Harry Potter, and countless action movie lead characters. Why do we tell this story over and over again? I'll leave that to the psychologists and philosophers. I just know that when I see a schmuck like Mark Hamill saving the galaxy from tyranny, I feel like if HE can do THAT, I can at least write some great code, or a song, or in general slay my dragons of laziness and complacency and go out and be the best I can be at whatever it is I choose to do.

OK, now back to software. Let's use programs A and B as a metaphor for two completely different religions. Let's say the programs are taking numbers as input, making a calculation and displaying the result. The implementation of this can be boiled down to an algorithm, which is implemented with a design pattern. The output is truth. At it's most fundamental level there is the input, the algorithm, the design pattern, and the output, which is a truism. Program A is written in Java on Linux hardware. Program B is written in C# for the Windows platform. Program A has a Graphical User Interface. Program B runs as an Web Service. Program A was written in Japan by a 14 year old female, and Program B was written in Canada by a 34 year old male. As religions go, these two programs are developed with dogma. Program A has user (believer) requirements. It requires a Linux machine and a graphical user interface shell. Program B also has requirements: a Windows machine and a client application to access it, at the very least a web browser. These are two totally different requirements.

In addition, both programs share some of the same requirements. Both require AC power. Both require the use of a keyboard. Both require SOME kind of operating system. The act of using the programs requires interaction with a different user interface. Different rituals are performed, but each program fulfills it's purpose, which is to return the correct result.

In Star Wars 3, Anakin starts out with the best intentions. He was brainwashed by someone with an agenda, and he was unable to control his feelings. He was thinking in absolutes. This movie is filled with misunderstandings. Anakin is driven to the dark side to protect his lover, so he believes. The Jedi council doesn't know about his affair. Obiwan is clueless as well. Nobody knows why everyone else is acting so strangely. From Anakin's perspective, the Jedi are evil. From the Jedi's perspective, Anakin is turned to evil because of his immaturity, which turns out to be true.

The world is in turmoil. Age-old misunderstandings about our religious and cultural differences have been the cause of every major war since time began. Now the United States of America is in the middle of someone else's mess, which can undoubtedly be traced back to a series of misunderstandings. These misunderstandings have a way of amplifying the good intentions of US and the evil intentions of THEM no matter which side you are on. Before long, the original misunderstanding is well-forgotten, and more and more evil acts are committed between warring parties to revenge the last evil act.

So, does it matter that the program was written in C# or Java? Does it matter what User Interface we use? What matters is that people need religion. Let those who need it have it. If you don't, great. But at least understand. I happen to be a Humanist. But me having my beliefs does not invalidate anyone else's. To me, this simple tenet is the most difficult to put into practice. To live and let live. To believe A and let others believe B, or even (B AND NOT A). However difficult, this is the only thing that will save us from wiping each other off the face of the earth. Along with that basic tenet comes personal responsibility not to let our emotions get the best of us and to keep a clear head.

So Luke Skywalker - son of Padme and Anakin, you sir are an implementation of an ancient algorithm using a well-known design pattern.  George Lucas is one hell of a programmer, isn't he.

Carl Franklin
carl@franklins.net

Comments

 

Jason Bentley said:

LOL, it actually makes sense. Leave it to Carl.
May 19, 2005 6:58 AM
 

SBC said:

Wow! That is some poignant posting!
I had very much enjoyed JC/BM 's Power of Myth series - it was thought provoking and explained a lot of 'unknowns'.
I also highly recommend reading the works of Gandhi who was an exemplary 'Humanist' in every sense of the word.

Thanks for your posting.
May 19, 2005 7:14 AM
 

JasonF said:

Interesting parallel in evolution:

C : Judaism
Java : Roman Catholicism
C# : Protestantism
VB: Islam? Scientology? Humanism? Other? ;)
May 19, 2005 10:30 AM
 

Kyle Bennett said:

Carl,

"To live and let live. To believe A and let others believe B, or even (B AND NOT A). However difficult, this is the only thing that will save us from wiping each other off the face of the earth"

What if B is "I should force you to believe B also"? What if B is "I have a right to kill you and take your stuff"? Sure, it might be OK to let people believe that, but then, who are you to say that they can't act on it, that they have to act against their beliefs? That's just your belief A speaking.

As long as there are beliefs like B, the only thing that will save us from wiping ourselves off the face of the earth is persuading people not to believe B - which starts by clearly identifiying it as wrong - or preventing, by force, people from acting on belief B - which also starts with clearly identifying it as wrong. The difference between the two is in how long you wait to make the identification.

I'm fine with beliefs C,D,E,F, etc., that can live in peace with my belief Q, or W. But if you can't at least say that B is wrong, then you can't prevent us from getting wiped off the face of the earth. You can't even object to wiping us off the face of the earth, because that might be somebody's belief Z.

I love DNR and Mondays, great work!

--Kyle Bennett
May 19, 2005 12:37 PM
 

TrackBack said:

May 19, 2005 1:23 PM
 

Dax Pandhi said:

Carl, I think you have a very high midi-chlorian count. The Force IS with you. :)
May 19, 2005 2:53 PM
 

Johan von Boisman said:

>This is the hero story: Beowulf, Odysseus, >Gawain, Aristides, Sigmund

For anyone at all interested in stories, how
they relate, and why we tell them, check out
this awesome book by Christopher Booker, "The
Seven Basic Plots: Why We Tell Stories". Many
pages but an easy (and very interesting) read.

http://www.amazon.com/exec/obidos/ASIN/0826452094/qid=1116541395/sr=2-2/ref=pd_bbs_b_2_2/102-1208693-4151329


May 19, 2005 6:27 PM
 

Paul said:

Carl, not sure the Jedi mind trick works on long paragraphs like this one. Besides, I think you need to wave your hand in the air when you say the phrase. <waving my hand>VB IS better than C#</waving my hand>
May 19, 2005 10:32 PM
 

denny said:

WoW!

Jep JC on PBS and the whole myth thing...

as you seem to have went then did you catch this:

Evil chancelor tells skyalker that one sith had the ablity to fend off death etc..
but he also said the same one could "create life" and that he did.

now hold on folks....

did a sith lord cause anakins mom to have him?
that puts a heck of a spin on things now does it not my padawan!

and yoda says that the legend *May have been mis-read* !!!
so yoda leaves room for the story of the "chosen one" to have been mis-read or mis-interperted by the Jedi!!

so perhaps it was a Sith had to create a Jedi who turns to the sith but creates a jedi who takes down the sith and re-starts the jedi!

like Ragnarok -- the battle at the end of the world that brings forth a new world.

Hmmm.....
May 20, 2005 3:14 PM
 

JonR said:

good stuff carl. not sure if the return type of any belief system is "Truth" though - more likely an object which implements IBelievable. :-)
May 23, 2005 6:32 AM
 

TrackBack said:

May 23, 2005 10:11 AM
 

Paul said:

I think this should be titled: Jedi Masters make bad programmers. After watching the movie last night, I came to the conclusion that both Obiwan and Yoda make horrible programmers. They are given one requirement, kill the Sith.

Obiwan had the opportunity to achieve the only requirement Yoda set out, but walked away.

Yoda on the other hand found his task too tough and crawled away.

The only way the Jedi could achieve decent Performance was to utilize a third party component, which ended up being their downfall. Classic build versus buy scenario and the Jedi chose to buy. Since the Jedi are an elite group of people, they can't simply add just anyone to their group, so they ended up using Clone Troopers to do most of their fighting.

Security was the last thing on the Jedi mind. They left their future unguarded in the Jedi temple as Anakin slaughtered the future of the Jedi. They paid the price.

Availability and Scalability is an inherit flaw in the Jedi since they can not easily scale out or be available due to their elite nature.

Extensibility is something that Jedi also lack. Since they are bound to exclude emotion from their actions, they are not utilizing their full capability and are being handcuffed unlike the Sith who allow emotion to enter into their minds. This is what lead Anakin to the Dark Side, the promise (albeit a false promise) to learn things that the Jedi simply won't teach.

Anyways... just had to rant.
May 26, 2005 8:44 AM
 

tomawesome said:

good analysis Paul. I think Vader and the Imperial forces/Trade Federation were obviously more productive than the Jedi and the Rebel Alliance. who built the death stars? who built all the droids and clones/storm troopers? did the Jedi ever produce any tangible artifacts (ok, I'll grant the lightsabers but beyond that)? they seem to me more as anarchists, determined to overthrow the new order. as programmers, I think the Jedi would fall into the academic, ivory tower category -- endlessly fretting about best practices and advancing theory without ever getting down to business. so maybe I'm saying the best programmres practice a dark art?
May 26, 2005 1:10 PM

Leave a Comment

(required)  
(optional)
(required)  
Add