Computer Code as a Medium for Human Communication: Are Programming Languages Improving?

Programming languages are not only useful to command computers, they also increasingly are a medium for human communication. I will use the framework of distributed cognition to discuss how knowledge is shared in a team of programmers and to show that computer code plays an important role in it. The resulting model of how programmers comprehend code suggests that common grounds play an important role in it. I propose two hypotheses concerning the means used by programmers to refer to common grounds from within their code. The hypotheses imply that modern languages, such as Scala, offer advantages as human communication mediums. I describe an experiment, using an eye-tracking device, that measures the performance of code comprehension. The hypotheses are tested by varying the degree of reference to common grounds.

[1]  Bob Fields,et al.  ANALYSING HUMAN-COMPUTER INTERACTION AS DISTRIBUTED COGNITION: THE RESOURCES MODEL , 1999 .

[2]  Susan Wiedenbeck,et al.  Mental representations of expert procedural and object-oriented programmers in a software maintenance task , 1999, Int. J. Hum. Comput. Stud..

[3]  Andrew Walenstein,et al.  Observing and measuring cognitive support: steps toward systematic tool evaluation and engineering , 2003, 11th IEEE International Workshop on Program Comprehension, 2003..

[4]  Edwin Hutchins,et al.  How a Cockpit Remembers Its Speeds , 1995, Cogn. Sci..

[5]  Fred P. Brooks,et al.  The Mythical Man-Month , 1975, Reliable Software.

[6]  Helen Sharp,et al.  A Distributed Cognition Account of Mature XP Teams , 2006, XP.

[7]  W. Douglas Brooks,et al.  Software technology payoff: Some statistical evidence , 1981, J. Syst. Softw..

[8]  Thomas A. Corbi,et al.  Program Understanding: Challenge for the 1990s , 1989, IBM Syst. J..

[9]  Iyad Zayour,et al.  Adoption of reverse engineering tools: a cognitive perspective and methodology , 2001, Proceedings 9th International Workshop on Program Comprehension. IWPC 2001.

[10]  Françoise Détienne,et al.  Object-Oriented Program Comprehension: Effect of Expertise, Task and Phase , 2002, Empirical Software Engineering.

[11]  Yvonne Rogers,et al.  Distributed cognition: an alternative framework for analysing and explaining collaborative working , 1994, J. Inf. Technol..

[12]  Markku Tukiainen,et al.  Analysing and Interpreting Quantitative Eye-Tracking Data in Studies of Programming: Phases of Debugging with Multiple Representations , 2007, PPIG.

[13]  Erkki Sutinen,et al.  Program Visualization: Comparing Eye-Tracking Patterns with Comprehension Summaries , 2006, PPIG.