1. A method for supporting development of content independent of multiple hardware platforms, comprising: storing components, each including a plurality of alternate implementations for providing analogous functions, each of the alternate implementations comprising at least one executable block and a list of resources needed by said alternate implementation; for each component including a set of alternate implementations, selecting an implementation from among the set of alternate implementations based on characteristics of the hardware platform and a negotiation process in which resource requirements of each alternative implementation are considered, along with the costs and benefits of variations in such resource requirements, thereby allowing selection of an implementation, wherein the selecting, the implementations and the negotiation process are performed automatically; storing an application graph that expresses the identity of the blocks of the selected ones of the alternate implementations and data connectivity between the blocks; and traversing the application graph at run-time, including executing appropriate ones of the selected blocks on the selected target hardware platform.