The Modern GOTO

Anybody whose soul is worth saving already knows about the great prophet Edsgar Dijkstra and his holy writ A Case Against the GO TO Statement. The satanic disciples of FORTRAN, when they were faced with that cry for repentance bellowed against its righteous purity and tried to tell his Eminence Dijkstra that this divine wisdom was wrong.

Of course, these people are heretical losers. They try to argue that if used prudently, goto doesn't necessarily result in massive, unmaintainable spaghetti code and that it was faster than most other forms of flow control… which, okay, maybe it is but so? This is about programming righteously not programming for fast execution times.

We'll teach them a lesson. They will lament when the fires of retribution come upon them. Programmers and language designers the world over who know that Earth must be cleansed of the wickedness that is goto are engaged in a brilliant game of subterfuge. We're weaning the heathens off of goto by redesigning it, maximizing its weaknesses and eliminating its alleged strengths, and placing it in modern languages as a great new feature.

We, Dijkstra's Holy Order of the Anti-GOTO, have already begun this deception and now it's too late to stop us. We're feeding the goto heretics their own twisted doctrine back to them; teaching them to use this new relabeled goto prudently, for rare cases, and that it can greatly improve code clarity and brevity. They'll happily embrace this new goto and will become so entrenched with the massive amount of debugging that they have to do with it that they will be incapable of writing any new code to poison the world with.

We're also writing goto statements in all our libraries and language's built-in functions that jump to non-existent labels; forcing all programmers to know which labels we're jumping to so they must implement the labels themselves if they intend for their code to work. But programs will still compile with these unlabeled goto calls. Instead of getting a compiler error over this break of flow, the program runs until it hits such a goto whereupon it crashes to the system.

Another cunning feature we're adding to this sabotage is the ability to put the same label into different parts of the same code. This way, those despicable goto lovers will have to guess where any given goto call is actually going to jump to.

But the most meaningful feature is that we're going to slow the entire system down with each goto call that's made; building a stack trace once for every time it's called.

We shall call this new goto the "exception." It will be your undoing. Computing prevails.

Date: 2013-06-28 12:39

Author: Anthony "Ishpeck" Tedjamulia

Org version 7.9.3f with Emacs version 24

Validate XHTML 1.0