Published on System iNetwork (http://systeminetwork.com)
The Developer’s Guide for Now: 5 Plus 1 Must-Have Skills
By chris.maxcer
Created Sep 18 2009 - 22:49

By:
Chris Maxcer [1]

Every now and then, I run into a bit of information that’s so clear and accurate that I find myself startled and blinking. Such was the case when I asked Scott Klement, a System iNEWS magazine tech editor, educator, and mastermind behind the computing systems that run Klement’s Sausage Company, to quickly nail down some of the most exciting and promising technology areas related to IBM i development these days. He gave me five.

I shared his thoughts on my blog, Maxed Out, on SystemiNetwork.com, which generated quite a bit of interest and debate--though, to be fair, the debate tended to focus on more fringe technologies than those that Scott noted. Meanwhile, I reached out to two more savvy IBM i-focused developers--Jon Paris and Craig Pelkie--and asked them to look over Scott’s impromptu list and add some comments: Is Scott right on? Did he miss anything? What would you add or recommend?

The Top Five Must-Have Dev Skills

Of course, when we talk about these technology areas, we mean both the technology itself and the understanding and skill to put the tech to use. In some cases, though, a developer could be well-served to more simply increase his or her awareness of the technology--what it is, what it enables, where and when it might best be utilized. No one is saying that RPG programmers who are in stable, well-paying jobs need to make big leaps away from their skills that are paying the bills. But not all developers have this luxury. This list is for developers who are not only hungry for knowledge, it’s for those who face diverse challenges and want to be prepared for opportunities that might come in the future. Here’s the first five:

  • PHP
  • MySQL with IBM DB2 Storage Engine
  • External SQL procedures & functions for DB2 for i
  • AJAX
  • New User Interfaces

And why are they exciting, promising, and important? Here are the explanations, uncluttered, in Klement’s voice:

PHP:
“Exciting because it’s free, mainstream, powerful, and very easy to learn. You can quickly develop web applications in PHP, and the learning curve is short. It does not have the massive overhead or long learning curves of Java, but PHP is still mainstream and still produces modern web applications. (And, did I mention that it’s free?)”

MySQL:
“MySQL by itself isn’t that exciting or new. But the IBM DB2 for i Storage Engine lets you use MySQL as a ‘database independence layer’ of sorts. Files created by MySQL using this engine are actually physical files on disk that can be used natively from traditional languages like RPG and Cobol. You can share the files with all of the languages on your box. But, if written to use MySQL, you can move your programs freely to another platform and run them on MySQL on that platform, no changes needed. It’s great to be able to develop software on my laptop, test it on my laptop, and move it in production on i, where it can use the same native database objects as my RPG programs. Good stuff! Even better, there are oodles of free (and very good) software packages for PHP/MySQL--I can download them and run them on i with no changes. Because of the DB2 for i Storage Engine, they’ll use native database objects that I can also access from traditional RPG, Cobol, native SQL, Java, and CL. Very powerful!”

External SQL Procedures/Functions:
“A great way to write business logic in a business language like RPG--which remains the best language for writing business rules--yet have it callable from anywhere. It can be called locally or over a TCP/IP network. It can be called from any language that supports SQL--which is to say, any modern language. Furthermore, it can be called from software like Microsoft Office where you can provide your own SQL statements to be run.”

AJAX:
“I’m using the term ‘AJAX’ to refer to code that runs in the browser, but interacts with the server. It’s code that runs while the user is typing, or moving the cursor, in a browser interface. It lets you respond immediately to user’s input, so they don’t have to wait to click a submit button or hit the enter key to get feedback from the server. This lets you write rich user interfaces with immediate feedback to what the user is keying, the same modern user interfaces that users today crave and expect.”

New Ways to Reach Users:
Note: This one requires a bit of clarification--it involves multiple technologies and is more of a way of thinking and deploying than a specific technology.

“Let’s face it, there’s no future in 5250 screens or line printer reports. If you want to have a career as a programmer, you must invest in learning new ways to talk to your users. The recommended user interface in today’s world, across all computer platforms, is the browser interface. Writing applications that are accessed through a web browser is the most critical skill for you to learn if you want to have a career tomorrow.”

Along the lines of new ways to talk to your users, Klement says that Microsoft Office interfaces are becoming an increasingly must-have skill. Since he started teaching courses on Microsoft Office as a means of presenting RPG business logic, he’s been surprised at grateful comments, which include phrases like “revitalized my career” and “made me the star of the office”.

Jon Paris on Scott Klement on the List

All right, so what did Paris have to say?

“The more times I read it the more I find myself in agreement with Scott. Of course, as far as the UI is concerned you will get comments from the ‘green-screen-is-unbeatable-for-heads-down-data-entry’ crowd, but frankly, that argument is irrelevant. The world has decoded that green screen is dead. Certainly some folk will continue to use it--heck the airlines still use the equivalent for some tasks--but perception is everything.

“I agree that MS Office-type interfaces are also important and everyone should have the basics of that in their tool kit.”

Paris on Web Services:
“I am surprised--given how much he uses them--that Scott didn’t mention web services. Both using and supplying. That is fast becoming an essential skill even in one’s batch-style applications. Along with that, of course, goes the handling of XML and JSON.”

On Browser and Mobile:
“As far as the browser (and for that matter mobile devices) are concerned--the actual design and implementation of that style of application is a crucial skill. Too often people expect to be able to take their mental design models from the 5250 world and simply convert them to the browser. Doesn’t work that way. Interestingly, those of us who qualify for the title ‘old fart’ often have an easier time than the youngsters who grew up with S/38 and AS/400. We had to learn to write programs ‘browser style’ back in the days of MRTs (Multiple Requester Terminal) programs back on the S/34 and S/36 and even before that with CCP on the System/3 and CICS on the mainframe.”

On Java and .NET:
“It is hard to argue that Java and .Net have no role to play. As Scott noted, PHP is much easier to get your head around than Java but .NET has to be taken seriously if only because it is mandated in many organizations, and you either learn to ‘play nice’ or all of your IBM i workload will eventually be subsumed. You may not need to learn .NET--but you do need to know how to build SQL procedures and functions (as Scott noted) so that you can supply the data they need while retaining control of the resource on the i.”

Craig Pelkie on the List

“There are two technologies currently available for the IBM i that I would add to Scott’s list, which are complimentary to the items that he mentions. The first is database providers, the second is the tooling with the System i Navigator for SQL development and performance tuning.”

Database Providers:
“IBM provides at least three types of database providers that I’m aware of: Windows providers, the Java JDBC provider, and the provider used within PHP. I am not that familiar with the PHP provider, so my remaining comments apply to the other two. The importance of the database providers is that off-platform applications can use a provider to connect to the IBM i. For example, Microsoft applications (both end-user applications such as Microsoft Office and server products, such as SQL Server) can use one of the Windows providers to connect to the database. Once connected, any valid SQL statement, including stored procedure calls, can be made from the application. The JDBC provider opens the IBM i database to any other platform or device that supports Java.

“IBM i developers should at least have passing familiarity with these providers, if for no other reason than to be able to understand what database connectivity options are available to the IBM i. The Windows-based providers include ODBC, three variants of OLE DB and the .NET provider. In a nutshell, ODBC is most commonly used in desktop applications. The OLE DB providers include IBMDA400 (the original OLE DB provider, supporting SQL and access to other IBM i features), IBMDARLA (for ‘record level access’) and IBMDASQL (optimized for SQL workloads). Of the OLE DB providers, IBMDASQL is preferred for SQL access to the IBM i. The .NET provider is the newest provider, and is used for .NET applications. Most Microsoft server products use ODBC or OLE DB to connect to other databases; when the 2010 versions of Microsoft server products are released, most will also support the .NET provider. All of these providers are available for no charge on every IBM i, packaged in the System i Access for Windows Licensed Program Product. The JDBC provider is packaged in the no-charge IBM Toolbox for Java and in the JT400 open source version of the Toolbox.”

System i Navigator Tooling for SQL:
“The System i Navigator tooling for SQL is probably the best-kept secret in IBM i development. Unfortunately, System i Navigator was awarded a bad reputation early in its life and it is still stigmatized by its initial failings; however, it is a mistake to avoid becoming familiar with the Navigator. Early in the development of the Navigator, people within IBM told me that there would be some features that would be developed for the system that would only be available within the Navigator, that is, there would not be any equivalent green-screen commands. The SQL performance tuning tools is a huge example of such tooling. You have to drill down into the Databases section of Navigator, right-click on the database you want to work with (which typically shows up as your IBM i server name) and select the Run SQL Scripts option. That opens an entirely new program window that lets you develop and test SQL statements; it is the Navigator version of the STRSQL environment. You access the Visual Explain tool from the Run SQL Scripts program.

“Another hidden feature of the databases tool within Navigator is its ability to retrieve the source for a stored procedure. You can easily edit a stored procedure or capture the source to send it to another system.

“If you’re doing any SQL development on the IBM i, you should set aside a few hours to thoroughly check out the database features in Navigator. One thing you should understand is that you can use these tools in Navigator even if you don’t have the SQL Developer’s Toolkit (the LPP that provides the STRSQL command). The reason why the Navigator tools work is because they use the JDBC provider to connect from your PC to the IBM i database, and as mentioned above, JDBC is one way to access the IBM i using SQL.

“As a bonus, if you’re in Navigator, you should also check out the File Systems options. This provides a (dare I say it) Windows Explorer-like view of the IFS on your IBM i. I much prefer using Navigator to work with the IFS instead of the IBM i IFS commands (especially the dreadful WRKLNK command) or the QSHELL commands. There is certainly a time and place for command driven access to the IFS, but for me, most of the time the Navigator tools are exactly right.”

So What’s the Plus 1?

The “Plus 1” is almost whatever you want to make it. Paris noted Java and .NET, and Pelkie is no stranger to .NET either--but both seem to understand that knowing both may be overkill for many IBM i-focused developers, and trying to learn proficiency in one or the other might not be necessary, either, though “playing nice” may certainly be necessary.

And yet, it’s impossible to ignore the fact that both Java and .NET are widely used and are expected to continue to be widely used, and skills that are portable to many different organizations are generally a good thing to have. In some ways, the question becomes, “If I lost my job for some reason beyond my control, could I find a new job close by? Or would I have to move?” And then the question becomes, “If I have to move, can I sell my house? What will this mean to my kids? How long will it take for my spouse to find a job in a new location?” The questions get really sticky fast if you’re not located in a geographic area that has need for a lot of IBM i-focused developers.

Keng Siau, E. J. Faulkner Professor of MIS for the University of Nebraska-Lincoln, points out that for managerial and executive positions, higher-level skill sets for planning, strategizing, and overall business knowledge can be essential, too. “It is in the interest of Power Systems, IBM i, and the whole ecosystem to have IBM i professionals advanced quickly through the corporate ladder. Major acquisitions and investment decisions are made at the top and we want to have Power Systems and IBM i believers at those levels,” he notes.



Chris Maxcer is news editor for SystemiNetwork.com. “If there’s one commonality to all of these skills, it’s that they focus on the ability to make core RPG-based applications more integrated and extended into other systems or interfaces,” Chris says. “PHP could be the exception, of course, but it can still tap into DB2 data.”

© 2010 Penton Media, Inc.

Source URL: http://systeminetwork.com/article/developer%E2%80%99s-guide-now-5-plus-1-must-have-skills

Links:
[1] http://systeminetwork.com/author/chris-maxcer