And -
> Avoiding humility or feeling silly or stroking a big ego are not valid (moral) reasons to preclude something that may otherwise lead to progress in an area that is difficult. If you are a very intelligent person, and you find that you have a hard time letting go of the need to midas-touch everything you interact with, you may be contributing to the problem of difficult to maintain and difficult to reason about software.
If the argument is “story design your systems”, and this is what we get, it’s just too much for me.
The idea is dangerously wrongheaded in many other ways. Those hard concepts aren't for the sake of some hierarchical clubhouse but because they are fundamental at worst and at best would take real intellectual labor to remove and reduce to something simpler without creating other problems.
Frankly we need to abandon this anti-intellectual fantasy that we can all be spared the hard work of learning by utilizing the uninitiated masses. It is wishful thinking run amok. Gather their input, figure out how they do things already, explain it in whatever way, sure. But trying to get them to do it without serious training to make them the "old" elite will end in tears.
Would you have to have two programming languages for two people who like sci-fi versus history? Or how about teen drama versus high art?
Linking programming to these extremely subjective aesthetics is a worthy effort to make programming more accessible, but one that is not entirely workable across personal preferences.
When I employ the concept of narrative I am not specifically talking about common fiction. I am talking about the abstract idea of communicative flows within groups, which combine to form a story. You and I having this conversation is narrative, and forms a story about what you may or may not say next in order to navigate understanding of the underlying concept. I am arguing that this natural process is replicable in systems design where components have a simplified skeuomorphic version of this type of interchange.
- Behavioral Programming http://www.wisdom.weizmann.ac.il/~bprogram/
- Live Sequence Charts (LSCs) http://wiki.weizmann.ac.il/playgo/index.php/Live_sequence_ch...