This is why we integrated the structure editor
into a popular IDE like Eclipse and also provided the
textual editor as part of the plug-in. As a result, the
programmers may just use the structured
representation where this seems helpful – and
perhaps find out that this applies in more cases than
expected.
6.2 Structure Editors are Still Useful
However, we still feel that structure editors can be
useful and that programmers will slowly adapt to
them as soon as there are powerful structure editors
widely available and plugged into mainstream IDEs.
We particularly expect benefits in the context of
language-oriented programming, i.e., programming
with Domain-Specific Languages. Using external
DSLs a structure editor is needed to do the mapping
between the “domain code” (Simonyi, 2006) and the
runnable code. As expressed before, it actually
becomes part of the language itself. Even using
internal DSLs that are based on some extendable
programming language like Lisp, structure editors
can be quite useful. The DSLs most likely will be
different from widely known languages so most
users with will be novices in using them, at first. We
feel that a structure editor will help people getting
started with a new language. Similar experience was
made by Conway et al. (2000) and Myers et al.
(2004) who developed and evaluated structure
editors that were designed for programming novices
and even for children.
An experienced programmer perhaps will feel
more comfortable using a textual editor. However,
trying to understand a piece of code that was written
by someone else or some time ago can sometimes be
a difficult task. We think that in this case it would be
advantageous to be able to switch to a structured
representation of the code to get an overview and to
understand the structure of the code.
6.3 Future Work
As future work, we plan to extend our evaluation of
the structure editor towards its use in programming
DSLs. In addition to readability and
understandability of code we will examine the
effects of the editor on the learning curve for DSLs
as well as the effectiveness and efficiency of
programming.
A program editor is a tool and no silver bullet. In
the end, it is a matter of taste which kind of editor a
programmer feels most appropriate for achieving a
task – and this is a case for structure editors.
REFERENCES
Ballance, R. A., Graham, S. L., and van de Vanter, M. L.,
1992. The Pan language-based editing system. In ACM
Transactions on Software Engineering Methodology
(TOSEM), Vol. 1, pp. 95-127.
Bevan, N., 1995. Measuring usability as quality of use. In
Software Quality Journal, Vol. 4, pp. 115–30.
Borras, P., Clement, D., Despeyroux, T., Incerpi, J., Kahn,
G., Lang, B., and Pascual, V., 1988. Centaur: the
system. In SDE 3: Proceedings of the third ACM
SIGSOFT/SIGPLAN software engineering symposium
on Practical software development environments. New
York, NY, USA, ACM, pp. 14-24.
Brooks, F. P., 1987. No Silver Bullet: Essence and
Accidents of Software Engineering. In IEEE
Computer, Vol. 20, pp. 10-19.
Burton, R. R., Masinter, L. M., Bobrow, D. G.,
Haugeland, W. S., Kaplan, R. M., and Sheil, B. A.,
1980. Overview and status of DoradoLisp. In LFP '80
Proceedings of the 1980 ACM conference on LISP and
functional programming, pp. 243-247.
Conway, M., Audia, S., Burnette, T., Cosgrove, D., and
Chistiansen, K., 2000. Alice: lessons learned from
building a 3D system for novices. In CHI ‘00:
Proceedings of the SIGCHI conference on Human
factors in computing systems. New York, NY, USA,
ACM, pp. 486–93.
Dimitriev, S., 2004. Language Oriented Programming:
The Next Programming Paradigm. In onBoard, Vol. 1
Donzeau-Gouge, V., Huet, G., Kahn, G., Lang, B., 1980.
Programming Environments based on Structured
Editors: The MENTOR Experience
Dumas, J. S. and Redish, J. C., 1999. A practical guide to
usability testing. Exeter, Intellect.
Edwards, J., 2007. No Ifs, Ands, or Buts. Uncovering the
Simplicity of Conditionals. In Proceedings of the 22nd
annual ACM SIGPLAN conference on Object-oriented
programming systems and applications (OOPSLA '07)
Hansen, W. J., 1971. User engineering principles for
interactive systems. In AFIPS 1971 Fall joint
computer conference. Montvale, New Jersey, AFIPS
Press, pp. 523–32.
Humm, B. G. and Engelschall, R. S., 2010. Language-
oriented Programming via DSL Stacking. In
Proceedings of the 5th International Conference on
Software and Data Technologies (ICSOFT 2010), pp.
279–287.
Jasko, T. and Ritchey, T., 2010. CUSP - A Lisp plugin for
Eclipse. http://www.bitfauna.com/projects/cusp/.
Ko, A. J. and Myers, B. A., 2006. Barista: An
implementation framework for enabling new tools,
interaction techniques and views in code editors. In
CHI ‘06: Proceedings of the SIGCHI conference on
Human Factors in computing systems. New York, NY,
USA, ACM, pp. 387-396.
McCarthy, J., 1960. Recursive functions of symbolic
expressions and their computation by machine, Part I.
Communications of the ACM, Vol. 3, pp. 184-195.
ENASE 2011 - 6th International Conference on Evaluation of Novel Software Approaches to Software Engineering
68