GLOSS - A Graphical Language Server on the Smalltalk Platform

Can Smalltalk serve as a modern platform for graphical modelling tools — and what does implementing the GLSP protocol reveal about its strengths and limitations?

The Graphical Language Server Protocol (GLSP) extends the widely adopted Language Server Protocol into the graphical modelling domain, enabling web-based modelling clients to communicate with back-end model servers in a loosely coupled, standardised way. Existing reference implementations exist in Java and TypeScript, but no Smalltalk implementation existed at the outset of this project. Graham McLeod and Gareth Cox set out to build one — christened GLOSS (Graphical Language Object Server in Smalltalk) — using Pharo, and to evaluate how well GLSP maps to the architecture of the authors' existing EVA graphical modelling environment.

The paper documents the design and implementation of GLOSS, tracing the decisions made and challenges encountered, and provides a detailed architectural comparison between the GLSP approach and the EVA/GM system developed over two decades at Inspired. The comparison is striking: the Smalltalk implementation of a multi-model-type server supporting the full GLSP protocol runs to under 4,000 lines of code, compared to over 58,000 lines for the Java reference implementation of a single model type. Beyond code volume, the paper identifies nine concrete limitations in the current GLSP protocol — including the absence of model type support, server-side symbol management, and item reuse across models — and proposes specific remedies for each.

For practitioners working on modelling tools, architecture repositories, or graphical language design, this paper offers both a working proof of concept and a substantive critique of an emerging standard.

Pages: 15

Originally published as a conference paper by Graham McLeod and Gareth Cox at the International Workshop on Smalltalk Technologies (IWST 2024), Lille, France, 2024.