1. Foren
  2. Kommentare
  3. Software-Entwicklung
  4. Alle Kommentare zum Artikel
  5. › Go - schnelle…
  6. Th…

Go............. to!

  1. Thema
  1. 1
  2. 2

Neues Thema Ansicht wechseln


  1. Re: Go............. to!

    Autor: Funktionalist 12.11.09 - 01:49

    Was haben denn bitteschön Designpatterns mit Loops zu tun? Das würde mich ja mal brennend interessieren.

  2. Re: Go............. to!

    Autor: ich auch 12.11.09 - 01:50

    Goto hat keine Existenzberechtigung:
    --SNIP--
    verschachteltermist()
    anderermist()

    function verschachteltermist()
    {
    foreach(var child in node){
    foreach(var item in child.Items){
    if(item.IsEnabled)
    DoSomething(item);
    else
    return;
    }
    }
    }
    function anderermist()
    { ... }
    --SNIP--

    So wird der code lesbar, funktionen tun niemandem weh... aber es war schon ein gutes beispiel. Und goto "nach unten" geht gerade noch. Aber bitte nicht nach oben springen!

  3. Re: Go............. to!

    Autor: ich auch 12.11.09 - 01:54

    Tingelchen schrieb:
    --------------------------------------------------------------------------------
    > Noch nie was von Rekursion gehöhrt? ^^

    Ja, aber du offensichtlich nicht! Denn die bekommst du mit GOTO garnicht hin. GOTO taugt nur für Schleifenkonstruckte. Rekursion ist was anderes. Das ist wenn sich eine Funktion selbst aufruft, und hat nichts mit einem GOTO zu tun. Und bitte komme mir jetzt nicht damit die Rekursive-Funktion iterativ umzustellen. Das geht zwar, aber dann ist es Iteration und keine Rekursion mehr!

  4. Re: Go............. to!

    Autor: ich auch 12.11.09 - 01:57

    Funktionalist schrieb:
    --------------------------------------------------------------------------------
    > Was haben denn bitteschön Designpatterns mit Loops zu tun? Das würde mich
    > ja mal brennend interessieren.

    Nichts, aber würde er sie kennen bräuchte er vielleicht keine GOTOs für ne Robotersteuerung, sonder hätte ein Designkonzept und kein gefrickel!

  5. Re: Go............. to!

    Autor: ich auch 12.11.09 - 01:59

    Funktionalist schrieb:
    --------------------------------------------------------------------------------
    > Einfach die 2 Loops in 2 Funktionen kapseln würde das goto 1. überflüssig
    > und 2. den Code deutlich verständlicher machen.


    Scheint so als hätten wir da beide die gleiche Idee gehabt. Ich habs nicht abgeguckt, echt nicht :)

  6. Re: Go............. to!

    Autor: ich auch 12.11.09 - 02:03

    irata_ schrieb:
    --------------------------------------------------------------------------------
    > Tingelchen schrieb:
    > ---------------------------------------------------------------------------
    > -----
    > > Es hat seinen Grund warum man goto nicht verwenden sollte.
    >
    > Das sagen meistens Leute, die nie ernsthaft in Basic programmiert haben
    > bzw. Basic wahrscheinlich nicht mal kennen ;-)
    >
    > Ein Kollege hat mir zu meiner Verwunderung kürzlich gesagt, er findet GOTOs
    > (in C) trotzdem es verpöhnt ist gar nicht mal so schlecht - für spezielle
    > Anwendungsgebiete (z.B. Robotersteuerung).
    >
    > Etwas aus Prinzip zu verteufeln halte ich für engstirnig.


    Hier, der Dijkstra hats "verboten" und er hat recht, da machen Robotersteuerungen keine ausname. Aber vllt arbeitet dein Kollege noch mit Lego-Technk:

    http://portal.acm.org/citation.cfm?id=1241518&coll=ACM&dl=ACM&CFID=11218690&CFTOKEN=24551268

  7. Re: Go............. to!

    Autor: Funktionalist 12.11.09 - 02:05

    Sieht für mich danach aus, als ob jemand irgend etwas Matrix-ähnliches durchsuchen möchte und bei erfolg die teuren Loops schnellstmöglich abbrechen will. Ich bin mir fast sicher, dass das Problem schon weitaus früher im Code hätte gelöst werden können, der richtige Umgang mit Datenstukturen kann manchmal Wunder wirken ...

  8. Re: Go............. to!

    Autor: ich auch 12.11.09 - 02:11

    breaker schrieb:
    --------------------------------------------------------------------------------
    > break- und continue-anweisungen sind in den meisten sprachen eh nix anderes
    > als goto... und selbst goto hat seine daseinsberechtigung und sollte nicht
    > zum teufel gejagd werden.
    >
    > der code ist nur so dumm wie der programmierer der es geschrieben hat. ;)


    Dijkstra sagt das das können eines Programmierers umgekehrt proportional zur Zahl der verwendeten GOTOs ist:

    http://www.cs.utexas.edu/users/EWD/ewd02xx/EWD215.PDF


    ...recht hat er! NOOBs!

  9. Re: Go............. to!

    Autor: ich auch 12.11.09 - 05:10

    Funktionalist schrieb:
    --------------------------------------------------------------------------------
    > Sieht für mich danach aus, als ob jemand irgend etwas Matrix-ähnliches
    > durchsuchen möchte und bei erfolg die teuren Loops schnellstmöglich
    > abbrechen will. Ich bin mir fast sicher, dass das Problem schon weitaus
    > früher im Code hätte gelöst werden können, der richtige Umgang mit
    > Datenstukturen kann manchmal Wunder wirken ...


    Womit wir auch wieder bei den Designpattern angekommen wären ;)

  10. Re: Go............. to!

    Autor: GodsBoss 16.11.09 - 19:55

    > break- und continue-anweisungen sind in den meisten sprachen eh nix anderes
    > als goto...

    Das stimmt, sie sind genauso eine Krankheit und haben sich leider in vielen Programmiersprachen eingenistet. :-(

    > und selbst goto hat seine daseinsberechtigung und sollte nicht
    > zum teufel gejagd werden.

    Ich bin für Teufel.

    > der code ist nur so dumm wie der programmierer der es geschrieben hat. ;)

    Aber selten ist so schnell zu sehen, wie dumm der Programmierer ist, wenn er goto verwendet. ;-)

    Reden ist Silber, Schweigen ist Gold, meine Ausführungen sind Platin.

  11. Re: Go............. to!

    Autor: spanther 16.11.09 - 19:57

    Pauschal Programmierer zu beleidigen indem man sie als Dumm hinstellt, nur weil sie eine von DIR nicht geliebte Funktion zu verwenden ist arm! :)

  12. Re: Go............. to!

    Autor: GodsBoss 16.11.09 - 20:01

    > > Es hat seinen Grund warum man goto nicht verwenden sollte.
    >
    > Das sagen meistens Leute, die nie ernsthaft in Basic programmiert haben
    > bzw. Basic wahrscheinlich nicht mal kennen ;-)

    Du kennst es anscheinend auch nicht, sonst wüsstest du, dass es „BASIC“ heißt, nicht „Basic“.

    Reden ist Silber, Schweigen ist Gold, meine Ausführungen sind Platin.

  13. Re: Go............. to!

    Autor: GodsBoss 16.11.09 - 22:45

    Ich bewerte Features einer Programmiersprache ausschließlich nach Sinn und Nützlichkeit. „goto“ hätte den längst den Weg des Irdischen gehen können, es hat seinen Sinn gehabt in unstrukturierten imperativen Programmiersprachen, aber mit modernen Programmierkonzepten hat das nichts zu tun. Sogar der altertümliche Makro-Assembler C hat bessere Alternativen.

    Reden ist Silber, Schweigen ist Gold, meine Ausführungen sind Platin.

  14. Re: Go............. to!

    Autor: spanther 17.11.09 - 00:22

    GodsBoss schrieb:
    --------------------------------------------------------------------------------
    > Ich bewerte Features einer Programmiersprache ausschließlich nach Sinn und
    > Nützlichkeit. „goto“ hätte den längst den Weg des Irdischen gehen können,
    > es hat seinen Sinn gehabt in unstrukturierten imperativen
    > Programmiersprachen, aber mit modernen Programmierkonzepten hat das nichts
    > zu tun. Sogar der altertümliche Makro-Assembler C hat bessere Alternativen.

    Trotzdem ist es vermessen, andere als dumm hinzustellen nur weil sie eine Funktion aus einer Programmiersprache verwenden die nicht "deinem Geschmack" entspricht! Andere sehen das immer je nach Situation vielleicht ganz anders als du! :)

  15. Re: Go............. to!

    Autor: GodsBoss 17.11.09 - 08:16

    Ich hab's schon zuvor geschrieben. Es geht nicht um meinen „Geschmack“. Der ist hier irrelevant.

    Reden ist Silber, Schweigen ist Gold, meine Ausführungen sind Platin.

  16. Re: Go............. to!

    Autor: spanther 17.11.09 - 09:42

    GodsBoss schrieb:
    --------------------------------------------------------------------------------
    > Ich hab's schon zuvor geschrieben. Es geht nicht um meinen „Geschmack“. Der
    > ist hier irrelevant.

    Das sehen andere Programmierer aber gänzlich anders, welche dann auch ihr goto gerne verwenden! :P

  17. Re: Go............. to!

    Autor: GodsBoss 17.11.09 - 10:11

    > > Ich hab's schon zuvor geschrieben. Es geht nicht um meinen „Geschmack“.
    > Der
    > > ist hier irrelevant.
    >
    > Das sehen andere Programmierer aber gänzlich anders, welche dann auch ihr
    > goto gerne verwenden! :P

    Aber in welchen Sprachen?

    In objektorientierten wohl kaum. Im klassischen klassenbasierten Modell hat bei gutem Design eine Methode genau eine Aufgabe, ein „Hineinspringen“ ist also sinnfrei, wenn man nicht an den Anfang springt, was letztlich also nur einem normalen Aufruf entspricht. Kein goto nötig.

    In funktionalen Sprachen? Ebensowenig. Der Code besteht hier mehr oder weniger aus Ausdrücken, die ausgewertet werden, wie sollte man in einen solchen springen?

    Letztlich ist goto schon konzeptionell so angelegt, dass es nur in imperativen Sprachen einen Sinn hat, wo also Folgen von Befehlen vorhanden sind, in die man hineinspringen kann. Aber auch hier haben Kontrollkonstrukte wie Prozeduren, Schleifen, Bedingungen goto überflüssig gemacht, dieses könnte höchstens noch dazu dienen, statt lokal zu entscheiden, was getan werden soll, global herumzuspringen. Das ist aber nur nötig, wenn man nicht in der Lage ist, ein Problem in kleinere, lokal lösbare Teilprobleme zu zerlegen. Oder anders gesagt: Wenn man dumm ist. :-P

    Außerdem gibt es noch gänzlich andere Gefahren: [xkcd.com]

    Reden ist Silber, Schweigen ist Gold, meine Ausführungen sind Platin.

  1. Thema
  1. 1
  2. 2

