1. A computer program product, tangibly embodied in an information carrier, for developing an application, the computer program product being operable to cause data processing apparatus to: receive a first data model in a first language, the data model being used to structure development objects; generate a set of intermediate objects based on the first data model; and based on the set of intermediate objects and a code template, generate an API to access the development objects.