A system for developing industrial control programming, comprising: a memory that stores executable components; and a processor, operatively coupled to the memory, that is configured to execute the executable components, the executable components comprising: a user interface component configured to receive industrial control programming formatted as an industrial domain-specific language, DSL, and to render programming feedback in response to receipt of the industrial control programming, wherein the user interface component is configured to generate the programming feedback based on industry-specific guardrail definitions, and wherein the programming feedback comprises at least one of a programming recommendation, an auto-completion, an error highlight, or a syntax highlight that facilitates compliance of the industrial control programming with an industry-specific standard defined by the industry-specific guardrail definitions; and a DSL editor configured to parse the industrial control programming, formatted as the industrial DSL, to yield a hierarchical model of the industrial control programming and to compile the hierarchical model to yield industrial control code that is executable on an industrial control device, wherein the DSL editor is configured to select, from a library of pre-defined code modules, a code module inferred to be relevant to an inferred current programming task, the current programming task being inferred based on the received industrial control programming, and wherein the programming feedback further comprises a recommendation to add the code module to the industrial control programming based on the inference of the current programming task. a memory that stores executable components; and a processor, operatively coupled to the memory, that is configured to execute the executable components, the executable components comprising: a user interface component configured to receive industrial control programming formatted as an industrial domain-specific language, DSL, and to render programming feedback in response to receipt of the industrial control programming, wherein the user interface component is configured to generate the programming feedback based on industry-specific guardrail definitions, and wherein the programming feedback comprises at least one of a programming recommendation, an auto-completion, an error highlight, or a syntax highlight that facilitates compliance of the industrial control programming with an industry-specific standard defined by the industry-specific guardrail definitions; and a DSL editor configured to parse the industrial control programming, formatted as the industrial DSL, to yield a hierarchical model of the industrial control programming and to compile the hierarchical model to yield industrial control code that is executable on an industrial control device, wherein the DSL editor is configured to select, from a library of pre-defined code modules, a code module inferred to be relevant to an inferred current programming task, the current programming task being inferred based on the received industrial control programming, and a user interface component configured to receive industrial control programming formatted as an industrial domain-specific language, DSL, and to render programming feedback in response to receipt of the industrial control programming, wherein the user interface component is configured to generate the programming feedback based on industry-specific guardrail definitions, and wherein the programming feedback comprises at least one of a programming recommendation, an auto-completion, an error highlight, or a syntax highlight that facilitates compliance of the industrial control programming with an industry-specific standard defined by the industry-specific guardrail definitions; and a DSL editor configured to parse the industrial control programming, formatted as the industrial DSL, to yield a hierarchical model of the industrial control programming and to compile the hierarchical model to yield industrial control code that is executable on an industrial control device, wherein the DSL editor is configured to select, from a library of pre-defined code modules, a code module inferred to be relevant to an inferred current programming task, the current programming task being inferred based on the received industrial control programming, and wherein the programming feedback further comprises a recommendation to add the code module to the industrial control programming based on the inference of the current programming task.