JAOO - 'Intentional Software'
For me the most interesting session of the whole conference. Charles Simonyi gave a presentation and then demonstration of his Intentional Software. At the start of the session Charles reminded us all how little the software industry has moved in the last 30 odd years, got to say I agree, it's embarrassing how ready we are to re-learn lessons of the past and kid ourselves we've invented something new. Our industry really hasn't grown up yet.
He went on to talk about what we are actually trying to achieve with software, to capture the intent of the business user, could we find a way to bring the language we use to do this closer to the user? The key idea is that developers work on generators, these take a DSL and turn it into executable code, the DSL being tailored to make it easy for business users to express their intent. So the effort switches away from developers writing code which is meant to implement those intents onto working on generators. Charles compared the way we work now to cryptography, taking something we understand and then encoding it. Given some of the code I've seen over the years I can kind of see where is coming from!
One thing which occurred to me was do we risk losing something by weakening the dialogue between the developers and the business users, I've often found the back and forth between the two groups a good way to spot inconsistencies and logical problems with a users perception of what they want and how they think their business processes work. I asked a question along these lines, Charles was very honest and said he'd not really considered it, but on the whole he seemed to think it was a risk worth taking. I guess I'm not convinced just yet, I always remember a project where if we'd not questioned how the users thought something worked we'd have had invoices going in infinite approval loops.
Anyway on to the demo - the tool we were shown seems to be pretty mature and slick. Charles was able to show us multiple perspectives of the same method: as code, as mathematical symbols, as a spreadsheet, etc. He was then able to change the code in any of these perspectives and have that change visible in all the different projections as the change was taking place in the underlying AST. The unit test perspective really caught my attention. This is technology I'd love to get my hands on!
Overall the session left me wanting to know more with a whole bunch of questions and things I'd like to try. Unfortunately no one asked what timescales they are running to and when we might see this in the wild. (doh!)
He went on to talk about what we are actually trying to achieve with software, to capture the intent of the business user, could we find a way to bring the language we use to do this closer to the user? The key idea is that developers work on generators, these take a DSL and turn it into executable code, the DSL being tailored to make it easy for business users to express their intent. So the effort switches away from developers writing code which is meant to implement those intents onto working on generators. Charles compared the way we work now to cryptography, taking something we understand and then encoding it. Given some of the code I've seen over the years I can kind of see where is coming from!
One thing which occurred to me was do we risk losing something by weakening the dialogue between the developers and the business users, I've often found the back and forth between the two groups a good way to spot inconsistencies and logical problems with a users perception of what they want and how they think their business processes work. I asked a question along these lines, Charles was very honest and said he'd not really considered it, but on the whole he seemed to think it was a risk worth taking. I guess I'm not convinced just yet, I always remember a project where if we'd not questioned how the users thought something worked we'd have had invoices going in infinite approval loops.
Anyway on to the demo - the tool we were shown seems to be pretty mature and slick. Charles was able to show us multiple perspectives of the same method: as code, as mathematical symbols, as a spreadsheet, etc. He was then able to change the code in any of these perspectives and have that change visible in all the different projections as the change was taking place in the underlying AST. The unit test perspective really caught my attention. This is technology I'd love to get my hands on!
Overall the session left me wanting to know more with a whole bunch of questions and things I'd like to try. Unfortunately no one asked what timescales they are running to and when we might see this in the wild. (doh!)


0 Comments:
Post a Comment
<< Home