FlowScript 0.1: A New Semantic Language for Application Modeling Before Coding
FlowScript 0.1 has been released as an experimental working draft by Erland Kjensli, aiming to provide a semantic language for describing the structure and behavior of applications before implementation begins. The project explores the idea of representing an application’s semantic model rather than its implementation details, allowing the model to remain meaningful regardless of the underlying technology stack. FlowScript distinguishes between different aspects of application design, such as structure, navigation, state, and presentation, treating them as separate but related concepts. For instance, it separates the structural hierarchy (what contains what) from the navigation graph (what can lead to what), and from the state graph (how state changes). The language also differentiates between user actions and system actions, and between conditions and state, aiming to create a more precise and reusable model. The syntax is intentionally simple, using a keyword:value format with indentation for nesting, while maintaining strict semantic rules. FlowScript is not intended to replace programming languages or other development tools but to operate at a higher level of abstraction, potentially supporting multiple projections such as diagrams, documentation, and even implementation scaffolding. The author invites feedback on the semantic distinctions and model, emphasizing that the current focus is on semantic review rather than syntax. The project is open to discussion, criticism, and alternative models, with the goal of determining if a single FlowScript description can accurately represent different implementations of the same application. The GitHub repository and documentation are available for review, and the project is in its early stages, with the author seeking input from experts in software architecture, DSL design, and developer tooling.