Neues Thema Ansicht wechseln


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Zum Login

Stellenmarkt
  1. USP SUNDERMANN CONSULTING Unternehmens- und Personalberatung, Fürth
  2. ING-DiBa AG, Frankfurt am Main
  3. OEDIV KG, Bielefeld
  4. enowa AG, München, Stuttgart, Düsseldorf, Hannover

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Top-Angebote
  1. 0,99€ (danach 7,99€/Monat für Prime-Kunden bzw. 9,99€/Monat für Nicht-Prime-Kunden...
  2. (u. a. Stirb Langsam 1 - 5, Kingsman 2-Film-Collection, Fight Club, Terminator)
  3. 0,91€ - 18,16€ (u. a. Q.U.B.E, Asset-Pack Rusty Barrels Volume 2, Unreal Multiplayer Training...
  4. 59,99€ (Release am 15. November)


Haben wir etwas übersehen?

E-Mail an news@golem.de


ZFS erklärt: Ein Dateisystem, alle Funktionen
ZFS erklärt
Ein Dateisystem, alle Funktionen

Um für möglichst redundante und sichere Daten zu sorgen, ist längst keine teure Hardware mehr nötig. Ein Grund dafür ist das Dateisystem ZFS. Es bietet Snapshots, sichere Checksummen, eigene Raid-Level und andere sinnvolle Funktionen - kann aber zu Anfang überfordern.
Von Oliver Nickel

  1. Dateisystem OpenZFS soll einheitliches Repository bekommen
  2. Dateisystem ZFS on Linux unterstützt native Verschlüsselung

Red Dead Redemption 2 für PC angespielt: Schusswechsel mit Startschwierigkeiten
Red Dead Redemption 2 für PC angespielt
Schusswechsel mit Startschwierigkeiten

Die PC-Version von Red Dead Redemption 2 bietet schönere Grafik als die Konsolenfassung - aber nach der Installation dauert es ganz schön lange bis zum ersten Feuergefecht in den Weiten des Wilden Westens.

  1. Rockstar Games Red Dead Redemption 2 belegt 150 GByte auf PC-Festplatte
  2. Rockstar Games Red Dead Redemption 2 erscheint für Windows-PC und Stadia
  3. Rockstar Games Red Dead Online wird zum Rollenspiel

Frauen in der IT: Ist Logik von Natur aus Männersache?
Frauen in der IT
Ist Logik von Natur aus Männersache?

Wenn es um die Frage geht, warum es immer noch so wenig Frauen in der IT gibt, kommt früher oder später das Argument, dass Frauen nicht eben zur Logik veranlagt seien. Kann die niedrige Zahl von Frauen in dieser Branche tatsächlich mit der Biologie erklärt werden?
Von Valerie Lux

  1. IT-Jobs Gibt es den Fachkräftemangel wirklich?
  2. Arbeit im Amt Wichtig ist ein Talent zum Zeittotschlagen
  3. IT-Freelancer Paradiesische Zustände

  1. E-Auto-Produktion: Volkswagen baut seine Gigafactory in den USA
    E-Auto-Produktion
    Volkswagen baut seine Gigafactory in den USA

    Volkswagen will künftig auch in den USA Elektroautos bauen und hat eine Erweiterung seines Werkes in Chattanooga im US-Bundesstaat Tennessee bekanntgegeben. Die Ankündigung erfolgt fast zeitgleich zur Entscheidung Teslas, in der Nähe Berlins Elektroautos, Akkus und Antriebe zu bauen.

  2. Apple: Mac Pro und Pro Display XDR werden ab Dezember verkauft
    Apple
    Mac Pro und Pro Display XDR werden ab Dezember verkauft

    Apple hat einen Veröffentlichungszeitraum für den modularen Mac Pro und den Bildschirm Pro Display XDR bekanntgegeben. Die im Juni 2019 angekündigten Geräte lassen sich ab Dezember bestellen.

  3. Datenschmuggel: US-Gericht schränkt Durchsuchungen elektronischer Geräte ein
    Datenschmuggel
    US-Gericht schränkt Durchsuchungen elektronischer Geräte ein

    US-Grenzbeamte dürfen nicht mehr so einfach die Smartphones und Laptops von Einreisenden untersuchen. Es muss ein begründeter Verdacht auf Datenschmuggel vorliegen.


  1. 07:54

  2. 07:37

  3. 17:23

  4. 17:00

  5. 16:45

  6. 16:30

  7. 16:12

  8. 15:30