Welcome to myCobol.net Saturday, 29 April 2017, 09:30 @ CEST
Cobol has no global data, i.e. data items that are shared among several program units (subroutines). The only way to pass information is to use the call parameter list. Sometimes this is obfuscating the Cobol text, e.g., when many subroutines share a large set of parameters. In such cases one can use a common block. This is a way to specify that a set of data items should be shared among subroutines. But in general, the number of common blocks should be minimized.
Learning to write Cobol Text is considered easy. One may feel dumb when forced to write the four divisions and some -- always present -- default sections. However, it is fast recognized that starting with a template, a sort-of empty program, would overcome this. At least we are very used to this technique when working with a text processor like a office suite.
So we learn. And that is why CoCoS distinguishes between newbee's, junior, medior, senior Cobol programmers and the professional use of Cobol. Because we all apply different tricks and expose different habits depending on our knowledge, our track record, our colleagues, etc. Not to forget the standards imposed by the employer or contractor.
When Cobol was conceptualized, computer characters were mainly uppercased. Functions like ignoreCase were not available and did not even circulate the minds of IT professionals. And there is no need, nowadays, to stick to UPPERCASE.
While in the originating years (70's) of Cobol's growth, the programs were large and often monolithic. That did not change much over the years, but today's demands are for relative short programs that can be used as building blocks of complete systems. In short: callable subprograms, or subroutines, that can be fit in a control structure embedded in a OLTP queueing system of choice.