Things aren't as different as they seem

Published October 01, 2004
Advertisement
At university today there was a short talk on what constitutes program design. The usual terms came up about it being a plan for the development, or a plan of the program or data flow, etc.

It occurred to me that a design is really just a cheap prototype. In a sense, you write or draw a design to prove to yourself that the idea is viable. The more detailed the design, the more proof you've given yourself. Later on you solidify the design in terms of code or whatever. Some systems like you to go so far as to write down function and class names on paper before you start implementing. So what you essentially have there is a prototype, which just happens to be on paper rather than on disk. And instead of physically executing your prototype, you mentally execute your design, seeing how things link together, making mental notes of what is missing and what needs to be amended. The point here is that big up-front design on paper and rapid prototype development are perhaps not really separate paradigms but more 2 ways of implementing the iterative development model where you work gradually from a rough initial prototype to a finished product.

Similarly, the arguments between compiled and interpreted languages, or static and dynamic typing, and so on, can be seen to be almost irrelevant if you stop thinking of a compiler as an essential tool in the compiled language development process, but rather as a combined testing and optimisation tool that merely tests type constraints to reduce errors and optimises code to make it run faster.

Maybe we could eliminate the religious arguments if we could think about all these things as shades of grey rather than black and white all the time. I think I might investigate these things further for my Masters project.
Previous Entry Programmers scare me
Next Entry Refresher courses
0 likes 0 comments

Comments

Nobody has left a comment. You can be the first!
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement

Latest Entries

Advertisement