Sunday 14 August 2022

Mainframes, Git, and application development

Since 1964, when IBM unveiled its System/360 mainframe, most development work on applications has taken place on the mainframe. It makes sense that that’s how developers would work. But nowadays, that’s not so much the case. Now many people are finding the benefits of using Git when it comes to application development. So, let’s have a look at what Git is and how mainframers are using it.

Git has been around since 2005 and is frequently used by non-mainframe developers to develop new applications. Visual Studio Code (VS Code) has been around since 2015, and it is also very popular with non-mainframe developers. And, now it’s a popular application development environment on mainframes. In fact, it’s unusual, these days, for mainframes not to be able to make use of anything that seems successful on other platforms, which is why we’re discussing Git and VS Code.

Linus Torvald (the man who developed Linux) wanted a way to keep track of all the Linux kernel developments going on at the time. So, he wrote a software package for tracking changes in any set of files, and he called it Git. Programmers working collaboratively on source code use it, and every Git-managed directory is a full-functioning repository (often called a repo). A repository contains all the files needed to compile and link an application. For mainframe applications, this could include source programs, copybooks, JCL or Rexx execs. It also usually includes a README file containing project instructions, documentation and any other useful information.

All Git instances or clones are equal. Developers use pull operations to integrate code from another developer into their repository and working directory. A push operation sends their code to a remote repository. Developers can also branch, switch branches, stash work, and perform other operations.

You might wonder why, when I’m talking about Git, I also mentioned VS Code, which is a source-code editor made originally by Microsoft for Windows. The answer is that VS Code is probably the most popular editor these days, and it has built-in Git capabilities. Broadcom’s free Code4z extension pack makes VS Code and similar tools usable by mainframe developers,

The reason this appeals to mainframe developers is because Git acts as a parallel development environment for multiple programmers. Mainframers no longer need to wait for other developers to release a file that they have checked out and are working on. Developers can work on programs whenever they want. In addition, the developers don't need to worry about their changes affecting another developer’s work.

Before the use of Git, mainframe sites developed new applications using serial library managers, which resulted in no other development work being able to take place while a developer had the application checked out. Once it was checked in, another developer could start work on it. By using Git-hosted code, developers can all work on code at the same time without impacting each other's work. Git excels at version control. Using VS Code makes code scanning easy.

It’s also possible to develop cross-platform applications that include the mainframe and cloud, mobile, and Web by hosting the code on Git. This is possible through the use of application programming interfaces (APIs). I'm sure that the creation of new composite applications using existing code and APIs is definitely likely to increase, which will give customers applications that completely suit their needs.

Of course, it is possible to install Git on a mainframe. IBM recommends Rocket Software’s port of the Git client, which is usually installed in z/OS USS. It includes code page translation, which means that mainframe source code (in EBCDIC) can be stored and retrieved from Git (in ASCII). This allows developers to work on repositories stored on mainframes while working on a laptop. The .gitattributes file tells Git which files should be translated from ASCII to EBCDIC when working on z/OS.

Using Git and VS Code on mainframes allows applications to be built by people with lots of experience of those two products without necessarily having lots of mainframe experience. This may become important for mainframe sites moving forward as their highly-experienced mainframers retire. Having said that, there are plenty of mainframers who are keen to learn these new skills, and are already using them.

No comments: