I recently played around with Ink. [1] I hadn’t heard of Dialog, but it shall be interesting to contrast them.
It’s quite elucidating to see how different the constructs of a programming language can be when the constraints are so different. For example, Ink is designed to produce spaghetti code, because a narrative is more spaghetti shaped, so there is no call stack. Another peculiar thing is that by default, a link will only be used once, because in most narratives you don’t want to read the same thing over and over again.
This is very interesting, but I feel like it's still too close to being an actual language for it to be worth using for the purpose of writing fiction. You might as well use Ruby, but that's just my personal opinion.
Though not perfect, ChoiceScript is a lot closer to what seems like a good DSL for writing interactive fiction, since it remains readable without a lot of special language constructs.
"Interactive fiction" generally refers to a specific style of game along the lines of the original Adventure, Zork series, etc. Generally it supports navigation, inventory management, and full sentence interactions, so while it's "lite" programming it's still more than multiple-choice questions.
One of these looks much more like a programming language than the other; both compile to the Infocom virtual machine (or a direct descendant of it), both create Infocom-style Interactive Fiction rather than the choose-your-own-adventure style of Twine or ChoiceScript.
Which is interestingly appropriate given the original Zork Implementation Language (ZIL) and its LISPiness (forked from MDL). Dialog doesn't look that far off from ZIL.
People use the term in different ways, but my understanding is that "interactive fiction" was intentionally created as a broader term to encompass the games you're talking about (commonly called adventure games or text adventures) plus more literary efforts that can't really be called games at all. Choice-based games fall somewhere on that spectrum between puzzle heavy, parser games and fiction with interactive elements. "Among the Seasons," which tied for Best in Show at this year's Spring Thing Festival of Interactive Fiction, is essentially a short story with some limited choices. It's written in Twine but could probably be done in something like ChoiceScript.
Those who are interested in this might also want to check out Kni, an interactive fiction language implemented in JavaScript: https://github.com/kriskowal/kni
I've seen something similar for creating spam that slips past pattern-based scrubbers by finding gajillion ways to say the same thing using different word order and synonyms.
It’s quite elucidating to see how different the constructs of a programming language can be when the constraints are so different. For example, Ink is designed to produce spaghetti code, because a narrative is more spaghetti shaped, so there is no call stack. Another peculiar thing is that by default, a link will only be used once, because in most narratives you don’t want to read the same thing over and over again.
1: https://github.com/inkle/ink/blob/master/Documentation/Writi...