1. A method for generating a computer program, the method comprising: receiving user input specifying a prototype, wherein the prototype comprises a series of functional operations, wherein at least one of the operations has an associated one or more parameters; automatically generating a program that implements the prototype, in response to the specified prototype; wherein said automatically generating the program comprises automatically generating a graphical user interface for the program; wherein said automatically generating the graphical user interface comprises automatically creating graphical user interface elements associated with the one or more parameters, wherein during execution of the program, the graphical user interface elements are displayed and are operable to receive user input and/or display output.