Recently, I sat down with Greg Veal, author of CL Programming for the AS/400, at the COMMON Conference in Miami Beach and recorded a podcast from the COMMON Expo show floor. We spoke about a number of topics; hear the podcast in its entirety at iSeriesTV.com.
One of the subjects that came up was the recent enhancements to CL. Greg makes several good points about specific enhances in the podcast, but I've since had a few thoughts.
First, CL is in a very poor strategic place. It isn't considered a full-blown application development language, like RPG IV, C++, or Visual Basic, and it isn't considered a great dynamically interpreted scripting language like PHP, Perle, or Python.
Yet we love CL. We love CL and love to hate it. From what I can see, people who develop applications for the iSeries and System i fall into one of several classifications, without any clear winner.
- Use CL in the traditional sense. Wrap all application calls in it. Perform overrides with it. Do as much as possible in CL.
- Use CL for job flow control and overrides.
- Use CL for OPNQRYF and overrides.
- Use CL for overrides only.
- Use CL from within RPG IV only when an API isn't available to do the same thing.
It is my belief that there are more iSeries developers out there today who do not know how to write their own CL command definitions than there are those who do. In fact, there may be more people out there programming the iSeries who do not know CL at all than those who do. And I don't mean in North America only. I think if you looked at worldwide figures, I would be proven correct.
But so what? The real question of the day is this: Are CL enhancements important?
At first, I giggled at the notion of enhancements to a language that I virtually no longer use. If I don't use it, "most people" probably don't use it. Right? Of course, this is a stupid assumption on my part. As I've said before, I have a lake in my back yard. All the ducks in the lake are mallards. So does that mean most of the world's ducks are mallards? Of course not.
In my opinion, these CL enhancements are not only nearly two decades late, but critical for the survival of the platform. Why? Because if the platform is to survive, all of its base components need to do everything effectively. This means CL needs to do even more than it does now. For example, launch PHP, interpret JavaScript or PHP, provide full structured-programming constructs (not a subset of them as it currently includes).
Would any of these features cause me to start using CL again? Probably not, but they would allow new developers to adapt to a platform that has been considered "old" for decades.
Yes, the most advanced platform in the world is still considered old by the up-and-coming generation of IT staffers because it does some common, everyday things (such as mail) much more poorly than any other platform. One thing that would surely kill this box is if its flagship programming languages started to get stale. Although CL has been DOA for more than 20 years, it now has new life. We should encourage that and see what wonderful things come from it.
Bob Cozzi is a programmer/consultant, writer/author, and software developer of the RPG xTools, a popular add-on subprocedure library for RPG IV. His book The Modern RPG Language has been the most widely used RPG programming book for nearly two decades. He, along with others, speaks at and runs the highly-popular RPG World conference for RPG programmers.
LATEST COMMENTS
MC Press Online