First post
Applied Intentionality - Whats it all about?
This is the first of a series of blog posts that I promised myself I would write in an effort to catalogue and track the progress of my research into applied intentionality. I settled on the format a year ago. Blog posts and tweets for my transient thoughts and opinions, the good, the bad and the ungrammatical, and static pages for the growing body of documentation that will surely evolve and change to reflect the status quo of applied intentionality.
It is now one year later and this is the first blog, and there have been zero tweets. But I did make a start, the year has allowed me that. And I have quite a body of text that I aim to publish over the next couple of weeks. I quickly found out that blogging about a topic that I don’t really understand is not so easy. I really hope that practice makes me a better blogger, because I really want to record where I get it wrong, as well as where I think I’ve got it right.
So applied intentionality. What’s it all about?
All software exhibits intentionality. Software is about something, or its for something. It has a purpose. Software intentionality is of the derived kind. It is a manifestation of somebody else’s intentionality. A developer, a software house, a product owner, a visionary. Maybe all of these at once. But this derived intentionality does not live in the code. If it is explicitly stated at all, then it is stated somewhere else, in documentation, or in test specifications, or on the back of a fag packet. To be sure, there is some semblance of intentionality to be found in code, but this is much more to do with semantics. Semantic elements of code often correlate with intentionality. Menus, Sections and Articles are all to be found in the semantic language of HTML, and these do express a level of intentionality. But in what way is the semantic tag called menu about something, apart from being about menus? And then there is the semantic web initiative. This effort introduces finer grained semantics, but to call this intentionality is to misunderstand the intentions of the semantic web - which is to make internet data machine readable.
So far, the best we can say about coded intentionality is that it is code lurking with intent. Which is a pity on the one hand, but a great opportunity on the other. Because intentionality, correctly expressed through code would have the following advantages
- code is the documentation
- code is the one version of the truth
- code is the test specification
- code is intentional
I’ll try to expand on the first three points in a later blog, but “code is intentional”? That sounds a bit tautological, especially when you say “intentional code is intentional”. But what I’m really getting at here is that by applying intentionality directly to code, it becomes intentional in the sense that others can rationalize about it. And by others, I now include the idea of artificial agents.
The primary focus of this research here at intentional-dev is to establish patterns and invent mechanisms that will support coded intentionality, such that it can be mechanically associated with semantic functionality. Ideally, this would be an AI appointed task, a kind of augmented development, but there is also a lot of scope for inventing new kinds of program syntax that will allow humans to continue to play all of the parts. After all, humans - particularly those with an IT bias - have powers of rationality that machines can only gasp at in wonder, and it would be silly not to take advantage of this understated capability.
💬 Comments
Post comment