IN THE IDEAL world, software developers would
analyze each problem in the language of its domain
and then articulate solutions in matching terms.
They could thus easily communicate with domain
experts and separate problem-specific ideas from
the details of general-purpose languages and specific
program design decisions.
In the real world, however, programmers use a
mainstream programming language someone else
picked for them. To address this conflict, they resort
to—and on occasion build their own—domain-specific
languages embedded in the chosen language
(embedded domain-specific languages, or eDSLs).
for interacting with the Document Object Model and
React for dealing with events and concurrency.
As the software industry enters the era
of language-oriented programming, it needs
programmable programming languages.
BY MATTHIAS FELLEISEN, ROBERT BRUCE FINDLER,
MATTHEW FLATT, SHRIRAM KRISHNAMURTHI, ELI BARZILAY,
JAY MCCARTHY, AND SAM TOBIN-HOCHSTADT
˽ Language-oriented programming is
an emerging software-development
paradigm likely to revolutionize the way
people build software.
˽ It elevates “language” itself to a software
building block, with the same status as
objects, modules, and components.
˽ As with other paradigms, language
orientation thrives when the base
language supports it directly; the Racket
project has worked on support for
language-oriented programming for 20
years, providing a platform for exploring
this exciting new development in depth.