× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.




See the articles below for other opinions about this.

http://eli.thegreenplace.net/2009/04/27/using-goto-for-error-handling-in-c/
http://www.reddit.com/r/programming/comments/8fpk1/using_goto_for_error_handling_in_c/


From: jacobus1968@xxxxxxxxxxx
To: rpg400-l@xxxxxxxxxxxx
Subject: RE: Why was GOTO removed from /free?
Date: Mon, 27 Apr 2009 11:46:23 +0200



I think the problem is with the people, not the tools.
Developers writing bad code using goto still write bad code without the goto.

goto... IMHO, it's never actually BETTER with the goto. Not having it
forces people to structure their code around the way the program is
SUPPOSED to flow, and leads to better code in the long run.

In "normal" circumstances, yes, but in the case of error handling using goto can really make the code much more clean.

See the articles below for other opinions about this.
There really seems to be a consensus that using "goto" in a classic language like C or RPG (no exception handling) in situations where in case of an error the "supposed" flow of the code is to escape to "clean-up" code is much cleaner than using multiple nested ifs etc.

I know it's still available in "fixed" format, but in practice this actually means it's gone. You really don't want to code
/end-free
goto out;
/free

And i really don't know what practical problem this solves. You don't get clean code just be removing the "goto". Besides not many new RPG code is being written. The bulk of RPG is maintanance code which probably uses "goto". Now this code can't be easily converted to /free without the code being littered with /end-free .. /free. The removal of "goto" brings more problems than it solves, IMO.

The problem of abuse of goto is not solved with the removal, because most "abusers" are probably programmers which 90% of their time do maintenance now. And it's now more difficult to persuade them to convert to /free because of the ugly code littered with /free .. /end-free.

RPG is NOT "modern" such that goto is not necessary.


Date: Mon, 27 Apr 2009 02:19:11 -0700
From: rpg400-l@xxxxxxxxxxxxxxxx
To: rpg400-l@xxxxxxxxxxxx
Subject: Re: Why was GOTO removed from /free?

My personal opinion is that GOTO is a bad thing to have in a modern
language. I agree with the plethora of papers and articles that have
said this.

I do see your point to a degree. It's possible to use GOTO in a way
that isn't too bad... the problem is that it always starts out that
innocently, but then gets overused and leads to a mess. Usually, at
best, the code with the goto is "just as clean as" code without the
goto... IMHO, it's never actually BETTER with the goto. Not having it
forces people to structure their code around the way the program is
SUPPOSED to flow, and leads to better code in the long run.

Just my opinion.

Regarding it being "removed" from /free -- it wasn't removed, because it
was never in /free. The fixed format GOTO is still there, and can still
be used as always.

I have been writing GOTO-free RPG code now for 15 years (I started in
RPG/400) and at first it was really hard to get the hang of, and I felt
as you do that it was cumbersome and that I was avoiding it for no good
reason. But after doing it for awhile I found the gotoless code nicer.
Now, after so long, I would never even consider going back.

Also, RPG *does* support exceptions, although I wish IBM would make them
simpler to use -- but I do use those as well.


john e wrote:


Without giving something back...?

For clean error handling "goto" is often the best choice in a classic language (yes RPG is still classic, like C).

What problem has been solved now by just removing goto from RPG as we don't have exception handling in RPG as we have in C++ or Java?


http://eli.thegreenplace.net/2009/04/27/using-goto-for-error-handling-in-c/

_________________________________________________________________
De grappigste filmpjes vind je op MSN Video!
http://video.msn.com/video.aspx?mkt=nl-nl

--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.


_________________________________________________________________
Nieuws, entertainment en de laatste roddels. Je vind het op MSN.nl!
http://nl.msn.com/
--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.


_________________________________________________________________
De grappigste filmpjes vind je op MSN Video!
http://video.msn.com/video.aspx?mkt=nl-nl

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.