VSCode for Green Screen Developers

Jessielaine Punongbayan
Modern Mainframe
Published in
5 min readApr 20, 2021

When you say Mainframe Development, you immediately think of 3270 terminals a.k.a “The Green Screen”. But nowadays, this stereotype has changed and today I’ll talk about that.

Photo grabbed from https://ajk.me/building-an-ibm-3270-terminal-controller

Context: Mainframe Modernization

Modernization has been one of the goals for mainframe in the past few years. Recently, three of the biggest and most influential mainframe companies, Broadcom, IBM and Rocket Software, found a great opportunity and teamed up to work on an open source project called Zowe.

This project runs under Linux Foundation’s Open Mainframe Project and it aims to make Mainframe Open. It provides mainframe tooling that allows you to integrate to modern technologies today.

It has several projects under its wings but in this article we are going to focus on Zowe. More specifically the VSCode extensions.

VSCode Extensions

In my 10+ years of experience as a mainframe developer, I only know 1 IDE and that is the TN3270 or the “green screen” terminal.

3270 is a very powerful and very useful IDE and I still recommend that everybody should learn how to use it. But despite of its awesomeness, I am still left wanting more.

Visual Studio Code is a freeware source-code editor created by Microsoft. It has an IntelliSense feature, it allows you to run and debug your code, it has a built in connection with Git and, most importantly, you can extend it.

Mainframe Extensions for VSCode

At the time of writing this article, there are 19 mainframe extensions that are currently available in the VSCode Marketplace. And I am hopeful that will continue to grow. Let us focus on some of them.

Disclaimer: I am a Broadcom Engineer and in this article I will be focusing on extensions created by Broadcom.

Code4z : this is an extension pack for Mainframe users working with z/OS applications and tools. This includes the:

  • The COBOL Language Support: this extension provides autocomplete, syntax highlighting and coloring, and diagnostic features for COBOL code and copybooks. It can also connect to a mainframe using a Zowe profile to automatically retrieve copybooks used in your programs and store them in your workspace.
  • HLASM Language Support: this extension provides code completion, highlighting and navigation features, shows mistakes in the source, and lets you trace how the conditional assembly is evaluated with a modern debugging experience.
  • Zowe Explorer: this is an extension that streamlines interaction with mainframe data sets, USS files, and jobs.
  • Explorer for Endevor: this extension gives you the ability to Browse and Retrieve CA Endevor® SCM elements using a user-friendly, intuitive IDE interface
  • Debugger for Mainframe: this extension provides a debugging interface for CA InterTest™ for CICS and CA InterTest™ Batch.

Dataset Viewer : this is an extension that enables you to view VSAM datasets in CSV format. This leverages the features of CA File Master Plus.

REXX Language Support : this extension provides syntax awareness, autocomplete and highlighting for your REXX programs.

JCL Language Support : this extension provides syntax awareness, autocomplete and highlighting for your JCLs. This leverages the features of CA JCL Check

COBOL Control Flow : this is an extension that provides graphical visualization of program flow for programs written in the COBOL language.

Workflows4z : this is an extension that lets you create and validate the z/OSMF workflow definition and the action definition files

Bridge for Git Explorer : this extension allows you to add elements to a synchronized Bridge for Git repository from up the CA Endevor® map.

For more information about these extensions, please visit the Modern Mainframe publication and the Zowe publication.

Developing in VSCode

Given all of this information, what’s the experience like when coding using VSCode?

I’ve created this video to give you a quick “feel” on how it’s like to code using 3270 and VSCode.

In the next series of blogs, I would like to go deeper into using VSCode. Hopefully, I would be able to show you some tips and tricks, some dos and don’ts, or expand more in the benefits of using VSCode and its mainframe extensions.

Integration to Modern Technology

With these new technologies in hand, we can now easily integrate mainframe to modern tooling. We can use RESTful APIs such as the Zowe APIs and create create tests using Jest or Mocha. We can create a CI/CD pipeline through Jenkins or CircleCI, You can write a python program and trigger your COBOL program inside. The possibilities are endless…

What are the next steps?

After reading through this article, you are now more familiar with some of the modern mainframe tools that we have. But what now? What will be your next steps? Here are some of my recommendations:

  • Investigate

The Zowe Project is a free software that you can download and try out for yourself. There are public Mainframe Servers that are available where you can register and try these tools. There are lots of blogs that you can read, videos that you can watch and there are experts that you can talk to in Open Mainframe Slack channel.

  • Innovate

One of the most effective form of learning is innovation. Once you have the knowledge, try to create a CLI plugin or your own API and integrate it to mainframe. In this way, you will be able to learn new things and have fun!

  • Advocate

After learning, pass it on and share it with others. It maybe with your colleagues or maybe in a public community. Share what you have learned so that others will learn from you.

Conclusion

So in conclusion, we learned that there are lots of new modern technologies that are available for mainframe right now. All we have to do is to try it out.

If you want to know more, I have included helpful links below:

If you are interested in trying this out for your company, Broadcom is here to help. Check out our Mainframe DevOps Developer Cockpit.

--

--

Jessielaine Punongbayan
Modern Mainframe

Art and tech enthusiast. As an artist and software engineer, I write about the intersection of creativity and technology. Sharing insights and experiences.