1. A method comprising: receiving, by a conversational programming agent of a programming environment, (i) information regarding a plurality of programming building blocks and (ii) information indicative of a current situation relating to the plurality of programming building blocks; evaluating, by the conversational programming agent, the plurality of programming building blocks based on the current situation; providing, by the conversational programming agent, semantic feedback regarding the plurality of programming building blocks to an end user based on the evaluating; and wherein the conversational programming agent is implemented in one or more processors and one or more computer-readable media of one or more computer systems, the one or more computer-readable media having instructions tangibly embodied therein that are executable by the one or more processors.