This adopter story delves into Code RealTime, an innovative tool for creating stateful, event-driven real time applications in C++, created by HCL and IBM. By leveraging the strengths of the Eclipse Cloud DevTools open source ecosystem, including Eclipse Theia and Eclipse GLSP, Code RealTime offers a unique blend of advanced programming capabilities, intuitive graphical interfaces, and a seamless development experience. This story not only highlights the tool's innovative features, but also the integral role played by the Eclipse Cloud DevTools ecosystem in its creation, demonstrating a successful collaboration of cutting-edge technologies.
Code RealTime uses the Art language to enable developing stateful, event-driven applications on top of C++. Art stands out for its high-level concepts such as state machines, capsules, events and ports, making complex application development more intuitive and efficient. In Code RealTime, these concepts can be efficiently used in a textual form with all modern code editor features such as auto-completion, live validation, and more. However, Art also seamlessly integrates a graphical visualization, which is updated as the user types. The ability to visualize these elements through graphical diagrams provides a more comprehensive understanding of the application architecture, significantly enhancing the user experience. Finally, the tool's real-time semantic validation and auto-generation of optimized C++ code streamline the development process, ensuring high performance and reliability. Code RealTime is developed in a collaboration between HCL and IBM.
The Code RealTime tooling is implemented entirely on a modern, web-based and open source technology stack. It is available as an installable extension for desktop IDEs, including Eclipse Theia and also as an online version, conveniently provided as a Docker container, exclusively based on Eclipse Theia. The ability to build comprehensive tools such as Code RealTime on Eclipse Theia and provide them as offline and online versions underscores Theia's versatility and strength in supporting the development of complex developer tools.
The two main components within Code RealTime are the textual and graphical editors supporting the Art language. The textual language support for Art is based on the Language Server Protocol (LSP), which is conveniently integrated in Eclipse Theia. The corresponding Language Server was created using Eclipse Xtext.
The graphical elements of Code RealTime are based on the Graphical Language Server Platform (Eclipse GLSP), the leading open source framework for building custom diagram editors based on web technologies at the Eclipse Foundation. Code RealTime makes full use of the flexibility of GLSP in various aspects. The diagrams are directly connected to the underlying textual representation; they will update live while the user is typing in Art. And, conversely, if changes are made in the diagrams, the corresponding Art files will also update. Furthermore, GLSP enables Code Realtime to seamlessly integrate the diagrams into the IDE extension, including consistent styling. This video shows the tool in action with a focus on the perfect synergy between textual editing and the GLSP-based diagrams:
To seamlessly integrate its feature set into the existing workbench provided by Theia, Code RealTime makes heavy use of the VS Code extension API. Theia, as a framework, is fully compatible with this API, allowing tools such as Code RealTime to also be used in other IDEs, including VS Code.
The ready-to-be-used online version (provided as a Docker container) shows Theia’s flexibility in terms of deployment. Based on the same code, Code RealTime can be used as a desktop application, installed into existing IDE installations and hosted online in the cloud, where users simply follow a URL to start their C++ projects with Art. The online option is exclusively available based on Eclipse Theia.
Code RealTime demonstrates the potential of combining different Eclipse open source technologies to create a cohesive and efficient development environment. Moreover, the interaction between the Code RealTime development team and the open source community is a shining example of collaborative innovation. Far from simply utilizing open source libraries, the team actively participates in the ecosystem. They regularly attend project meetings, such as for Eclipse Theia, and contribute high quality bug reports. They also present their experience in open forums such as TheiaCon. This active engagement not only enhances the tool but also aids in the industrial hardening of the open source technologies they use. Their feedback is invaluable, driving improvements and showcasing the potential of open source technology. As such, Code RealTime stands as a beacon of successful open source collaboration and adoption, highlighting the reciprocal benefits between adopters and the broader community. This dynamic interaction exemplifies how collaborative efforts can lead to robust and innovative technological solutions.
For more detailed information about Code RealTime and its integration with Eclipse technologies, visit the Code RealTime website.
“Theia's superior customizability is especially beneficial for advanced users who seek to tailor their IDE with specific extensions and functionalities. Additionally, Theia's ease in facilitating web-based access positions it as a more adaptable alternative to other IDEs. This flexibility is crucial for "Code RealTime," as it allows for seamless integration and deployment in various environments, including cloud-based platforms.”
Mattias Mohlin, Senior Software Architect and development lead of Code RealTime