Language Interaction Design

March 07, 2013

With Tijs van der Storm and William Cook I’m organizing a Lorentz Center workshop on Language Interaction Design.

Description: Software programs are the carriers of computational knowledge. Their construction is governed by the formal syntactic and semantic rules of a programming language. Programming language design typically focuses on notation, programming models, and semantics. However, such designs typically ignore the interaction of software developers with program code.

Integrated development environments (IDE) increase the productivity of programmers by supporting them in the interactive construction and maintenance of programs. For example, syntax highlighting distinguishes different categories of words in a program, and helps in signposting and visualizing the structure of programs; inline error markers indicate syntactic and semantic problems where they occur instead of in a separate error list; code completion supports discovery of available functionality; and hyperlinking of identifiers allows navigation along definition chains across compilation units.

Traditionally, development environments are post-hoc artifacts, retrofitting interaction design to existing languages. For example, due to its dynamic nature it is hard to provide reliable program understanding services for JavaScript programs.

We propose language interaction design as the integration of interaction design in programming language design, reserving a key role for language interaction in the design process. Research in language interaction design studies the interplay between programming language design and programming environments, identifying beneficial and harmful design patterns that can inform language designers in an early stage of the design process.

The goal of this workshop is to lay the foundations for a discipline of language interaction design by bringing together a select group of leading researchers from the fields of programming languages, domain-specific languages (DSLs), model-driven development (MDD) and human-computer interaction (HCI). The workshop will be considered a success if it produces a joint understanding of language interaction design through the formulation of a taxonomy and a research agenda based on a series of case studies.