📝 Abstract
The dominant programming languages support nothing but linear text
to express domain-specific geometric ideas. What is needed are
hybrid languages that allow developers to create visual syntactic
constructs so that they can express their ideas with a mix of
textual and visual syntax tailored to an application domain. This
mix must put the two kinds of syntax on equal footing and, just as
importantly, the extended language must not disrupt a programmer's
typical workflow. This means that any new visual syntax should be a
proper language extension that is composable with other language
features. Furthermore, the extensions should also preserve static
reasoning about the program. This paper presents Hybrid ClojureScript
the first such hybrid programming language. Hybrid ClojureScript allows
programmers to add visual interactive syntax and to embed instances
of this syntax within a program's text. An enhanced hybrid IDE can
then display these embedded instances as mini-GUIs that
programmers interact with, while other IDEs will show a textual
representation of the syntax. The paper argues the necessity of
such an extensibility mechanism, demonstrates the adoptability of
the design, and discusses what might be needed to use the design
in other languages.