Live Programming in Low-Code Platforms - Silva, Nuno André de Almeida e (2024)
The OutSystems Platform is a visual model-driven development and delivery platform that allows developers to create enterprise-grade web and mobile applications, using Service Studio, the platform’s IDE. Low-code development platforms, such as this, aim to improve the agility of the development process, by allowing developers to prototype, test and deploy applications quickly. Compared to other technologies, OutSystems makes it faster to create applications with a modern design without the need to write a single line of code. However, even in low-code platforms, the develop-compile-test pipeline is explicit, and the experience can sometimes be slow and cumbersome. This limitation becomes more relevant when it is necessary to make many small, iterative changes to an application. This is the case when a developer is fine-tuning the UI, for example. After a developer makes changes to an application, they are required to publish it before being able to see the results. It includes, among other tasks, the transportation of the model and its compilation, that takes place in the OutSystems Platform Server. This process takes a non-negligible amount of time, which breaks workflow fluidity and negatively impacts the developer’s experience. That is the problem we aimed to solve in this work, focusing on the saving, transporta- tion, and loading of the model. To achieve this, we explore two approaches. In the first approach we propose that the IDE and the Compiler share the same model, eliminating the need for transporting and loading it in every publication. One of the challenges that it poses is one of concurrency, since the Compiler needs to be able to see the model while the developer may be changing it in the IDE. The second approach is simpler and consists of only transporting and loading what was modified, instead of the entire model. We developed a prototype which shows that our approaches have the potential to reduce the duration of these operations, reducing the Publication time and improving the development experience in OutSystems.