[Beowulf] Re: g77 limits...

David Mathog mathog at caltech.edu
Wed Mar 1 09:43:12 PST 2006

Leif Nixon wrote:
> "Robert G. Brown" <rgb at phy.duke.edu> writes:
> > As for the python... well, I just plain like delimiters in my code.  I
> > might even use it if the authors of python hadn't imposed two pieces of
> > religion on its users:
> >
> >    No line terminator (e.g. ;)
> >    No {} -- all code grouping MUST be accomplished by indentation.
> In braces-riddled languages you have to mark up the block structure
> twice; first with braces for the sake of the compiler, and then with
> indentation for the sake of humans. That's a bit silly and error prone
> in my eyes...

A language war is brewing...

Indentation can be a PITA when tabs are mixed with spaces. 
Editor settings may convert tabs on some operations to spaces and
then the indentation can be mangled.  Or the tabs in one editor are
6 spaces and 8 in another.  If indents are pure spaces this isn't
a problem.  

If the compiler can make sense of the braces then so
can other programs, and so generating proper indentation from the
braces can be done automatically.  Perhaps the ugliest piece of 
source code I've seen in the last decade is taxalign.c from
the NCBI toolbox (needed to build the BLAST program.)  As
distributed the indents are messed up and it is just awful
trying to figure out how that code works.  The #ifdefs don't
help matters.  It also used the syntax which I think is one
of the biggest mistakes in C:


Blech.  More than one line, use braces! A pass through
"indent" cleaned up the mess (indent wise) and helped immensely in
figuring out what the code was doing.

Conversely, if something stomps the indentation in a
nonbracketed language there may not be any way to put things right
again automatically. 

I'm pretty much agnostic on line terminators.  It doesn't matter
much if the standard requires line terminators or line continuation
characters.  It is unfortunately a major pain to switch back and
forth  between languages that do this differently.


David Mathog
mathog at caltech.edu
Manager, Sequence Analysis Facility, Biology Division, Caltech

More information about the Beowulf mailing list