Jump to content
Site Stability Read more... ×
  • Advertisement
Sign in to follow this  
  • entries
  • comments
  • views

Things aren't as different as they seem

Sign in to follow this  


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.
Sign in to follow this  


Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!