|
In lugnet.mediawatch, James Wilson wrote:
|
I was just reading a new article at http://www.extremetech.com (article url:
http://www.extremetech.com/article2/0,1558,1547466,00.asp ) about modularity
of computer components, how things should be easier to assemble yourself,
etc. Article uses Lego as the example of modularity (a good analogy, I
think).
|
(snip)
Its a pet peeve of mine to insist that the analogy of modular programs to LEGO
parts is overrated and underrated at the same time. Every so often this analogy
pops up in tech articles on modular software engineering, without really
thinking it through.
First of all, if the article says truly upgradable like LEGO the author is
appearantly painfully unaware of incompatibillity issues within the LEGO realm
(color changes, Galidor, ZNAP and the new McDonald promos just being some
recent examples).
But lets leave those issues aside and focus on basic System and Technic brick
building. The concept of Modularity is often used in two different meanings.
1) From classical architecture Modularity means that all sizes of a building and
its parts are standardized; the size of each part is a multiple of the same
basic size - the modulus, often related to the size of a human limb or body.
This was mainly an aesthetic ideal; practical building advantages of repetitive
sizes were a side effect.
2) In modern system design of functional devices (physical or software)
Modularity means that components of the system are designed to be easily
seperated and exchanged.
So where does that leave LEGO bricks?
1) Clearly the LEGO system of play is a Modular system in its original
meaning: all sizes are multiples of the same modulus. 2) As LEGO builders we
all have experienced that modularity in its modern meaning (exchangable
components) is not inherent to the brick system, but is in the design of our
creations. For example, many TLG Technic sets are very hard to take partly apart
and change around, others are explicitly designed to do just that. Also, think
of modular castles versus monolithic ones.
So where does that leave the analogy of LEGO bricks to modular programming?
1) Obviously the analogy does not refer to standard sizes except on a very
abstract level of compatibility. 2) The analogy does make sense concerning
functional modularity: but what we can learn from the analogy is not that
programs should be modular like LEGO bricks in themselves. The analogy should
learn us that functional modularity is in *clever design*, in software
engineering just as in LEGO engineering.
So my suggestion is that whenever software engineers obligatorily use the LEGO
analogy, they should not dismiss it. Instead, they might actually gain more
insight in the essence of modular programming if they think the analogy true and
enrich it with actual compatiblity and modularity issues in LEGO building.
Eric Brok
LEGO On my mind
http://home.zonnet.nl/ericbrok/legomind/
|
|
Message has 1 Reply:
Message is in Reply To:
3 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
This Message and its Replies on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|