IBM Developer

Blog post

Use the right tool: Language-specific editors and the ISPF programmer

Learn about the best editors to use when doing development work in IBM Developer for zSystems (IDz)

By Chris Sayles

As a technical enablement specialist, I get asked one question like clockwork in class every single semester, every quarter for the past 10 years that I have been teaching IBM Developer for zSystems (IDz).

What is the best editor to use when doing development work in IDz?

To answer this properly, we need to have a little side discussion about IDz as a mainframe Integrated Development Environment (IDE), why I have spent the past decade doing knowledge transfer around this tool, and what keeps me passionate about teaching developers how to use it.

IDz is a powerhouse of a GUI tool that lets you do mainframe development work at DevOps speed. Of course, you would expect me to say that -- after all, I work for IBM, I wear the blue shirt. However, I didn't always work for IBM. I taught IDz even when I didn't work at IBM. I believe so much in the value of the product and what it can do for veteran developers and brand new, fresh-out-of-school developers alike. I know that's quite a statement, so let's dive further into my reasoning behind making such a bold claim.

What is IDz?

At its base, IDz is built on the Eclipse open-source framework. This makes the tool extremely flexible in terms of functionality. Whether it's plug-ins from third-party, non-IBM companies (like Broadcom or Serena) that play crucial roles in your company's development lifecycle, custom coded menu options that give you access to important home-grown mainframe tooling that wouldn't normally be accessible within a GUI tool, or even tooling for non-mainframe/distributed languages -- IDz can handle it.

With DevOps still trending upward year after year with a 94 Google trend score as of last week, using a GUI tool like IDz is a huge leg up for folks looking for a future in the mainframe space. For newer developers, this is a no-brainer; Eclipse makes sense for folks freshly out of school or with the classroom not so distant in the rear view, and for them it’s almost second nature. For veteran Interactive System Productivity Facility (ISPF) developers, making the move to a GUI tool from green screens can be a little more effort, but IDz has that covered via the editors available for developers to use.

What types of IDz editing options are available?

IDz has two distinct flavors of editing facilities: Java-style visual editing products and the Live Parser Extensible editor (LPEX) editor. Editing with the former is pretty much the same as working in any modern word processing tool, and feels very familiar to anyone who is used to working with Windows-based products. Of course, there are features and functions that tie into mainframe development work. In fact, Java-style editors are actually language-specific so they’re hyper-focused on providing an overall experience that feels open and modern when you're working with mainframe resources.

The LPEX editor is unassuming compared to the Java-style, language-specific editors. At first, it looks and feels much more like a notepad-type editor, but the real magic with the LPEX editor comes in the form of its editor profile capabilities. LPEX has the ability to emulate popular editing facilities on the mainframe like Visual Instrument (VI), Conversational Monitor System (CMS), and ISPF. This emulation loops in roughly 85-95% of the functionality that you see in the green-screen version of the editing product, adding to the modern IDE functionality that a lot of folks don’t even know they need before getting their hands on the product. The ISPF emulation profile for LPEX ensures that veteran ISPF programmers who have spent the majority of their working lives learning the ins and outs of coding via a 3270 emulator (or even an actual 3270 terminal!) do not have to start over. They can take their ISPF editing skills and transfer them quite easily over to the GUI world with the ISPF emulation profile provided in LPEX. For any seasoned mainframer, that’s huge. To know that you aren’t starting from square one after 10, 20, even 30 years, is a huge morale boost and a fact that keeps users interested in learning IDz and coming to classes.

Which brings us back to our original question: What is the best editor to use when developing in IDz?

Use the right tool for the job

Let's take a look at a few examples.

You are a 20-year veteran ISPF programmer who is transitioning over to the GUI world.

If you’ve spent the majority of your career navigating the many panels and screens of Time Sharing Option (TSO)/ISPF, I recommend that you start with the LPEX editor. This makes sense because, as I pointed out above, you will not experience that “starting over from scratch” feeling in a new development environment. You should be able to transfer over a lot of your habits and techniques, which makes LPEX a great starting point.

You are new to mainframe development work or are fresh out of the classroom.

If you aren’t familiar with ISPF editing techniques, go with the language-specific editor that corresponds to the specific resource language you are focused on. If you are a new COBOL programmer, pick up the COBOL editor. Working with Programming Language 1 (PL/I)? There's an editor for that. Are you a tester who's working mainly with Job Control Language (JCL)? IDz has a dedicated JCL editor that will work for you. (TL;DR, use the Java-style editor facilities.)

You are an ISPF developer with some experience in GUI tools and you're looking to maximize your experience in IDz.

This is where my "Use the right tool for the job” answer becomes much more literal. Both editing facilities (LPEX and the language-specific editors) are feature rich, but there might be a feature in one editor that isn't available in the other. For example:

  • Toggle Hex Edit -- This function, which is only available in the COBOL-language-specific editor, is a toggle button that keeps hex values for a specific line open and visible in the editor at all times. LPEX has a way to view hex on a line, but it does not persist when you move around in the code.

  • ISPF Command Line and Prefix area -- For many, this is what defines the editing experience in ISPF. The ability to add lines or do block copy/paste functions from the prefix area, and navigate or search a source from the command line are key techniques that veteran ISPF developers know like the backs of their hands. These features are only available in the LPEX editor.

  • Source Formatting -- IDz has a facility that allows you to take source and apply formatting to improve readability and maintainability, and adhere to coding standards. You can choose to format a selection of source code (say, a specific paragraph or section) or format an entire source file. This feature is only available in the language-specific editor.

Summary

So to answer the question, What is the best editor to use when doing development work in IDz?, I stand by my answer: Use the right tool for the job. What that actually means for you will depend on your actual job and what job you’re doing, so it is not cut and dried. IDz has the tooling you need to do your job, whatever it may be.

Take the next steps

Want to learn more? Here are a couple of resources for further study: