Back to the schedule
Previous: Tree-edit: Structural editing for Java, Python, C, and beyond!
Next: Yak-shaving to a UI framework

Self-Describing Smart DSL's: The Next Magits

Psionic

Q&A: answering after the conference
Status: Cancelled
Duration: 20 minutes

Description

When we begin programming, the promise is to automate away repetitive tasks in life. As those program's capability grows, we begin to need configuration UI's. We can start with a CLI, but as any CLI grows, we run into the following issues:

  • As options pile up, the intuition of simplicity is lost in helps and manpages

  • Stateless operation has no idea what to do next and loses terseness

  • Frequent dispatch of commands to interrogate state required for the operator to decide what action to perform

  • Composition compounds with all of these issues

Magit has the UI trifecta of being terse, intuitive, and intelligent. Magit's UI input library, Transient, is a standalone package for developing more killer UI's, and not just for CLI applications, but also for server applications, Emacs applications, and Emacs itself.

While Transient's potential is to create the most highly productive UI's short of thought control, going beyond simple command dispatchers requires a deeper dive. When we think like constructing a DSL for the task and using transient to input that DSL, we get an intelligent, self-describing modal programming system.

Outline

  • Updates to Transient documentation and demos of API examples
  • Wrapping a custom CLI tool in Transient

Back to the schedule
Previous: Tree-edit: Structural editing for Java, Python, C, and beyond!
Next: Yak-shaving to a UI framework