Can Software Be Like Building Lego?
I'm not thinking about programming the actual solid plastic bricks (though some people do). Rather i'm thinking about the idea of:
"Making the construction of a program, as simple, fun and obvious, as putting lego blocks together"
I've seen lots of people write about this idea before -- either denying that such a thing is possible, or pimping their own new tool as the long-awaited realisation of the 'lego programming' dream.
But neither side has ever clinched if for me. One group argues that lego programming is not possible, because programming is just too tricky.
The other group will point to some new technology they've created, and claim that this will finally bring 'programming to the masses' -- which is the kind of crazy talk i'm tired of.
But I like to think about this Lego Programming idea now and then. To understand the idea, I think you've got to start by looking at lego itself...
Building With Lego Is Fun And Easy
What makes it so?
My first thoughts were all about the lego itself...
- The colours are bright.
- The constituent parts are almost indestructible.
- They have a very visual and obvious connection mechanism:
- it's obvious how two pieces connect
- it's obvious how many pieces can interconnect.
- It's obvious when two pieces are fully connected. They can't be *half* connected.
- It's obvious when a piece is connected.
- It's obvious when a piece is not connected.
- You don't get your hands dirty.
- You get a result quickly.
- There are many many less choices -- the material is pre-chosen.
- Blocks can't be broken down beyond their original size: You can't use half a block.
- Everything you build with lego looks like it was built with lego.
But then I started to think about the 'Tool Chain' involved in building lego... and this seems to be the real differentiator of lego:
- You don't need any tools to build with lego -- just the lego itself, and your hands.
- Anything built with lego can be torn apart with just your hands.
- Anything built with lego can be added to, altered, investigated, without using any special tools at all.
And I think that's the real essence of lego -- no tools, no workbench, no spanners, no visual studio .net license required.
The Real Question about Lego...
The real question about lego is one I can't answer. Here's three different ways to phrase it:
- Is it possible to efficiently build something truly useful out of lego?
- Is lego confined to toys?
- Is lego merely an educational tool?
And some references.
Here's some of the things that made me think about lego programming in the last six months:
And most important of all, here's that Lego Machine Gun.
Next → ← PreviousMy book "Choose Your First Product" is available now.
It gives you 4 easy steps to find and validate a humble product idea.