Re: Re: Long Live GOTO

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

 



On Mon, Feb 06, 2012 at 11:12:53AM -0500, Jim Giner wrote:
> NO "GO"!
> As one who started back in the 70's with old style coding that utilized GoTo 
> in Cobol, Fortran, etc. and had to deal with "spaghetti code" written by 
> even earlier developers who never considered that someone else would have to 
> maintain their code, I feel strongly that GoTo is not to be used.

I remember being faced with spaghetti code 35 odd years ago - yes, horrible.
But what do we mean by ''spaghetti code'' ? I remember code where every 3rd
statement was some form of GOTO - yuck!

One very desirable feature of code is that it be clear, ie: lucid, able to be
understood by others. Too many GOTO statements and it is hard.

However: a few GOTOs can make things clearer.  Think of a function that can fail
in several different places (eg data validation, ...).  But it is reading a file
which needs to be closed before the function returns.  I have seen code where
some $IsError variable is tested in many places to see if things should be done.
That is just as bad as lots of GOTO -- often when having to write something like
that I will have a GOTO (in several places) to the bottom of the function that
closes the file and returns failure.

That is much clearer than extra variables.

If I survey my code I find that I use one GOTO in about 4,000 lines of code -
that I do not find excessive.

There are, however, people who consider any GOTO as communion with the devil.
IMHO: not so - if used sparingly.

-- 
Alain Williams
Linux/GNU Consultant - Mail systems, Web sites, Networking, Programmer, IT Lecturer.
+44 (0) 787 668 0256  http://www.phcomp.co.uk/
Parliament Hill Computers Ltd. Registration Information: http://www.phcomp.co.uk/contact.php
#include <std_disclaimer.h>

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux