When ChatGPT 3.5 was announced in April 2023, it generated a lot of excitement, particularly within the software development community. Developers were eager to explore its enhanced capabilities as a code assistant, which promised to streamline coding tasks, debug more efficiently, and even generate code snippets. Additionally, its potential for aiding in code modernization was a major highlight, offering tools to refactor and update legacy codebases, making them more efficient and maintainable. This announcement marked a pivotal moment, highlighting the growing role of AI in transforming software development practices.
Is WCA4Z a Game-Changer or Just Another Buzzword?
The excitement was tangible, but can Generative AI also assist with mainframe modernization, addressing all the specific challenges? Can it refactor COBOL and PL/I, or even transform legacy code into modern languages like Java?
Amid the excitement, IBM announced IBM WatsonX Code Assistant for Z (WCA4Z), a hot and promising technology that immediately captured the attention of the mainframe community. Now, a year later, it’s time to evaluate its maturity and effectiveness. Is WCA4Z truly ready to revolutionize enterprise development and deliver on its promise of mainframe modernization? Let’s review the progress and impact of WCA4Z over the past year.
IBM envisioned support for the full cycle of the modernization experience. The initial version supported only some parts, with additional features planned for future releases. Early press communications and discussion within the community primarily focused on its transformation capabilities, promising the conversion of old COBOL code (appreciated mainly by veteran developers) to modern Java code (understandable by any Gen Z developer). The mainframe community warmly received the announcement. However, the initial version had its drawbacks, particularly in its ability to transform COBOL to Java, which was quite limited. You can read my initial thoughts about it here.
Before we dive into the technical details, I’d like to reset the discussion. When examining Generative AI or any other new technology, it’s crucial to always question the real business value it brings. While engineers often get enthusiastic about the technology itself, they can sometimes overlook the importance of its business impact. Balancing technical innovation with tangible business benefits ensures that we harness the true potential of these advancements.
The Real Value of WCA4Z: Refactoring, Not Rewriting
Considering the business value, I don’t see much use for code transformation, especially not for an enterprise-wide transformation from COBOL to Java. I spoke with a few large customers, and they don’t see a compelling reason for such a transformation. COBOL runs just fine, and it’s fast. Additionally, testing transformed (generated) Java code could be a gigantic undertaking, especially given that these applications are mission-critical and must be 100% accurate (just imagine a typical banking transaction).
It might be useful to transform some specific modules to Java; however, this would likely involve developing in Java from scratch rather than re-engineering (transforming) of the old code. WCA4Z can certainly help here by providing a better understanding of the old COBOL code (ADDI + Code Explanation), rather than generating new Java code.
At the same time, many enterprises welcome assistance with refactoring. It happens quite often that when a new request comes from the business to add or change some existing functionality, there’s nobody from the original team onboard, and the documentation is scarce. Code explanation can work miracles here. Furthermore, code optimization and refactoring are usually needed (because we write code differently after 20 years). And the business wants the new features now!
Scanning the announcements over the past year, my hunch is that IBM has also shifted its focus from transformation to refactoring. Perhaps only real-life experience from large Cobol shops (or PL/I in the forthcoming versions) can provide definitive insights about real life scenarios and best practices.
Since the original announcement, IBM has announced in the past year several new releases and versions that bring significant improvements:
V1.1 February 2024
Refactoring is now more streamlined with an enhanced developer experience in VS Code. This allows developers to handle refactoring and transformation within a Refactoring Assistant in VS Code single IDE, simplifying the modernization workflow.
The Z Open Editor VS Code Extension helps visualize and update Java class structures before generation, ensuring alignment with organizational code specifications and preventing transformation issues. Once the Java code is ready, the new Validation Assistant generates tests to verify its semantic equivalence with the refactored COBOL code, speeding up the validation phase and boosting confidence in the new code’s behavior.
V2.0 June 2024
New capabilities include:
- Ability to host and use models on premises
This is very important for clients who don’t want to use the service in the cloud, because of security, privacy, sovereignty concerns, and other regulatory requirements.
- Code Explanation, a new generative AI-powered feature for enterprise application modernization. This capability helps developers understand COBOL code by explaining selected lines in natural English. It aims to improve documentation, speed up developer onboarding, and support the refactoring process. Leveraging a large language model (LLM) hosted in IBM watsonx Code Assistant for Z as a Service, it offers explanations in short, summarized, or detailed formats, enabling developers to save time and focus on more critical tasks, thereby boosting productivity.
V2.1 August 2024
WCA4Z 2.1 enhances the capabilities to expedite the application modernization journey for enterprises with Code Optimization Advice. It performs in-depth runtime analysis on mission-critical COBOL code, identifying performance inefficiencies, and delivering prioritized actionable recommendations through the VS Code user interface. Developers can navigate to the exact line of code and implement necessary fixes, enhancing productivity, optimizing development resources, and help mitigate expensive post-deployment performance issues.
WCA4Z as a Service extends code explanation capabilities to now include JCL, in addition to COBOL. Code Explanation for JCL is designed to help facilitate learning for system programmers unfamiliar with specific applications, bridging knowledge gaps and accelerating operational activities or modernization efforts.
V2.2 (September 2024)
WCA4Z now provides the option for on-premises LLM deployment for COBOL Code Explanation in addition to the existing Software as a Service (SaaS) deployment model. This generative AI capability allows developers to obtain real-time, natural language explanations of their COBOL code, which can then be inserted back into the code as comments or downloaded for documentation.
With this new release, clients can leverage COBOL Code Explanation to accelerate understanding of the application on-premises; while ensuring they stay compliant with data privacy, sovereignty, and other regulatory requirements while keeping the data on-premises.
Falls Sie Fragen haben, sind wir nur einen Klick entfernt.