Legos as a Metaphor

Monday, April 23, 2012 08:56 Posted by leosaumure
I have some topics that I'd like to discuss over the next few days, but I thought it might be a good idea to preface those up-coming posts with a bit of a primer. I'm going to be talking about various programs and questions I have about using various operating systems, and I thought that the use of Lego as a metaphor for programs might be a good way to envision my entries.

Now, I know there are probably a lot of open source geeks out there that would be pedantic about using the Lego block as a metaphor...

Said in the voice of Comic Book Guy from The Simpson:  Legos are proprietary toys, and as such don't fit with the whole open-source mantra. A better metaphor would be a non-copyrightable building block that the user could build themselves and distribute freely to the entire world. They should be called Lin-Blocks and have a blocky shaped penguin as the logo!
Yeah, yeah, yeah...blah, blah, blah, open source rules the world.  But until you all start driving an open source car to work, let me have my Lego metaphor (I just know that there will be comments from people who have built open sourced cars...).

Ok, back to the metaphor. In my opinion, Legos are a great metaphor for programs. Basically a Lego block is a building block; it is a pre-defined chunk. It has a specific structure, length, shape, colour, hight, etc. But a single block, on its own, might be nice to look at, but it isn't very useful. It is when you combine these blocks with other blocks that things start to get interesting. You can make beautiful and elaborate structures with them.  Like a wall...or a Podracer from Starwars episode one. What you do with these blocks is up to you.

Now, as I understand it, when building a Linux distribution, like Mint, anyone can design a block, but if that block is used within the operating system, then anyone can use or reuse that block without restriction. For instance, if I designed a green six-holed block that I wanted as a corner base for a wall, then there is nothing to stop someone from saying:
Hey, that corner piece would actually be a great piece for the roof! Oh, and I could use a bunch of them for the window!
Added to that, there is nothing to stop someone from redesigning my block into a eight-holed block as it would work better in their design.

My question is however, does that hold true with the programs that run on Linux?  For instance, we can think of Linux distributions as a 10,000 piece Tub-O-Legos. You get all these pieces, and anyone can make what they want out of them. But how do we think about things like Skype, or GIMP, or Google Chrome? Are these more like the Star Wars Death Star Lego set? The only thing you can make with them is the Death Star...that's it!

Are you allowed to take a piece from the Death Star antennae array and add it to what you've already built with the 10,000 piece set? Or can you only place the Death Star at the top of what you built?

Do the programs that operate on top of Linux operate the same as Linux itself? For example, I can look at my Linux Mint Lego sculpture and determine the shape, size and colour of a particular piece.  Am I able to do the same with a pre-fabricated Lego set? Am I able to look at a particular piece of the R2D2 Lego set and see that the his leg joint is three pins wide, is white, and has a normal lego depth?

Can anyone answer my Death Star/R2D2 Lego questions?

I will have lots of other Lego related questions in the next few days.

0 Response to "Legos as a Metaphor"

Post a Comment