Installation remains essentially the same as for Version 8.0 and subsequent releases. There is now one additional installable feature for the Performance Advisor for IBM® AIX® and Linux systems.
Ubuntu support has been added in this release.
Table 1. Clients supported by Rational Developer for Power Systems Software
|Client operating system||32-bit||64-bit|
|Microsoft Windows XP Professional||x|
|Microsoft Windows Server 2008 SE and EE||x||x|
|Microsoft Windows 7 Professional, Enterprise, and Ultimate||x||x|
|Microsoft Windows Server 2008 R2 SE and EE||x|
|Red Hat Enterprise Linux Desktop 5||x||x|
|Red Hat Enterprise Linux Desktop 6||x||x|
|SUSE Linux Enterprise Desktop 11||x|
|Ubuntu 10.04 LTS (32-bit JVM only)||new||new|
In addition, you can now install IBM® Rational® Developer for Power Systems™ Software with a 64-bit Java virtual machine (JVM) on a 64-bit platform. If you install with a 64-bit JVM, all of the products you want to install into the same package group must also support installing with a 64-bit JVM, however. If a product has only a 32-bit version, such as the IBM Data Studio, you cannot install it into a 64-bit JVM package group.
The JVM installed with the product has been updated to the IBM JVM 7.0.
IBM provides a media refresh for the 8.5 release. You can get the full installation package by ordering installation media or downloading. This is a new point release rather than a service release, so you cannot update existing installations using the IBM Installation Manager. You must do a new installation. Activation kits are available from Entitled Software Support or from Passport Advantage, depending on your ordering and fulfillment mechanism. Check with your IBM Business Partner for more information about how to upgrade or purchase.
The IBM i support in Rational Developer for Power Systems Software has received many requests for enhancement since we opened the RFE process in April 2011. We have one of the most active RFE communities within the Rational software group. The improvements that follow are a direct result of these requests (see Resources for links to each RFE mentioned in this article).
You can enter a request on our developerWorks site, and we’ll try to respond to those that receive the most interest from the community. If we reject a request due to resource constraints, please feel free to resubmit it at later. See the Resources section for a link to where you can enter new requests for enhancement (RFEs).
Always report problems through the normal service channels, though.
When you fill out the search or submit request forms, use these entries from the drop-down menu (as shown in Figure 1):
- Brand: Rational
- Product Family: Design & development
- Product: Developer for Power Systems
- Component: All components (default)
- Status: All statuses (default)
Figure 1. The correct entries for submitting a request for enhancement
This RFE received the most votes for this release.
Figure 2. The RPG live outline
In the past, you were required to refresh the outline view in RPG when you wanted it updated. This was different from most other languages supported in an Eclipse environment. That was partly because the data used when creating an outline came from externally referenced files on the host system. Refreshing the outline caused a revalidation of not only the source in the editor but also of these external references. This was a long-running operation, of course.
We retained the same structure as the original outline view, but now it appears immediately upon opening the file and refreshes immediately when changing lines in the source file. To accomplish this, we rewrote the underlying parsing mechanism for RPG to provide the data for doing a fast local refresh. As a result, we can also provide a bit more information in the outline. As you would expect, this outline updating occurs only for changes made in the local file. Fields from externally referenced files and copybooks are not updated until you refresh manually.
You can watch a video of the new outline view in action on the IBM Rational YouTube channel (see the link in Resources).
In addition to providing a responsive outline, this will enables us to add more syntax-related features to RPG support in the future.
Rational Developer for Power Systems now allocates more space to the command entry area in both the Commands Log and Object Table views. In addition, the command entry field in the Commands Log view now has a keyboard focus when the view is activated.
Figure 3. The new layout for the Commands Log
Before this release, you had to invoke a compile action on a member in an IBM i project by using the context menu on the member in the IBM i Projects Navigator view. Now that action is available directly by using the Remote Actions menu from the source member.
Figure 4. Compile commands available when editing IBM i project source code
If the member is modified, it is saved to the project and then pushed to the IBM i system and compiled.
Version 8.5 adds a Last Modified column in the object table. You can sort by this column for both members, as Figure 5 shows, and for objects. To add this column to the view, you must modify the view by using menu to either select columns to show or to show all columns.
Figure 5. New columns added to the object table
As you can also see from Figure 5, File and Library columns have also been added to the object table. You must modify the view to show these columns.
Figure 6. The new date format options for the table view
You can now set the format for dates and times used in the object table, as you prefer.
One of the enhancements from Version 8.0.3 received has been further enhanced, based on feedback from customers. You can now control the way you comment out blocks of RPG code.
Figure 7. The new block comment preferences for RPG
You can now choose to overwrite column 7 rather than shift the line. This option is useful if you usually comment or uncomment lines of fixed-format C specifications. When you use the Comment operation with this option, the software first checks to see whether any non-blank characters are in column 7 on the selected lines. If there are, it will not perform the operation.
There is a comparable option for free-format calculation lines.
The properties sheet for source members in an IBM i project has been enhanced to show the text description of that member. You can modify the member description from the property sheet, as well.
Figure 8. The text description for i Project members
This was actually a bug in the underlying Eclipse components that we use. We requested and incorporated a fix.
In this release, we added a preference to control the object cache expiration.
Figure 9. The Preferences page for object caching
You can now specify the length of time before the IBM i object cache expires. When an object cache is used, the IBM i support will check whether this cache has expired according to this preference. If the cache has expired, Rational Developer for Power will clear the cache before retrieving the object information from the IBM i system.
We updated IBM i projects to use the common Reconciler view used by AIX and Linux systems. The Reconciler view shows the resources in a project and their states of synchronization state with the host system. This is somewhat like the Show Remote Resources operation already available in the i Projects Navigator, but it is more powerful, because you can set it to push on save and pull on remote change automatically. Remote changes are recognized when the remote system is refreshed. You can set this to happen automatically at a particular interval, or you can manually request a refresh.
The Reconciler view appears in new instances of the IBM i Projects Perspective. You can add it to existing instances by selecting Window > Show View > Remote Reconciler. If you are on a slow connection or have many resources in a project, the reconciler might take longer to refresh. If you prefer, you can tell the reconciler to ignore IBM i projects.
The COBOL Editor introduced in the 8.0.3 release is now the default editor for .CBL files. Previously, the default editor was the Remote Systems LPEX editor. You can still use LPEX, but the new editor has more functions and is the one that will show improvements in future releases.
The default editor (see Figure 10) is now determined by the type of file you are opening, such as CBL, and by the type of target system that it is associated with. You can change this behavior in the preferences for AIX COBOL (Preferences > COBOL > AIX > Default Editor). This overrides the preferences set for the File Association (Preferences > General > File Associations) so the platform can use the target system in determining the default editor.
This new editor still lacks bidirectional language support, as well as some support for target system double-byte character sets. Continue to use the Remote Systems LPEX editor in those cases.
Figure 10. Default COBOL editor in the Preferences view
Previously, if you had errors in a project that occurred in source outside of the project, for example in a copybook located in a common directory, those errors were not shown in the Problems view. Now they are.
You can open those remote files in the editor by double-clicking on the error notice. Any changes are made directly to the remote file. The file will remain outside the project.
Before this release, COBOL preprocessor statements appeared with warnings in the new COBOL editor. Now you can identify these by using Source > Preprocessor Statements > Identify Using Configured Preprocessors. These statements are distinguished from regular COBOL source code by a thin marker in the left margin.
Figure 11. The margin marking that indicates preprocessor statements
Preprocessor configurations enable you to tell the editor the order in which to run the processors. You can specify these configurations in the preferences or at the project properties level.
A program flow diagram has been added for COBOL. This gives a graphical view of the paragraph flow of a COBOL program. Double-clicking a paragraph in the flow diagram opens that paragraph in the editor.
You can now identify unreachable code by using Source > Identify Unreachable Code. This runs a local analysis to find code that seems unreachable. Because it does not run the full compiler, it does not analyze copybooks and some preprocessor statements. Calls to external programs cannot be analyzed, and code after calls to procedures that do not return is not marked.
You can show data elements from your program in a table (Show In > Data Elements) and then use that table to navigate through your program. It also shows elements found in copybooks used by the program.
Figure 12. A data elements table
Mark Occurrences was added to the new COBOL editor in the previous release. You can use it to select a variable in the editor and highlight all occurrences of that variable in the source code. Reads and writes are distinguished from each other by color, and those occurrences appear in the overview ruler on the right side of the editor. Clicking on a marker in that ruler moves your view to that occurrence.
In this release, you can select a procedural statement, such as IF, and the markers will highlight the corresponding ELSE, ELSE IF, and END-IF keywords. Other end phrases and statement conditions are supported also.
In addition to Mark Occurrence, you can now perform a Find Occurrences operation from the new editor that populates a Search view for that variable. You can use this view to position occurrences of a variable and can pin them in place for future reference and navigation, even if the editor that generated the view is closed.
Placing a cursor on an open or close parenthesis mark in the source code now highlights the matching parenthesis. This makes it easier to read complex nested expressions.
The static analysis tools have been enhanced to add more rules for code style and to allow for the creation of custom rules. Adding custom rules is a matter of writing new plug-ins to extend the existing rule sets. There are tools included with Rational Developer for Power that you can use to generate templates for these plug-ins.
You can use the new Code Coverage support to analyze AIX COBOL code. See the explanation later in this article.
Multiple context support has been added for both COBOL and C/C++. See the explanation later in this article.
You can use semantic highlighting in the C/C++ editor to color bits of your source code, depending not only on syntax but also on underlying meaning of the code. With semantic highlighting turned on, you can color class identifiers differently from those for enums, and distinguish methods and parameters from local variables. The list is quite extensive.
You can set semantic highlighting preferences under Preferences > C/C++ > Editor > Syntax Coloring.
Code folding is the ability to collapse blocks of code into a single line. A marker is placed in the left margin to indicate that a block of code has been collapsed. You can collapse a class, a single method, structs, and other complex structures to provide more focus on the code at hand.
You can set code folding as the default by selecting Preferences > C/C++ > Editor > Folding.
The new Code Analysis feature uses the static analysis engine introduced in the previous release and used by COBOL. Rules are available and can be activated to enforce particular coding conventions. You can access it under the Software Analyzer icon on the toolbar of the C/C++ perspective.
To use the analyzer, you create a configuration that contains the rules you want to enforce and a default scope (range of files) for applying those rules. You can then run the analysis any time. Analysis is a complex operation and is typically done on several files at a time. Analysis can take time, so it is done when requested by the developer, not automatically on every code modification. You can launch an analyzer configuration from the Software Analyzer icon mentioned above.
Built into the Code Analysis engine are rules that assist in migrating C/C++ code to IBM® POWER® systems. The analysis can detect 32- to 64-bit migration issues, endian issues, and some operating system issues that could impede portability.
Figure 13. The Software Analyzer rules for migration assistance
A context is a construct that specifies a remote target system, directory, and environment in which to build a COBOL or C/C++ application. Starting with this release, you can specify multiple contexts and use them to synchronize and build your projects on remote systems. Projects can be synchronized with a context in the Reconciler view. If you switch a project's context and switch back, the workbench will remember which elements of the project you last synchronized with that context.
Multiple contexts are useful when you have several remote systems on which to build. Another use is to create binaries with different characteristics from the same source. For example, you can use this to create both an optimized and a nonoptimized version of your project.
You can now select Preferences > Remote Development to configure the number and type of errors to be reported from the remote indexer.
The Performance Advisor is a new component in this release. You can use it to analyze C/C++ programs on both Linux and AIX systems. The advisor is based on low-level sampling tools for those operating systems (
tprof for AIX and
OProfile for Linux) and provides high-level analysis tools for the data collected by them. The user interface makes it easy to gather data and present it in a clear graphical form. However, it goes beyond advice for changes to your compiler options. It also provides comparison tools that can show improvement between runs after making those modifications.
To use the Performance Advisor, create a C/C++ application and then launch a performance tuning session on that application. There are wizards that guide you.
You can use the Performance Explorer view to manage these sessions. Opening a session reveals the System Scorecard, where you can get Recommendations for how to improve performance.
Figure 14. Performance Advisor recommendations after performance-tuning
After you apply the recommendations, you can run more sessions and compare results to a baseline to determine how much the program has improved.
Figure 15. A performance comparison view after modification
This only briefly touches on the capabilities of the Performance Advisor. For a much more in-depth look, see the Performance tuning C/C++ applications… article cited in Resources.
Code coverage is a new function in this release. You can enable code coverage reports for AIX and Linux programs, and this is quite useful during the testing phases of a release. Automated testing combined with code coverage reports becomes another tool to improve the quality of your software.
The underlying technology is based on debugging and special breakpoints set in the programs being measured. Because it is based on debugging, there is no need to create a special code-coverage version of your program to instrument it for coverage.
To use code coverage, create a special launch configuration and turn on code coverage for that launch by selecting Run > Compiled Code Coverage Configurations > Coverage. This is similar to creating a simple run or debug launch configuration for a remote program.
When the program runs the coverage of each statement is recorded. At the end of the run a coverage report can be constructed and displayed.
Figure 16. A code coverage report
In addition to the reports, you can turn on code coverage annotations in the editor. The annotations show as marks on the left side of the editor pane.
Figure 17. Code coverage marks in the editor for C++
IBM Worklight Studio is a mobile application development platform. It's a separate product that you can install into the same package group. Worklight Studio supports the creation of mobile applications for the iOS and Android operating systems in a different styles, including web, hybrid, and native applications among them. Each style has different deployment, maintenance, and platform characteristics.
See Resources for a link to learn more about Worklight Studio. Version 5.0 is included on the physical media with Rational Developer for Power Systems tool bundles, but you can download it from that page if you prefer.
You can now install IBM Data Studio 3.1.1 into the same package group as Developer for Power Systems. This is a separate, no-charge product that provides more enhanced database tools. This is a quick summary of some of the differences you'll see if you install this with Rational Developer for Power Systems Software.
- The Database Administration perspective gives you access to various database administration functions that you can use to define databases on IBM® DB2® for Linux, UNIX, or Microsoft Windows (LUW) systems, among other things. It also gives you the ability to define and manage Data Development Projects that contain SQL scripts for both IBM i and AIX systems.
- The Data perspective is a convenient grouping of various views for database development and inspection. The existing Database Development and Database Debugging remain, and their views are updated with many new actions.
There are graphical overview and topology views that work for both IBM AIX and IBM i. Visual Explain, Query Tuning, and Performance Metrics are available and supported for DB2 on AIX and Linux. Unfortunately, these functions are not available yet for IBM i in the Data Studio.
The Data Source Explorer in several of the Data Studio perspectives has several enhancements:
- A new SQL and XQuery editor that embeds access to the visual explain
- Query tuning
- Performance metrics tools
The explorer also provides Content Assist and formatting for script development for both LUW and IBM i. You can use it to write SQL and Java stored procedures and user-defined functions.
- RFEs mentioned in this article:
- RFE10303: Implement live updating for the RPG outline
- RFE11093: Set the keyboard focus to command field in the command log view
- RFE11322: Activate the Compile menu in the i Projects perspective when a source member is open
- RFE11054: Show a Last Used column in the object table
- RFE11621: Add a File Name column to object table member list
- RFE11085: Add a preference for the date format for the object table
- RFE14130: Add preferences for the RPG block comment action introduced in 8.0.3
- RFE14298: Show the text description of a source member when selected in an i Project
- RFE14682: Support creating a filter when Go Into is used
- IBM Rational Developer for Power Systems Software provides integrated development environments for the major development workloads on IBM i, IBM AIX, and Linux, including Java, C/C++ on AIX and Linux, COBOL on AIX, and RPG, COBOL, C, and C++ on IBM i. To learn more, start with the developerWorks page, and then review the Rational Developer for Power Systems Software product information, features and benefits page, as well as the product line overview. For support or documentation, see the Rational Developer for Power Systems Software Information Center.
- Watch the Live outline view for ILE RPG demo on IBM's YouTube channel.
- Enter new requests for enhancement (RFEs).
- Delve deeper by reading Performance tuning C/C++ applications with Performance Advisor in Rational Developer for Power Systems Software by Mike Kucera (IBM developerWorks, June 2012).
- Investigate the advantages of IBM Data Studio for integrated, modular database development and administration. For a further summary of functions and the database systems that they apply, see Data Studio V3.1.x features: by data server and component.
- Learn more about the IBM Worklight Studio mobile development platform.
- Explore the Rational software area on developerWorks for technical resources, best practices, and information about Rational collaborative and integrated solutions for software and systems delivery.
- Stay current with developerWorks technical events and webcasts focused on a variety of IBM products and IT industry topics.
- Attend a free developerWorks Live! briefing to get up-to-speed quickly on IBM products and tools, as well as IT industry trends.
- Watch developerWorks on-demand demos, ranging from product installation and setup demos for beginners to advanced functionality for experienced developers.
- Improve your skills. Check the Rational training and certification catalog, which includes many types of courses on a wide range of topics. You can take some of them anywhere, any time, and many of the Getting Started ones are free.
Get products and technologies
- Download and evaluate Rational Developer for Power Systems Software, free of charge, or try it in the online sandbox.
- Download IBM Data Studio 3.1.1, free of charge, to simplify database administration, accelerate application development, and increase cross-team collaboration. You can install it into package groups by using a 32-bit JVM (Java virtual machine).
- Download a free trial version of other Rational software.
- Evaluate other IBM software in the way that suits you best: Download it for a trial, try it online, use it in a cloud environment, or spend a few hours in the SOA Sandbox learning how to implement service-oriented architecture efficiently.
- Join the Rational Developer for Power Hub forum to ask questions and participate in discussions.
- Get connected with your peers and keep up on the latest information in the Rational community.
- Rate or review Rational software. It's quick and easy.
- Share your knowledge and help others who use Rational software by writing a developerWorks article. Find out what makes a good developerWorks article and how to proceed.
- Follow Rational software on Facebook, Twitter (@ibmrational), and YouTube, and add your comments and requests.
- Ask and answer questions and increase your expertise when you get involved in the Rational forums, cafés, and wikis.
Dave is an architect for Rational Developer for Power Systems Software, with a concentration on the IBM i. He has worked with IBM for more than 36 years and has been on the development teams for the System/38, AS/400, iSeries, and IBM i, as well as products for IBM System z and its client software. His technical interests encompass programming languages, object-oriented programming, user interfaces, databases, abstraction, and techniques for writing clean code.