1 ) A system for implementing large-scale distributed data-flow based applications comprising the following: a) A data-flow based scheduling environment, for managing the execution of one or more control-flow based functional building blocks based on one or more rules of data flow; b) A visual programming environment, wherein such environment provides the ability to build and control the flow of data collections between small control-flow based functional building-blocks such as widgets within the scheduling environment; c) A pin-based API that provides access to contents from the executing code within the widgets; d) A strongly-typed run-time accessible type system; and e) One or more building block widgets that perform one or more actions in response to data-flow arriving at widget input pins.