Many concepts in the world of software engineering have formal definitions (declarations of classes, functions, and variables, for example). However, many other concepts don't have formal definitions--yet they are pivotal in software. Product requirements, use cases and personas, design tradeoffs, goals, best practices, and ownership roles come to mind...
Because these concepts lack formal definition, most programming languages provide no way to talk about them other than comments. See http://codecraft.co/2014/07/21/bridging-the-lacuna-humana/. However, it doesn't need to be that way.
What if intent had a mechanism for introducing and defining concepts in an informal way?
Formal definition:
concept name: definition
Information definition:
concept name~: free text providing useful but informal info to a human
By allowing such constructs directly in code, formal concepts can hyperlink to them, marks can be used to adorn them, compilation tools can enumerate them, etc.
Many concepts in the world of software engineering have formal definitions (declarations of classes, functions, and variables, for example). However, many other concepts don't have formal definitions--yet they are pivotal in software. Product requirements, use cases and personas, design tradeoffs, goals, best practices, and ownership roles come to mind...
Because these concepts lack formal definition, most programming languages provide no way to talk about them other than comments. See http://codecraft.co/2014/07/21/bridging-the-lacuna-humana/. However, it doesn't need to be that way.
What if intent had a mechanism for introducing and defining concepts in an informal way?
Formal definition:
Information definition:
By allowing such constructs directly in code, formal concepts can hyperlink to them, marks can be used to adorn them, compilation tools can enumerate them, etc.