Let’s work together
Want to discuss potential opportunities? Pick the most suitable way to contact us.
Book a call+370 5 2 780 400
info@ba.lt
In the rapidly evolving world of software development, productivity and clarity are more crucial than ever. When working with niche or domain-specific languages like Progress OpenEdge ABL, developers often face unique challenges – from understanding errors to accessing relevant information or writing efficient code. To tackle these challenges, AI tools, such as the Windsurf (formerly Codeium) VSCode extension, are becoming increasingly popular.
This document explores how Windsurf can support Progress OpenEdge developers in improving error comprehension, information retrieval and code generation.
The primary goal of this study is to assess how effectively Windsurf can support development in Progress OpenEdge. It specifically aims to evaluate:
The diagram above shows how Windsurf seeks to achieve the previously listed objectives.
There are two ways to explicitly request code generation with Windsurf:
2. Typing a natural-language prompt as a comment directly within the ABL code.
These options enable developers to accelerate code writing, especially when working with repetitive or boilerplate code in Progress OpenEdge.
When an error occurs during ABL code writing, Windsurf can analyse the issue and provide an explanation. This allows developers to understand and resolve errors without leaving the editor.
In this simple example, Windsurf correctly identifies that a typo was made and suggests a solution.
Windsurf can explain unfamiliar ABL methods or syntax. This helps developers avoid spending time searching through documentation and instead learn directly in context.
In this example, Windsurf provides an adequate description for the use of no-undo.
While working with Progress OpenEdge, Windsurf can suggest complete ABL code blocks based on partial input. Developers may accept these suggestions by pressing the tab.
In this example, Windsurf correctly interprets the purpose of a method named Add and makes suggestions based on that. This also shows how Windsurf used the existing codebase as context and was able to make a suggestion, which uses proper syntax and naming conventions.
Windsurf currently officially supports over 70 programming languages – however, Progress OpenEdge ABL is not one of them. This does not mean that Windsurf is entirely unaware of ABL, as some examples above demonstrate. However, its knowledge is notably limited, particularly when using the free version of Windsurf, which is powered by the Base Model LLM. This base model likely had very restricted exposure to ABL-specific data during its training phase.
More reliable results can be achieved through a subscription to Windsurf, which grants access to the Windsurf Premier LLM – a more advanced model with a broader understanding of ABL syntax and context. All previous and following examples are based on this Premier model. Nevertheless, even with this enhanced version, using Windsurf for Progress OpenEdge still presents a number of challenges:
The base model of Windsurf may produce inaccurate or irrelevant suggestions for ABL, since it was not extensively trained on Progress OpenEdge data.
In this example, Windsurf not only fails to interpret the real cause of the error but also falsely determines that the language being used is actually Apex.
Windsurf may misidentify languages (e.g., mistaking ABL for Apex) or provide incorrect explanations.
In this example, when provided with the same prompt used previously but this time to the free to use model, Windsurf gives a completely wrong answer.
Generated code might not follow ABL syntax or naming conventions, leading to additional debugging time.
In this example, Windsurf generates code that does not follow ABL syntax.
Languages that are officially supported by Windsurf benefit from additional features which are not available for ABL. For example:
This is an example of how that looks like in a .tsx file.
In this example, I asked for an explanation of the contents of another file which resulted buffering and then eventually an error. In my experience, this always happens when an explicit reference like this is made.
In conclusion, while Windsurf offers potential benefits in Progress OpenEdge development, its limitations – particularly with the free model – can impact effectiveness. The premium version shows promise in improving the overall development experience, especially for tasks like error comprehension and information retrieval.
Would you like to improve your development experience with Progress OpenEdge? Speak with our Progress team for expert advice on the best tools, integrations, and practices tailored to your needs.
Book a consultation with us today.
Want to discuss potential opportunities? Pick the most suitable way to contact us.
Book a call+370 5 2 780 400
info@ba.lt
Discover the most common open banking mistakes banks in the EU and US make, from poor API design to weak security.
Discover how VS Code templates and snippets can streamline Progress OpenEdge development. Learn how to set them up and optimise your workflow!
Navigate the European Accessibility Act with our expert guide. Understand EAA requirements, and compliance process to prepare for the 2025 deadline.