All-in-one VS Code Experience for Mainframe Developers

Lukas Zima
Modern Mainframe
Published in
6 min readMay 17, 2022

Are you interested in having a modern set of tools ready for the many needs of your developers working on the mainframe? Something easy and fast to access and edit data? Something to quickly submit tasks and view results? To localize the problem and fix it? The Code4z package brings exactly this mix to your team!

Find Code4z on VS Code Marketplace.

Most developers’ tasks are well defined — analyzing the problem (customer issue or new feature requirement), providing the fix or implementation, and testing it. One tool can hardly support all of the possible needs and scenarios. That’s why Broadcom keeps the solution isolated into separate, lightweight extensions. You can combine them as you like or simply download them as an all-in-one package. We call this project Code4z.

Code4z package is free and its installation is very easy. Some extensions from this package have no prerequisites at all, while others need what you may already have — access to the mainframe and core mainframe products. Some plugins are even integrated with others to multiply their strengths, but all of them can ultimately serve as a full-value standalone. All of them are ready to help your mainframe developers adopt a modern developer experience to improve their skills and increase their productivity.

How?

What’s in Code4z?

Recently the new version of Code4z v2.0.0 has been released. This version delivers updates to all of its current extensions and adds two new extensions — Abend Analyzer for Mainframe and Data Editor for Mainframe.

Code4z package now consists of eight Visual Studio Code (VS Code) extensions:

We have combined those extensions into one package to cover needs of the most of the typical developers’ scenarios.

Some extensions have their own tab, some are integrated with others.

Whether your task is testing, preparing test data, debugging, abend analysis, or just accessing and editing your mainframe data and submitting mainframe jobs, these tools can ease your daily work. Each extension supports one or more parts of the whole development cycle. There is minimal effort with the settings and maintenance. We bring support for the two most used mainframe languages — COBOL and High-level assembler.

If you are even more future-oriented and start to look for other options than the currently most popular code editor — VS Code, you may be thinking of trying the new trend of cloud-hosted development environments accessed from a browser. In such a case, you will be happy to hear our solution is compatible with GitHub Codespaces and GitPod.

Do you wonder how this package may help your team increase productivity and effectiveness? Let’s see an example.

Developer’s use case

What can be one of the most typical developers’ tasks? How about fixing a customer-reported abend in the COBOL application? Let’s assume that the customer as a part of the ticket provided the abend related details.

As a first step, the developer would use Abend Analyzer for Mainframe to analyze the abend. This would help to understand the potential root cause, for instance, wrong data being passed into the field leading to a divide by zero.

Use Abend Analyzer for Mainframe from the main toolbar.

Nice, here is a potential culprit to chase. The Zowe Explorer extension can list the testing VSAM files. The developer can now easily modify an existing VSAM dataset to pass in the “wrong” data using Data Editor for Mainframe. To better visualize the data there is the layout option or selection criteria. You can even leverage the option to display the data in a hexadecimal mode so that you can better analyze non-printable characters.

Try the new option in Zowe Explorer to browse or edit VSAM datasets.

Once testing data is prepared, let’s start the debugging using Debugger for Mainframe extension. Set up breakpoints in the suspected part of the code and run a debugging session. Let’s assume this debugging session confirms the developer’s suspicion and he has now a clear idea of how to fix the code.

Leverage the modern debugging interface to step through your COBOL code.

Another Code4z extension Explorer for Endevor can open the desired COBOL program for editing. As soon as any COBOL program is opened another Code4z extension COBOL Language Support is automatically triggered. This plugin will run the code analysis to provide the syntax coloring and error highlighting. In addition, it can speed up the developer’s implementation with the autocomplete feature. For large files, it may be handy to render the graphical visualization of the program by COBOL Control Flow extension. See each node and its dependencies, even including copybooks if their location is specified in the settings.

Get better navigation in your code using COBOL Control Flow.

Reading the content of copybooks helps the code analysis be more precise for both extensions — COBOL LS and COBOL Control Flow. You can define local copybooks on your machine or automatically fetch those from the mainframe using the Zowe Explorer connection. Once you locate the node of your interest in the COBOL graph, click on it and it will bring you to the desired part of the code itself. Here you can make your changes. Save your changes and use Explorer for Endevor function Generate to build the code.

You may want to use Data Editor for Mainframe again to extend your testing files with a new set of data to increase your test coverage with the new scenario. And again, leverage Zowe Explorer to submit your unit tests and see their results.

Hexadecimal representation of data in Data Editor for Mainframe.

Once all is done, propagate your updates to your testing environment and use Debugger for Mainframe to step through your updated code again.

Similarly, this scenario would work for your HLASM program, which we also support in the Code4z package with HLASM Language Support.

Why is this unique?

Code4z “package” is the first comprehensive modern VSCode based set of mainframe extensions that cover the developer needs for: COBOL resource access, code analysis, edit, compile, debug, test (including editing of test data) and analyze/fix abends. It is the perfect example of Broadcom’s Open-first approach.

Code4z extensions leverage open source Zowe, contribute to open source (COBOL LS repository, HLASM repository, Explorer for Endevor repository), use open APIs to interact with mainframe components, and adopt industry standards protocols (LSP and DAP).

Code4z extensions are supported via the Brightside offering. The core mainframe file system resource access, code analysis, edit and compile (submitting JCLs) extensions are free to use and do not require vendor-specific tools on the mainframe. This way it’s a great option how to introduce mainframe to new-age mainframe developers using the set of tooling they are familiar and comfortable with. As some extensions from the package are open source, this also represents a great opportunity for developers to engage with the open-source community and help shape the future of mainframe app dev.

Position your organization for the future of cloud-based development environments to develop and deliver hybrid cloud applications!

With the support on Codespaces and GitPod, Code4z provide organizations and teams the flexibility to use either the rich client or cloud/web-based development environment or switch between them in a seamless fashion.

Does Code4z sound appealing to you? Go ahead and give it a go by installing it into your VS Code from the VSC marketplace or open-vsx.org. We are looking forward to hearing from you!

--

--

Lukas Zima
Modern Mainframe

Product Owner at the Broadcom Mainframe R&D Centre in Prague.