1. A method with an integrated development environment (IDE) to guide development of applications to implement a programming design objective, comprising: receiving, with a source code editor of the IDE, source code and a tag added to the source code, the tag indicating a programming design objective for the source code; invoking, with the IDE, a source code analyzer that analyzes at least a portion of the source code; and outputs a message in response to determining that the at least a portion of the source code fails to conform to one or more constraints of the programming design objective indicated by the tag, the determining being based at least on the tag and the analyzing of the at least a portion of the source code; and displaying, at a user output interface, based at least on the message outputted by the source code analyzer, one or more hints and proposals to fix the source code that fails to conform to one or more constraints of the programming design objective indicated by the tag.