Win2000/NT Source Code geleakt?!



  • peterchen schrieb:

    Böses GOTO! Böses GOTO! Kusch! 😡

    Und die bösen breaks und continues! Noch schlimmer find ich ja fors und ifs und whiles, weil das gotos sind, aber nicht immer!

    🙄

    Was willst du uns damit sagen? Dass goto gut ist? Ich bitte um Erklärung...



  • void foo() {
      if (getRessource1() < 0) goto errorOnRes1;
      machEinPaarVorbereitungen();
      if (getRessource2() < 0) goto errorOnRes2;
      machNochEinPaarVorbereitungen();
      if (getRessource3() < 0) goto errorOnRes2;
    
      machHauptarbeit();
    
    freeRessource3();
      errorOnRes3:
    freeRessource2();
      errorOnRes2:
    freeRessource1();
      errorOnRes1:
    }
    

    Ja, man kanns das auch ohne goto loesen. Wenn man aber keine Exceptions hat, artet das in einer ziemlich tiefen Klammerung aus, und das eigentlich interessante ist ganz rechts an den Rand gequetscht.

    Wobei ich aber auch sagen muss, dass ich selber sowas noch nie selber geschrieben hab. In dem Code, den ich gesehen hab, machte das aber durchaus Sinn.



  • SG1 schrieb:

    freeRessource3();
      errorOnRes3:
    freeRessource2();
      errorOnRes2:
    freeRessource1();
      errorOnRes1:
    }
    

    Das ist kein C.



  • @SoM: Du klingst ja schon wie der Oberbush - entweder "gut" oder "böse". 😉

    Ein goto an sich ist weder noch. Falsch verwendete GOTO's sind schlecht - Genauso wie falsch verwendete if's, while's usw. Nur ist es halt leichter mit GOTO's Unsinn zu treiben, also kommen sie in den Arzneischrank, wo die Kinderchen nicht rankommen.



  • Ihr müsst bedenken, dass Windows seit vielen Jahren entwickelt wird und man damals
    eben noch andere Mentalitäten hatte und mitten in einem Projekt mal einfach den
    Programmierstil zu ändern ist bekanntlich keine gute Idee.
    Longhorn wird ja laut angaben komplett neu entwickelt.
    Wie siehts denn in den Linux Sources aus, sind da keine gotos?



  • Was lustiges für euch^

    Ich sagte nicht das goto schlecht ist sonst hätte man es nicht in die Sprache aufgenommen. Ich habe (außer am Anfang meiner Geschichte) auch keine mehr verwendet.

    http://forum.pcwelt.de/showthread.php?s=&postid=859524#post859524



  • @unix-tom
    Interesante Diskussion. Dieser Dokwood spielt sich aber ganz schön auf und kann wohl nur mit Beleidigungen antworten.

    Vielleicht sollte man ihm mal sagen, dass wahrscheinlich kein Weltklasse-Programmierer bei Microsoft anfangen will. Außerdem hat er wohl keinerlei Ahnung, dass Linux gut genug verbreitet ist, dass Buggs, wie bei Windows, schon längst aufgefallen wären. Außerdem vermute ich, dass Linuxbenutzer viel intensiver mit dem Betriebssystem arbeiten als Windowsbenutzer, d. h. da würden noch viel eher Fehler gefunden werden, wenn solch gravierende Fehler da wären.

    @thema
    Gotos kann man immer vermeiden. Auch bei der Fehlerbehandlung. Zur Not schreibt man sich hald eine Funktion, die dann einen Fehlercode zurückliefert, wenn es wirklich nicht anders gehen würde. Man braucht auch keine ewig verschachtelte ifs. Wenn man trotzdem mit gotos arbeiten will, ok. Man sollte dann aber ganz genau aufpassen was man damit macht!



  • An sich hab ich ja keine Ahnung davon wer nun der bessere Programmierer ist oder nicht... ich hab nur stets ein Problem damit wenn sich jemand selbstbeweihräuchert... es kann nicht "DIE" beste Programmier Community geben... es ist eine Frage der Philosophie die jeder für sich beantworten muß... und ich mag weder Windows noch Linux...

    @thema:
    Ich bin der Meinung wenn man einen Fehler mit Goto abfängt und er nicht existentiell für den Programmablauf nötig ist, dann brauch man schon gar nicht erst das Processing vor dem Goto. Dann kann man's auch anders lösen... meine Meinung.



  • Meine Meinung: Wenns einfach mit goto tut, wieso soll man es dann kompliziert anders machen? Nur weil alle sagen: gotos sind böse, goto == 666 usw ? 🙄
    Ist doch quatsch.



  • Ein einfaches return würde es aber auch tun.



  • Was hat eigentlich euer @thema mit dem thema zu tun? 🙄

    mfg
    v R



  • @SirLant

    Ihr müsst bedenken, dass Windows seit vielen Jahren entwickelt wird und man damals eben noch andere Mentalitäten hatte und mitten in einem Projekt mal einfach den Programmierstil zu ändern ist bekanntlich keine gute Idee.

    entwickelte sich die goto-ist-böse und strukturiertes-programmieren ist toll Fraktion nicht in den 70er Jahren?
    Windows war da noch lange nicht geplant und als die ersten Windows dann in den 90er Jahren entwickelt wurde, hatten sich die strukturierten Programmierweisen AFAIK schon verbreitet.

    Longhorn wird ja laut angaben komplett neu entwickelt.

    wurde das nicht jedes Windows bisher? Zumindest Windows2000 angeblich

    Wie siehts denn in den Linux Sources aus, sind da keine gotos?

    ich hab gerade gegreped und es gibt 25899 gotos in Linux 2.6.3

    @Unix-Tom

    Ich sagte nicht das goto schlecht ist sonst hätte man es nicht in die Sprache aufgenommen.

    lol, dass heisst nichts. Du hast wohl zu wenig IOCCC mitverfolgt 🙂



  • kingruedi schrieb:

    wurde das nicht jedes Windows bisher? Zumindest Windows2000 angeblich

    gg, daran mußte ich auch denke, als ich mir http://www.chip.de/artikel/c_artikel_8924313.html durchlas... außerdem soviele "technologische Neuheiten" 🙄



  • kingruedi schrieb:

    ich hab gerade gegreped und es gibt 25899 gotos in Linux 2.6.3

    omg, in 2.6.2 nur 25575, linux wird immer schlechter 😮 😮

    aber dafür hat windows ja noch nen internet-explorer im betriebssystem :p


Anmelden zum Antworten