Reusable software

When a student of carpentry wishes to learn to build a ladder, he might study an existing ladder. He may learn to make each part. And by so doing, he will learn powerful, reusable concepts. He will learn the function of a rung as structure and step. He will learn the value of precision in making a hole for each rung. He can then use those concepts to build a fine ladder.

In order to learn, he may also disassemble a ladder and rebuild it from those parts. He will have a good idea of how the pieces work together. And given good parts, he can build a fine ladder.

I wish to do this with software. I should be able to study an existing piece of software and learn its “parts”. Then I can build a new one myself that suits my needs.

Or, having found a piece of software, I wish to decompose it to a certain level of abstraction. And using those abstractions, build my own software, roughly equivalent to the original.

These are two kinds of reuse: reusing the parts and reusing the ideas. I wish to do more of these by studying existing software. I feel that it would advance my art tremendously.

Related Posts:

  • No Related Posts
blog comments powered by Disqus