Two things to add. First, I just want to distingui...
# thinking-together
w
Two things to add. First, I just want to distinguish between emergent behavior and inconsistent models. I would expect that most bugs come from the programmer thinking the program did one thing, but then it does another. As opposed to thinking the program does something, it does that thing as you expect, but it also does another thing that’s unexpected. Second, this idea of emergent behavior in programmable systems is part of what killed off cognitive science research in programming in the mid 90s. Here’s a quote from “Let’s Get Real: A Position Paper on the Role of Cognitive Psychology in the Design of Humanly Useful and Usable Systems” (Landauer 1995): “Now consider that present computer programs and systems have sufficient com­plexity that most programs cannot be proved, and that irreducible bugs are the norm, and it is apparent that the other side of the interface is also severely limited in its theoretical tractability. When we then put humans and computers together into a jointly functioning interactive whole, we are almost certain to have a situa­tion in which all of the prediction-defying pathologies of highly complex nonlinear dynamical systems will abound.”
Extended quote: “It will, I think, be much more realistic, and fruitful as well, to expect that the phenomena of HCI will (a) sometimes manifest extreme sensitivity to starting variable value differences, as happens in weather systems for example, and may occur in HCI as a function of context, memory content, or individual perfor­mance trajectories; (b) simply be too computationally complex to calculate in real time to sufficient accuracy, as is the case for fluid flow over surfaces for example, and may occur in HCI as a function of the unlimited content-addressability of human memory, the flood of current contextual influences on individual and group behavior, or the mere combinatorial complexity of the joint states available to two Turing machines; and (c) be subject to too many important variables that are impossible to know in advance in any practical way (which users at company X will have looked up the syntax for rare query type Y?); or (d) be subject to extreme random variation (who will make a typographical error that invokes a rare program bug that causes a crash that takes the administrator three days to fix because backups are done only by a rival department?).”
s
That paper title is 💣
i
That's a really great reference and neat tie in, thanks 🙂
w
Sure thing. There’s also a good response paper that’s optimistic on the role of cognitive science in HCI: Green, T.R.G., S.P. Davies, and D.J. Gilmore. “Delivering Cognitive Psychology to HCI: The Problems of Common Language and of Knowledge Transfer.” Interacting with Computers 8, no. 1 (March 1996): 89–111. https://doi.org/10.1016/0953-5438(95)01020-3.
I’ve also been accumulating papers (200+ so far!) about programming + psychology/cognitive science/HCI/education if anyone is interested in an extended, loosely sorted bibliography: https://www.zotero.org/groups/2295262/programmingcognition/items/order/year/sort/asc
❤️ 3
👍 2