
Story-Oriented Programming - theqabalist
http://www.brandonkeown.com/2018/05/story-oriented-programming.html
======
dfee
> Today Routin discerned that Polys is playing a language game with himself,
> and, growing bored of the language in which Polys typically thinks, wanted
> to hear something in a different language for the joy of it. However, Routin
> doesn’t know anything about language, but he knows someone who does. He
> sends Reqla and Resnak to the one and only gremlin translation company.

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.

~~~
theqabalist
The argument is not to design systems as stories, but to leverage the
psychosocial technology of story to inform both design decisions and
discussion such that you do not need to be a mathematician in order to
contribute. Your system is not going to read like the story. The story is
allegorical. But designing the system like the story allows you to outsource
design decisions to people who can reason about the rhetorical questions at
the end rather than having to reason in a domain that is extremely exclusive,
like higher order mathematics.

~~~
Nasrudith
We have tried that already - it has worked horribly. Dumbing things down to
the level that algorithm is treated as a swear word doesn't make easier to
maintain code. It does the opposite and begets abominations like excel sheet
flat table databases thousands of lines long and inconsistently formatted /for
accounting/. And to add insult to injury if they master it then their growth
is likely to wind up hindered. Besides it isn't the best or even the cheapest
way to produce more. Has anyone read or even heard the concept of the
"Mythical Man Month"?

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.

------
speedplane
From my brief reading of this, the idea is to link programming concepts to
more understandable concepts, primarily using aesthetic and story-telling
techniques that many are already familiar with. A noble goal, except the
variation among people's aesthetic preferences are huge.

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.

~~~
theqabalist
The idea is not to hide design details in specific settings. The idea is first
and foremost that characters in a story are entities people reason easily
about. The story example is not an example of how to design a system, it is an
example of how a story captures the same essence as a possible design but
enables more accessible reasoning.

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.

------
sktrdie
Several literature on the subject which has not been mentioned in this
article:

\- Behavioral Programming
[http://www.wisdom.weizmann.ac.il/~bprogram/](http://www.wisdom.weizmann.ac.il/~bprogram/)

\- Live Sequence Charts (LSCs)
[http://wiki.weizmann.ac.il/playgo/index.php/Live_sequence_ch...](http://wiki.weizmann.ac.il/playgo/index.php/Live_sequence_charts)

