Saturday, April 14, 2012

A Call for Prayers to Solve the Problem of List Parameters and Variables in CL

Feature Requests and Requirements
Greetings worshipers of our lord Ib'm and the most holy "i". Today I would like to talk about an issue that has been with us since the days of the old testament. Yes, I'm talking about a chapter in the story of the land of System/38 and king CPF.

Since those early days we who toiled in semi-darkness, right through to modern times, were bedeviled by specifying variables for list parameters in CL programs. For every other parameter on the system, if we needed to specify a variable we were good to go, but to this day, even with the most holy "i", we’ve never had a good way to specify a variable with list parameters.

I think I've hit upon what I consider to be a workable solution to this intractable conundrum, but it will require the minions of our lord Ib'm to make three changes. It will also require many prayers from the faithful to prod its angels to effect these modifications. Towards this end I recently wrote a piece for System i News called Solving the Problem with List Parameters and Variables in CL. If you agree with the arguments set forth in that post then please register your prayers for this change by going to the COMMON Feature Requests and Requirements page and voting for the following requirement requests:
  • Arrays in CL #212: "Problem: The CL language does not have array support, which is something that would be very useful." Regular readers of this blog might recognize this as requirement #4 in my blog post Top Ten Requirements for CL Enhancements.
  • Qualified data structures in CL #215: "Problem: Currently CL variables whose storage is defined inside another variable (known in RPG as a data structure) cannot be qualified to that variable. CL modules are getting more and more complex given the expanded features IBM has introduced. The number of variables are getting larger and so are the number of data structure sub-fields and they must have unique names within the module. It is getting harder and harder to devise self-documenting field names with only 10 characters to work with, which was the problem that RPG had for many years before IBM allowed for qualified data structures." Regular readers might also see some resemblance to requirement #10 in my aforementioned blog post Top Ten Requirements for CL Enhancements, but of course it's been somewhat improved.
  • List Parameters and Variables in CL #216: "Problem: ...(redundant verbiage redacted-see 2nd paragraph of this blog post)... If you specify one list element you're OK, but that's rarely what is needed. Often times one needs to specify multiple list elements and you can never be sure how many will be needed at execution time. The current design of the command processing environment makes this difficult."
You will also be able to vote for these requests at the COMMON Council of Anaheim gathering next month. Unfortunately I won't be able to attend, but I will be there with you in spirit.

In the name of the Corporation, the Power System, and holy "i", Amen.

No comments:

Post a Comment