Was haltet ihr von Goto

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.

Was haltet iht von Goto?

Benutze ich ständig
7
13%
Brauch ich eigentlich nicht
19
37%
Noch nie davon gehört
2
4%
Ist mir egal
2
4%
Goto ist das Werk des Teufels
11
21%
Brauch ich selten
8
15%
Diese Umfrage ist ein Mülleimerkandidat
3
6%
 
Insgesamt abgegebene Stimmen: 52

Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Beitrag von cxAlex »

hardfalcon hat geschrieben:Goto braucht eigentlich kein Mensch, man kann jeden Code auch so (um)strukturieren, dass er ohne Goto auskommt.
Du hast recht. Trozdem:
Wikipedia hat geschrieben: In der Praxis hat sich jedoch gezeigt, dass der Verzicht auf Goto zwar möglich ist, jedoch in einigen Fällen zu sehr aufwändigen Konstrukten führt. Besonders in zeitkritischen Programmteilen ist ein goto deutlich effektiver als am Ende von mehreren geschachtelten Schleifen jeweils eine Abbruchprüfung durchzuführen.
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

cxAlex hat geschrieben:Du hast recht. Trozdem:
Wikipedia hat geschrieben: In der Praxis hat sich jedoch gezeigt, dass der Verzicht auf Goto zwar möglich ist, jedoch in einigen Fällen zu sehr aufwändigen Konstrukten führt. Besonders in zeitkritischen Programmteilen ist ein goto deutlich effektiver als am Ende von mehreren geschachtelten Schleifen jeweils eine Abbruchprüfung durchzuführen.
das ist ja auch schön und gut, aber um das anwenden zu können muss man wissen, welche schleife was aufm stack ablegt und wieviel.

und das weiß kein Anfänger, das weiß ja kaum ein Fortgeschrittener.
ich selber müßte erstmal Freak oder Fred fragen,
damit ich weiß wie oft ich !POP einsetzen muss oder auch nicht,
vor nem Goto aus x schleifen heraus.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Beitrag von cxAlex »

Hab auch nie gesagt das es unbedingt was für Anfänger ist. Nur allgemein das es doch Situationen gibt wo GoTo bevorzugt werden sollte.
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Seit wann legen Schleifen etwas auf dem Stack ab? Das ist doch gar nicht nötig.
Jede While-Schleife lässt sich durch ein If und ein Goto simulieren. Genauso wie jede
andere Schleife. Da braucht man also kein Stack.
THEEX
Beiträge: 804
Registriert: 07.09.2004 03:13

Beitrag von THEEX »

in dem Artikel wird lediglich eine differenzierte Sichtweise vermittelt.
da steht aber nirgens, dass man Anfängern die verwendung von Goto empfehlen sollte,
damit sie erstmal richtig Müll produzieren bevor sie anständig Programmieren lernen...
Ich konnte nirgends lesen, daß irgendwer hier empfiehlt, Anfängern Goto zu verwenden.
Eine Art Query-Planner soll die Ausführung von Map/Reduce-Funktionen in Hadoop stark beschleunigen.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

@NTQ

ich weiß es nicht.
wie ist das bei For?
und gibt es noch andere Problemverursacher außer dem Stack?

ich habe mich um solche Problematiken noch nicht gekümmert, weil ich Goto einfach nicht mehr benutze, seit es keine Zeilennummern mehr gibt.

also wenn ich wieder Goto benutzen wollte, müßte ich erstmal noch einen Stapel Informationen einholen, um mich sicher zu fühlen.

... der IMA beginnt im Kopf, bzw. bei dem an das man nicht denkt.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Captn. Jinguji
Beiträge: 397
Registriert: 07.06.2005 19:47
Computerausstattung: PB 4.73x64, i7, WIN 10x64, ATI NVidia RTX 2070
Wohnort: Witten

Beitrag von Captn. Jinguji »

cxAlex hat geschrieben: Nur allgemein das es doch Situationen gibt wo GoTo bevorzugt werden sollte.
Hmmm.... sorry, hört sich irgendwie so an, als habe jemand vorher sich nicht sauber überlegt/abgefragt, was alles "schief gehen" könnte, dann im Fluge einen Fehler feststellt um dann "bevorzugt" mit dem Fallschirm
auszusteigen....

Gab es nicht so eine ähnliche Diskussion bei dem "On Error...Resume" Konstrukt ?
Ist das Kunst hier, oder kann das weg ?
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Beitrag von cxAlex »

Captn. Jinguji hat geschrieben:
cxAlex hat geschrieben: Nur allgemein das es doch Situationen gibt wo GoTo bevorzugt werden sollte.
Hmmm.... sorry, hört sich irgendwie so an, als habe jemand vorher sich nicht sauber überlegt/abgefragt, was alles "schief gehen" könnte, dann im Fluge einen Fehler feststellt um dann "bevorzugt" mit dem Fallschirm
auszusteigen....

Gab es nicht so eine ähnliche Diskussion bei dem "On Error...Resume" Konstrukt ?
Natürlich muss man sich im klaren sein das man auf alles Mögliche achten muss wenn man GoTo verwendet, es aber grundsätzlich nicht unnütz ist.

Es kann überall was schief gehen wenn man nicht aufpasst, GoTo ist nur eines von vielen Beispielen.
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Beitrag von Thorium »

KatSeiko hat geschrieben:Okay... Dann erklärt mir doch mal bitte folgendes: Dune 2077 funktioniert auf meinem Laptop hervorragend. Der ist auf XP 32bit. Auf meinem virtuellen PC ebenfalls, der ist Vista 32bit. Auf meinem Arbeitsrechner (auf dem ich übrigens auch mit PB programmiere) aber funktioniert es einfach nicht. Auch nicht mit dem WOW64-Kram, von dem Thorium erzählt, wird es nicht besser... :shock:
Wie sage ich so gerne in solchen Fällen: 1+1 ergibt immer 2, aber die Fragestellung ist sogut wie nie: Was ergibt 1+1? :wink:

Es ist totaler Käse was du da erzählst. Die Inkompatiblität kann durch ganz andere Sachen zustande kommen, z.b. durch API-Funktionen, die so unter einem 64Bit System nicht mehr funktionieren. Oder auch ganz einfach durch Bugs im OS. Du kannst garnicht 64Bit Adressieren, wenn dein Programm 32Bit kompiliert wird. Das ist einfach nicht möglich.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

hardy hat geschrieben:Goto braucht eigentlich kein Mensch, [...] zumindest Einsteiger sollten Komplett die Finger davon lassen.
Das finde ich gerade nicht.
Wenn Anfänger Goto nicht benutzen sollten und Experten stets darauf Schleifen verzichten, ja wozu gibt's dann noch Goto?

Was ich aber eigentlich sagen wollte: Gerade Anfänger sollten in ihren ersten zwei, drei Progrämmchen Goto verwenden, das habe ich auch so gemacht. Ganz einfach, damit sie die Abläufe/Arbeitsweise ihres Programms verstehen. Ist doch gut, wenn sie denken: "So, jetzt wurde das Gadget angeklickt, dann soll das Programm da-und-da hinspringen." Mit der Zeit lernen sie dann Schleifen und Rekursionen so geschickt einzusetzen, dass Gotos überflüssig werden.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Antworten