[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: OT: Why is C so popular?



On Thu, 2003-08-28 at 01:44, Alex Malinovich wrote:
> On Wed, 2003-08-27 at 21:43, Ron Johnson wrote:
> > On Wed, 2003-08-27 at 16:01, Alex Malinovich wrote:
> > > Дана сре, 27-08-2003 у 13:06, Steve Lamb је написао:
> > > > On Wed, 27 Aug 2003 04:21:05 -0700
> > > > Paul Johnson <baloo@ursine.ca> wrote:
> > [snip]
> > > with C. I'm also very reluctant to learn Python because I'm very adamant
> > > in how I use whitespace. Though I will need to pick it up sooner later.
> > 
> > <innocently> Why Alex, whatever do you mean by that?
> 
> And speaking of whitespace, all this comments "start in column 7 and
> code starts in column 8, not to exceed column 72" is driving me bonkers!

Ah, fortunately, I had an editor tuned for COBOL.  Made things 
like renumbering lines, {un-}commenting large sections of code, 
etc trivial.

> :) Though, being that you were the first one to bring this up, and as
> much as I hate to admit it, I'm beginning to enjoy COBOL. I actually
> wrote a decent size declaration section today for the first time and I
> am extremely impressed.
> 
> I've been using Perl for a number of years with programs that store data
> in flat files. Usually using a combination of likely-to-be-unique record
> delimiters (usually :&:) and repeated calls to split(). To find a
> language that automatically does it for you before you ever even get to
> the 'real' code is really fascinating.

You'll find other cool stuff, too.  Things that you'll miss are
macros and structs.  Structs can be emulated using COPYBOOK,
but it's still not as smooth.

And don't forget CALL.  If your PROCEDURE DIVISION is getting
too big, or you execute the same large chunk of code over and 
over, make it into a sub-program, and CALL it, passing param-
eters.

One thing that blew me away is the fact that labels can start
with digits.  So you can say:

PERFORM 1000-DO-SOMETHING THRU 1000-EXIT.
<snip>
1000-DO-SOMETHING.
1000-LOOP.
       blah blah
       IF <something>
           PERFORM 1010-SUB-PARAGRAPH THRU 1010-EXIT.
           GOTO 1000-LOOP.
1000-EXIT.
       RETURN. (?)

The company I worked for had a hard rule about *never* *ever*
GOTOing out of the current PERFORM range.  Made for much 
cleaner code.

Do you know which version of COBOL you are studying?  -85 or (I
think) -99?  These versions have eliminated most of the need for
GOTO, but even when I used -85 and hardly used GOTO, I still 
used these same pseudo-subroutine techniques that older COBOL
gurus had been using since the '70s.

>                                         As is the whole 88 thing. I
> believe they're referred to as conditionals. 

88's are truly da bomb.

The place where I walloped COBOL produce income tax software.  Thus,
as you can imagine, IF statements were often quite hairy.

Once, my boss brought to me an IRS rule and a program with an
IF "conditional" that was 1/2 a page long, i.e., about *30* lines
long, and said, "It's buggy.  Fix it!".  After much wailing and
gnashing of teeth, 88s popped into mind, and I shrunk that hairball
down to 5 lines of, literally, prose.

> And that reminds me, you were the one that suggested KOBOL right? I saw
> that they have a demo version of it available. Is it crippled in any
> way? They have NO information available on the demo version on the site.
> (Other than where to download it of course.)

Don't know anything about it other than what I put in the email.


-- 
-----------------------------------------------------------------
Ron Johnson, Jr. ron.l.johnson@cox.net
Jefferson, LA USA

"Experience hath shewn, that even under the best forms [of 
government] those entrusted with power have, in time, and by 
slow operations, perverted it into tyranny."
Thomas Jefferson



Reply to: