1. An computer program generation system for creating a computer program comprising: a recorder module capable of recording data comprising actions of a user of one or more applications; a storage module to store predefined portions of source code; and a code generation module capable of generating source code for the computer program using the data and the predefined portions of source code from the storage module.