April 9-11th 2014
Churchill College, Cambridge UK

Session

Session Title

Enhancing notational flexibility and usability of projectional editors

Session Type Case Study
Duration 60 minutes
Session Description

Compared to traditional text editors, projectional editors have their benefits as well as weaknesses. The benefits include multiple different notations for data, guarantee of having a correct AST at any time and language composition free of grammar ambiguity problems. On the weaknesses side, editing experience with text-like notation tends to be sub-optimal in projectional editors, as they typically don't match unlimited freedom of change given by textual editors. Also, using a projectional editor usually would require installing a special application which is not always feasible.

We present a solution that leverages the benefits while addressing the weaknesses of projectional editing. We will show how to easily define a projectional editor that combines graphical, tabular, textual notations, lets you either mix or seamlessly switch between those, and is deployable to the web which makes it reusable by developers and accessible to users. We will also show how we tackle the problem of bridging the gap between projectional text-like and real textual editors, liberating the developer from much of the routine work of making the editing process convenient and intuitive.

Speaker(s)

Daniil Elovkov (JetBrains)

Daniil Elovkov is a developer in the MPS team at JetBrains who is enthusiastic about the idea of language engineering and lowering the barrier for creating new languages and safely mixing them. He previously worked for Sun Microsystems developing internal tools where he already started to develop a DSL-based approach to solving end-user tasks.

Mihail Muhin (JetBrains)


Mihail Muhin works for JetBrains in Saint-Petersburg, Russia. He is a developer of MPS, an IDE for DSL development. Having worked on MPS for 6 years, he has seen the very first steps in developing of the IDE. Mihail believes that complex software can be designed in such a way that it is easily understandable by the user.