May/June 2018 issue of acmqueue The May/June issue of acmqueue is out now



Programming Languages

  Download PDF version of this article PDF

ITEM not available

acmqueue

Originally published in Queue vol. 9, no. 6
see this item in the ACM Digital Library


Tweet



Related:

David Chisnall - C Is Not a Low-level Language
Your computer is not a fast PDP-11.


Tobias Lauinger, Abdelberi Chaabane, Christo Wilson - Thou Shalt Not Depend on Me
A look at JavaScript libraries in the wild


Robert C. Seacord - Uninitialized Reads
Understanding the proposed revisions to the C language


Carlos Baquero, Nuno Preguiça - Why Logical Clocks are Easy
Sometimes all you need is the right language.



Comments

(newest first)

Matthias Felleisen | Thu, 04 Aug 2011 22:26:46 UTC

DSLs have been around in the LISP world forever. The tools for building them and for integrating them into the existing toolchain are far more advanced than in the JAVA world. For an example, see

http://www.ccs.neu.edu/scheme/pubs/#pldi11-thacff for a research-y introduction

or

http://hashcollision.org/brainfudge/ for a hands-on introduction.


Tom Gardner | Sat, 04 Jun 2011 10:11:17 UTC

The traditional alternative to a DSL is a well-designed domain specific library written in a traditional language. It is useful to consider how such a library avoids disadvantages to DSLs that are not mentioned by Ghosh.

Documenting a new language in sufficient detail that new users can avoid traps and pitfalls is not easy and requires significant effort.

As a DSL inevitably grows, the interaction between language features and with its execution environment becomes poorly understood and buggy.

Tool support (as found in a modern IDE) for a large codebase is mandatory and requires significant effort. "grep" is not sufficient.

Learning a language that is only used in one location is often seen as a "career limiting" non-transferable skill, so it can be difficult to employ good staff.

The ability for non-programmers to write the application in the DSL runs into the well-known problem most simply expressed as "Make it possible for programmers to write in English and you will find that programmers cannot write in English".

Well-designed libraries are more verbose, but avoid those problems


Leave this field empty

Post a Comment:







© 2018 ACM, Inc. All Rights Reserved.