IBM suggests adopting newer tools for i to keep pace with change
Once upon a time in a computer environment a long time ago, application development was so simple. You had a single user interface technology to worry about—the 5250, of course—built on a foundation of either RPG or COBOL. To develop applications in this environment, you really had only one choice for tools: the green-screen Application Development ToolSet (ADTS). ADTS consisted of our beloved green-screen interfaces Programming Development Manager (PDM) and Source Entry Utility (SEU). This programming environment provided everything you needed for that world.
How times have changed. This simple world no longer exists. That's not to say we all don't still have RPG/COBOL displaying 5250 in our environments, or that we don't still use SEU for development. Rather, it's a recognition that applications today have very different requirements, including many user interface (UI) options, the need to interact with many languages and environments, and the need to react quickly to an ever-changing set of requirements. With these new requirements, the development tooling needed to build applications today has changed radically.
Some have started down this winding road and begun modernizing their applications. For those who haven't, it is very much time to invest in this journey. For many, your application investment on IBM i has more than paid for itself with sheer longevity. It's time to continue that investment so you can run your business well into the future. IBM i users now have several tools available that can simplify application development, boost productivity, and help developers keep pace with this ever-changing new world. Before I map out some of IBM's best options, I want to look at some factors that might affect your choice of tools.
While a couple of factors have driven the need for new tooling, the primary motivation can be lumped under the term application modernization. It's worth reviewing what application modernization means. Most people don't consider all the facets of modernization, yet each is important and has a role in determining the tooling you need.
User interface. One of the most obvious aspects driving modernization are changes in the UI, which has shifted dramatically in the past few years, rapidly going from 5250 to client, to web, to now mobile interfaces. This has been a moving target. With the increased use of mobile devices, customers are demanding to access their applications from their devices. This demand has caused enormous change for developers, who need development tools that help them keep up with this transformation.
Most people stop here when considering application modernization, but there are a few other areas that I consider just as important.
Flexible code. Modernization today demands that your code be flexible. It must be easy to transform from one UI to another, while maintaining the business function and years of existing investment in your applications. Moving to a model that focuses on small, reusable components allows for easier maintenance and the ability to create new applications or features by leveraging the existing components. The Model-View-Controller paradigms help ensure that you can easily maintain your back end while incorporating new front ends, languages, environments, and interaction with other applications.
Robust database design. With the increase in data and the number of times data get accessed in applications today, it's important to give the database some love. Growing access to applications through mobile devices (you have them with you constantly!) means that data that once might have been accessed a couple of times a week now might be accessed multiple times per hour. I don't spend any more time on the database here, as it deserves its own discussion. However, for the applications developers are required to create today it's important to consider a robust DB design that leverages the latest technologies such as SQL.
Productive tooling. In addition to the key aspects of modernization listed above, you also need to look at the development tooling used to build and design these modernized applications. As I said, application development tooling has changed significantly over the past few years. Tools today not only provide an enhanced editor capability, they help developers visualize applications, easily find the reusable methods and components, provide integrated debugging capability, and generally let developers work more productively.
The rest of this article looks at some of the key application development tools available for IBM i, along with what direction these tools are headed, why you'd want to use them, and how they can help you create and maintain your applications better.
The most important tool for maintaining and developing applications is IBM's family of Rational IDEs. This is a significant change for some developers who might be thinking that SEU/PDM is the most important development tool. That is no longer the case. The Rational Software team has done a great job working with developers from all walks of technology to develop a robust, easy-to-use, innovative environment for building and developing software. You can use the Rational IDEs to develop in a wide array of languages including RPG, COBOL, C, C++, and Java. Here is a look at the offerings available to help you understand which one makes sense for your situation.
Application Development ToolSet (ADTS). It's only fair to start with this one. ADTS has been the primary development tool for a long time, and with good reason. It is easy to use and is available on your IBM i box. Unfortunately, this tool does not provide an integrated environment for developing modern applications. Developers can see only one thing at a time, it's difficult to search and find the components you need, debugging your code is completely outside of this environment, and creating and designing modern UIs is impossible. As of IBM i 6.1, this set of tooling was "stabilized"—such a nice term, but it really means no more enhancements will be added to this tool. IBM i 7.1 saw a number of new keywords and such added to RPG and COBOL, but the syntax verification in ADTS does not recognize these new parameters. This doesn't mean you can't still use ADTS for making some simple or quick changes, but it does signal that it's time to move on to better options.
Rational Developer for Power Systems (RD Power). This offering is specifically designed for developers working on our Power Systems line of servers. RD Power provides a rich set of tools that are all integrated into the Eclipse environment. The product's name truly indicates the array of operating systems that it supports: IBM i, AIX, and Linux. The base set of tools includes file management, robust searching, editing, refactoring, and application analysis. RD Power includes a number of plug-ins to let developers have an environment specially tailored for the language and operating systems they're working on. Each of these plug-ins snaps into the RD Power framework, providing a single pane for developing multiple languages if necessary. The environments available are:
- RPG for IBM i
- Cobol for IBM i
- C/C++ for IBM i
- COBOL for AIX
- C/C++ for AIX
- C/C++ for Linux
Each environment provides remote connections to the server for doing server-side file management and searching, language-aware editors and refactoring tools, debugging, and code analysis tools created specifically for the language and operating system specified. This means that when developing RPG for IBM i, the environment knows about that language's syntax and structures and has the tools to easily compile and run your code on your IBM i system from this single interface.
Because RD Power is built on the Eclipse environment, it can help you reduce training costs and attract new talent. Most new talent today has been trained to program and develop code using application development tools built on the Eclipse environment. They are accustomed to the look, feel, and function built into the tools. RD Power leverages this rich environment to give you a tool specifically adapted to the language of choice. Using a modern integrated development environment will help new talent overlook an unappealing language. Whether it's RPG, COBOL, or Java, when it comes down to it, it's just another programming language. I've talked to several younger developers who were trained in Java in school and got a job that required them to update some RPG code, for example. Since they were using the RD Power tooling, they quickly became productive with RPG and were able to ignore that they were coding on an "old" language because they had all the modern tools and interfaces to which they're accustomed. Even better, once they got familiar with the power of RPG the developers actually came to prefer it to other languages.
The RD Power IDE runs on Windows or Linux workstations. To get a feel if these tools might be for you, Rational provides a 60-day trial version to help remove excuses and get this tool into developers' hands. The IBM Developer Works website contains additional details on RD Power and access to the free trial at ibm.com. Trade-up programs are also available to help you move from ADTS to RD Power.
Rational Host Access Transformation Services (HATS). HATS is a fantastic tool to help you quickly and easily transition a 5250-based application to a web and mobile experience. This product can convert RPG and COBOL 5250 screens in a couple of different ways. It can do a simple conversion, moving the 5250 screen to the web while maintaining the general look and feel of the green screen. It also can do some far richer conversions, such as converting that basic 5250 data stream to a true web-based screen. You can add images, convert input/output fields to more web-based widgets, and either tailor these to a browser-based format or convert to a variety of mobile formats. If you need to rapidly move to mobile devices, HATS can help ease that transition. In a relatively short time (i.e., a few days to a couple of weeks), you can move your legacy interfaces to a mobile device. Whether or not you stay in HATS, it buys you some time until you determine your end destination. Find more information at IBM developerWorks.
Rational Application Developer (RAD). RAD is the premier tool for designing, developing, assembling, and testing high-quality Java-based applications. Create Java, Web/Web2.0, OSGi, Web Services, and SOA-based applications. RAD is tightly integrated with IBM's WebSphere Application Server, providing the industry-leading web serving platform for your Java applications. Since this is also built on the Eclipse foundation, application programmers from all walks of life can look at applications in the same manner. In addition, RAD contains rich toolkits to help quickly solve the issues of web and mobile applications. You can find more information at IBM developerWorks.
Newer Languages on IBM i
Now it's time to switch gears a little. In addition to the tooling to develop native IBM i applications, some new languages have been added to the IBM i portfolio.
PHP on IBM i. A number of years ago, the IBM i team realized that we needed a radical change to the languages/environments supported on IBM i. So about six years ago, IBM i and Zend formed a partnership to integrate the PHP language as a part of the IBM i operating system. Including this language as part of IBM i opened up a new world of applications, developers, and interfaces. Over the past few years IBM i and Zend have worked closely to improve the performance and integration of this language. Now that PHP is part of IBM i, you have another option for creating applications and unlocking the data on your IBM i. This is the same PHP used on any other platform. In addition, a great deal of work has been done to help provide quick and easy access to native IBM i objects.
Zend Development Studio. Just like the other development environments I've discussed, this is an Eclipse-based interface. Since it's built on the same underlying technology, the look, feel, and base function are the same, making this environment comfortable to learn. All the tools you would expect are part of the environment: file management, search, source edit, compile, and integrated debug. The Zend Development Studio provides an easy-to-use interface for building new applications with a feature-rich editor that helps developers focus on the application being created. In addition to an editor, there are tools that help generate the necessary code to adhere to modern coding techniques like Model-View-Controller, as well as tools to help you quickly build screens. Most importantly, this environment also has the integration to IBM i that you would expect. There are connection points built in to help you access IBM i native objects. You can easily call RPG, COBOL, and CL programs passing and receiving the corresponding input/output data. You can access a wide array of native IBM i objects including data areas, data queues, user spaces, spooled file entries, and much more. In addition there are plug-ins for accessing DB2 on IBM i. You can easily tie your application to your data. Since PHP is part of your IBM i operating system, it's easy to get started with this environment. You are entitled to the Zend Development Studio as part of your IBM i license and can download your copy at the Zend website.
XML. XML Service support was recently introduced to provide a fast, universal tool for accessing native objects. This new service provides the plumbing needed to access any IBM i using scripting calls to programs, commands, Web Services, DB2, and SQL—simply using XML. Learn more at the Young i Professionals website.
The world of application development has come a long way over the past few years, from the user interfaces that we are required to use, to the development tools that help us keep up to speed. The good news is that, for a small investment in tools, you can quickly and easily become more productive, and create new and exciting applications for your business. It's easy to get access to these tools through free trials or free downloads, so there are really no excuses not to venture out and try something new.