In the last issue, I wrote about field-naming conventions in your database files. I got a number of letters concerning this, and a few people posted comments in our online forums.
Thank you for taking the time to write in. Believe me, I read every one of these forums postings as well as the email you send me.
It appears to me that the issue of naming conventions is much deeper than database fields. There are the fields in the programs themselves, work fields, local fields, global fields, parameters, fields from a data area, and the list goes on.
While we all have our own view on field names, a recent conversation on an RPG IV list server that I monitor spawned an idea that, at first, was simply a matter of taste. But truth be told, it's really a serious issue.
That idea has become the Blue Ribbon Campaign Against @ # $ in Field Names.
This campaign may seem silly, but those three characters that are so widely used in RPG code are probably one of the biggest challenges to a shop when they have to go international. Many other national language character sets do not support these characters. In fact, many RPG programs won't even compile on other machines if these symbols are used in the source code. So it can be a real problem.
I would like to propose that you evaluate the use of these three symbols in your shops. There is no reason to continue to use such symbols that have no inherent meeting. Oh sure, the programmer who wrote the code knows that if a field name has a pound sign in the second position, it is a work field. But come on, do we still write code for ourselves, or do we write it for the person who has to come in after us and make changes?
RPG IV supports 10-position field names in the database, display, and printer files. Outside of those three areas, RPG IV supports 14-position field names for all areas of the language and even longer field names for some of the newer components (such as the EVAL opcode and the free-format specifications).
There is no reason to use a @ # $ in a field name today. Take the following example field name from a reader:
This was described as a local variable in a subprocedure, a work field holding the Amount value. I somehow believe that people who come up with these kinds of naming conventions were always perplexed as to why we needed 80 columns on those old punch cards when they could get it done in 40 columns.
But seriously, how could you make this more understandable to a follow-on programmer? How about naming the field something like this?
You still have that "L" in front of it, the underscore is an internationally recognized character, and the world AMOUNT is arguably more clear. If you don't like the underscore, leave it out.
This Blue Ribbon Campaign Against @ # $ in Field Names is an interesting idea. So what I'm going to do is run a contest for the campaign logo. Here are the rules:
Bob Cozzi has been programming in RPG since 1978. Since then, he has written many articles and several books, including The Modern RPG IV Language--the most widely used RPG reference manual in the world. Bob is also a very popular speaker at industry events such as COMMON and RPG World and is the author of his own Web site, www.rpgiv.com, and of the RPG ToolKit, an add-on library for RPG IV programmers.