A tale about domain-specific languages

1997

John
Scan of that very napkin.

1999

Hi,

We’ve just got new order, diary No: 1999/3456/32-A. It’s books, covers 250g/m2.

Left: 30 mm

Top: 15 mm

Right: 20 mm

Bottom: 1 in

Thanks,

2000

Page margins specification in Microsoft Word. Note “error messages” for misspelled words.
Jane
Boilerplate Java code that Jane has to write.

From Word to Excel

Page margins specified in Microsoft Excel. Note how error messages implemented in an ad hoc way.

2003

Error messages are a bit cryptic for a typesetting specialist, but still possible to grasp.
Original XML document, XSL transformation, and output of the transformation.

2004

document:
description: "User manuals"
handler: "John Smith"
- requirement:
description: "cover page"
for pages:
- page: 1
- page: 2
left:
value: 20
unit: "mm"
right:
value: 20
unit: "mm"

2007

John in 2007.
A typesetter would be now a programmer!
Right margin is specified twice. 🙄

2010s

Era of JetBrains MPS

Editing experience of a page margin specification document in JetBrains MPS.

Slides

--

--

--

Programming languages, IDEs, JetBrains MPS, Kotlin, Xtext. Ph.D. in parsing. https://twitter.com/mikhail_barash

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

How to control DJI Tello drone with Matlab

Presale

Demystifying Binary Search Tree

How I got selected in JPMC via Code for Good (not a CS/IT student)

{UPDATE} Call of War: Multiplayer RTS Hack Free Resources Generator

Developing Firmware for Low Power Devices

Test-Driven Development

Python | Generate Indian Names

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store

Mikhail Barash

Programming languages, IDEs, JetBrains MPS, Kotlin, Xtext. Ph.D. in parsing. https://twitter.com/mikhail_barash

More from Medium

How I Became A Software Engineer Without A CS Degree?

The Benefits of Code Analysis (Some of Which are Unexpected)

Server hang with 100% CPU on Sitecore 10.1