Linus Torvalds: Java A Horrible Language



  • Da bekommst du aber auch lustige Effekte. Beantworte zum Beispiel mal die Frage, wo der Lesezeiger steht, nachdem eine zu lange Eingabe kommt und was das für den weiteren Programmverlauf bedeutet.

    Hmm, das kann man doch meistens über den Returnwert abfangen.
    Imho ist das aber ein schwerer Fehler, auf den man nicht zwingend reagieren können muss.

    Als Alternative hat zb der GCC ne Extension um den String gleich komplett dynamisch anzulegen:

    char* out;
    scanf("%as", &out);
    puts(out);
    free(out);
    


  • Ethon schrieb:

    Da bekommst du aber auch lustige Effekte. Beantworte zum Beispiel mal die Frage, wo der Lesezeiger steht, nachdem eine zu lange Eingabe kommt und was das für den weiteren Programmverlauf bedeutet.

    Hmm, das kann man doch meistens über den Returnwert abfangen.
    Imho ist das aber ein schwerer Fehler, auf den man nicht zwingend reagieren können muss.

    Das mein Nachname zu lang ist, ist ein schwerer Fehler?
    Das ist leider ein echtes Problem mit scanf - denn es ist nicht trivial die zulange Eingabe korrekt zu verarbeiten.

    Ein anderes Problem ist, dass es schwer verifizierbar ist, ob die laenge korrekt ist. Bei fgets kann ich einfach sizeof(buffer) als laenge angeben.



  • SeppJ schrieb:

    Ich weiß nicht recht. Ist das so viel schlimmer, eine Zeile mit recht klar sprechenden Bezeichnern zusätzlich zu haben, anstatt einem Formatstring bei dem man die Bedeutung der einzelnen Felder auch erst einmal nachschlagen muss?

    Kein gutes Argument. Deine klar sprechenden Bezeichner muss man auch erst nachschlagen. Schliesslich braucht man da mehrere Funktionen um etwas einfach zu formatieren.

    Weiterhin erkenne ich an einem Formatstring, was am Ende rauskommt, besser als wenn ich da 5 lange Funktionennamen eintippe.

    Es ist eher subjektiv, aber ich finde bei printf muss man weniger oft nachschlagen als wenn man es mit C++ boardmitteln macht.



  • 314159265358979 schrieb:

    Ich erklär jetzt einfach nichts mehr. Offenbar hat Ethon ja verstanden, wie es gemeint war, was mich zu dem Schluss führt, dass ihr meine Aussagen absichtlich wortwörtlich so interpretiert, wie sie da stehen. (Sprich, mit Absicht nicht das lest, was zwischen den Zeilen steht.)

    Wenn du nicht willst, dass man deine Aussagen wörtlich nimmt, dann schreib sie auch nicht wörtlich. Du hast bestimmt andere Fähigkeiten, aber ein Wissenschaftler wird aus dir niemals werden. Nie!



  • Stell dir vor: Ich will auch keiner werden. Ich werde einmal Leiter einer Programmierabteilung oder so. Dann kann ich das tun, was ich am besten kann: Anderen sagen, wie scheiße ihr Code ist.



  • SeppJ schrieb:

    Ethon schrieb:

    Nochmal: Wo ist das Problem? Man gibt einfach maximale Stringlängen an, die dem Buffer entsprechen, und fertig.

    Da bekommst du aber auch lustige Effekte. Beantworte zum Beispiel mal die Frage, wo der Lesezeiger steht, nachdem eine zu lange Eingabe kommt und was das für den weiteren Programmverlauf bedeutet.

    Könntest du das näher erklären? Was meinst du weiter mit Lesezeiger? Meinst du in Ethons Beispiel die Variable buffer?



  • 314159265358979 schrieb:

    Anderen sagen, wie scheiße ihr Code ist.

    da musst aber noch ein bischen üben, ich kann dir ja ein bischen nachhilfe geben 😃


  • Mod

    Steffo schrieb:

    SeppJ schrieb:

    Ethon schrieb:

    Nochmal: Wo ist das Problem? Man gibt einfach maximale Stringlängen an, die dem Buffer entsprechen, und fertig.

    Da bekommst du aber auch lustige Effekte. Beantworte zum Beispiel mal die Frage, wo der Lesezeiger steht, nachdem eine zu lange Eingabe kommt und was das für den weiteren Programmverlauf bedeutet.

    Könntest du das näher erklären? Was meinst du weiter mit Lesezeiger? Meinst du in Ethons Beispiel die Variable buffer?

    int main ()
    {
      char vorname[9];
      char nachname[9];
      puts("Vorname?");
      scanf("%8s", vorname);
      puts("Nachname?");
      scanf("%8s", nachname);
      printf("Der Vorname ist %s, der Nachname ist %s.\n", vorname, nachname);
    }
    
    Vorname?
    [b]Karl-Theodor[/b]
    Nachname?
    Der Vorname ist Karl-The, der Nachname ist odor.
    


  • Oha, ja. Danke! 🙂



  • scanf sollte man nur in einem vertrauenswürdigen Umfeld ohne Eingabechecks nehmen.

    314159265358979 schrieb:

    Stell dir vor: Ich will auch keiner werden. Ich werde einmal Leiter einer Programmierabteilung oder so. Dann kann ich das tun, was ich am besten kann: Anderen sagen, wie scheiße ihr Code ist.

    Deine Kompetenz ist schonmal ausreichend gering um Abteilungsleiter zu werden.



  • 314159265358979 schrieb:

    Stell dir vor: Ich will auch keiner werden. Ich werde einmal Leiter einer Programmierabteilung oder so. Dann kann ich das tun, was ich am besten kann: Anderen sagen, wie scheiße ihr Code ist.

    Hat was 😉



  • Tim schrieb:

    Deine Kompetenz ist schonmal ausreichend gering um Abteilungsleiter zu werden.

    Als ob du das beurteilen könntest, rofl.



  • PI schrieb:

    Anderen sagen, wie scheiße ihr Code ist.

    Als ob du das beurteilen könntest, rofl.



  • Kann ich, jau.



  • Ich verstehe.



  • 314159265358979 schrieb:

    Kann ich, jau.

    Kannst du, wie du mehrfach bewiesen hast, nicht, da du kein Verständnis für's Wesentliche hast.



  • *haben willst



  • 314159265358979 schrieb:

    Tim schrieb:

    Deine Kompetenz ist schonmal ausreichend gering um Abteilungsleiter zu werden.

    Als ob du das beurteilen könntest, rofl.

    Na du hast ein printf implementiert das kein printf ist, du meintest trotzig es sei besser, was widerlegt wurde und dann hast du dich falsch verstanden gefühlt. Damit hast du a) fachliche Inkompetenz und b) soziale Inkompetenz bewiesen. Du würdest mit deiner Einstellung jedes auch nur im Ansatz brauchbare Assessment für Führungskräfte gnadenlos versemmeln und dir unter deinen Kollegen auf Sachbearbeiterebene innerhalb kürzester Zeit einen beschissenen Ruf "erarbeiten", genauso wie hier. Glückwunsch.

    Gut gemeinter Rat: Denk mal drüber nach.



  • Mir geht das alles ehrlich gesagt langsam auf die Nerven... Jeder zweite Thread driftet schnell ins sinnlose ab. Fünf Seiten absolut nebensächliche Diskussionen und gegenseitige Beleidigungen. Wer genau braucht das? Habt ihr nichts zu tun? Ich finde, das Forum funktioniert einfach nicht. Es funktioniert nur für Leute, die völlig unabhängig vom Thema einfach nur rumflamen wollen. Als fachliches Forum ist das ganze eigentlich völlig unbrauchbar.



  • 314159265358979 schrieb:

    *haben willst

    Du bist schon sehr tief in deine eigene Welt abgesunken wenn du meinst dass man das verstehen müsste.

    ~~lassen haben ding§


Anmelden zum Antworten