I guess this is what I am asking for
Are there any problems with maintainability of a goto statement when the code is updated in a manner that follows good design principles? The design principles that I think are most relevant are:
- Variables (in any language) should be declared/initialized at the start of the code block in which they are used (a "Declared Use" idiom).
- Code blocks (in any language) should be as atomic as possible (an "Encapsulation" idiom).
- A naming convention for all identifier types should be agreed upon by the developers before production (a "Namespace Maintenance" idiom).
- The execution flow of a code block should follow in its reading the originally designed flow for the functionality desired (a "Flow Maintenance" idiom).
The point is that I do understand that the implementation will change as development progresses over the products lifetime. But, as long as design principles are followed, the implementation should never affect maintainability. This was the reason for the switch in linguistic research to form in the first place, ie. to provide for keyword independent rules that allow the creation of useable and maintainable code. If goto is an exception, then it is important to find out why because this would invalidate the current state of this line of research.
I am glad this thread is pursuing these issues, because it is very important to the entire field of general design principles, and I hope there will be more posting from all of those who have an interest in expanding this field.
So I will repeat my question. Are there any problems with maintainability of a goto statement when the code is updated in a manner that follows good design principles?