1. A method to generate an executable task, comprising: inspecting a task specification data structure to determine what software entities will form the executable task; inspecting the task specification data structure to determine how the software entities will be linked after generating the software entities; inspecting the task specification data structure to determine logic to be executed by the software entities; generating the software entities, wherein the software entities are executable components that self-organize after generation and during runtime operation of the software entities combine with one another for forming the executable task; decoupling the task specification data structure from a code generator; after the decoupling, linking at least a portion of the task specification data structure to the executable task; and executing the executable task.