An Empirical Study of Programming Paradigms for Animation

Animations are an essential part of many modern user interfaces. They are often defined programmatically, which allows for parametrization and reuse. Two programming paradigms to define animations are common: Procedural animation programming allows the developer to make explicit updates to object properties at each frame, allowing maximum control over behavior. Declarative animation programming allows the developer to specify keyframes, i.e., the value of an object’s property at a given point in time. All frames between two keyframes are automatically interpolated by the animation library. In this paper, we investigate how these common programming paradigms differ in terms of developers’ productivity. In a controlled laboratory study, we asked developers to implement a set of simple animations using both paradigms. We found that developers can implement a given behavior faster using declarative animation programming, but the abstraction introduced by automatically creating the animation through keyframe interpolation left participants with unexpected behavior for some tasks.

[1]  Françoise Détienne,et al.  Software Design — Cognitive Aspects , 2001, Practitioner Series.

[2]  Eric Rosenbaum,et al.  Scratch: programming for all , 2009, Commun. ACM.

[3]  Yan Zhang,et al.  A qualitative study of animation programming in the wild , 2010, ESEM '10.

[4]  Richard E. Parent,et al.  Computer animation - algorithms and techniques , 2012 .

[5]  Ron Brinkmann,et al.  The Art and Science of Digital Compositing: Techniques for Visual Effects, Animation and Motion Graphics , 1999 .

[6]  Jan O. Borchers,et al.  How live coding affects developers' coding behavior , 2014, 2014 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC).

[7]  Jonathan Edwards,et al.  Example centric programming , 2004, SIGP.

[8]  Bay-Wei Chang,et al.  Animation: from cartoons to the user interface , 1993, UIST '93.

[9]  Ron Brinkmann The Art and Science of Digital Compositing, Second Edition: Techniques for Visual Effects, Animation and Motion Graphics (The Morgan Kaufmann Series in ... Morgan Kaufmann Series in Computer Graphics) , 2008 .

[10]  Jan Borchers,et al.  Programmatic Animations - User Study Tasks , 2016 .

[11]  Brad A. Myers,et al.  ConstraintJS: programming interactive behaviors for the web by integrating constraints and states , 2012, UIST '12.

[12]  R. Mayer,et al.  Multimedia learning: Are we asking the right questions? , 1997 .

[13]  Jonathan J. Cadiz,et al.  A seamless integration of algorithm animation into a visual programming language , 1996, AVI '96.

[14]  Robert A. Duisberg,et al.  Animation Using Temporal Constraints: an Overview of the Animus System , 1987, SGCH.

[15]  Jan Borchers,et al.  Programmatic Animations - Performance Data , 2016 .