Der Code-Schnippsel-Thread

  • Ich bin zwar auch ein Freund von Unicode, aber UTF-8 ist nicht für alle Anwendungen das Gelbe vom Ei. Ich hoffe, dein Statement gilt nicht zwangsläufig auch für Embedded-Geschichten, denn mit 2-Byte-Kodierungen fährt man da oft besser.

    Welches jetzt?

    PGP-Key E384 009D 3B54 DCD3 21BF  9532 95EE 94A4 3258 3DB1 | S/MIME-Key 0x1A33706DAD44DA
    G d-@ s+:- a--- C+++ UB+L++ P--- L++@ E-@>++ W+ N o? K? w>++ !O !M !V PS+++ PE-- Y+>++ PGP++>+++ !t 5? X? !R tv b+++>++++ DI !D G>+ e>+++ h !r>++ !z
    „Die Aachener gelten als Erfinder des 4. Hauptsatzes der Thermodynamik: ‚Thermo schreibt man zweimal.“‘
    “Saying that Java is good because it works on all platforms is like saying oral sex is good because it works on all sexes.”
    „Es gibt 10 Sorten von Leuten: Die einen verstehen das Binärsystem, die anderen nicht.“
    „Manche Männer lieben Männer, Manche Frauen eben Frauen; Da gibt's nix zu bedauern und nichts zu staunen; Das ist genau so normal wie Kaugummi kauen; Doch die meisten werden sich das niemals trauen“

  • Meine Eindruck Hoffnung ist, dass sich UTF-8 vermehrt durchsetzen wird. UTF-16 verwendet man eigentlich nur noch, wenn man String-Representierungen mit existierenden Systemen/Programmiersprachen (z.B. Windows, Java, Javascript) teilen will.

    UTF-16 erlaubte mal eine Speicherstelle pro Code-Point, das ist aber längst nicht mehr der Fall. Schon seit den 90er Jahren gibt mehr Unicode-Zeichen als man mit 16bit Darstellen könnte. Und selbst wenn man auf UTF-32 umsteigen würde (was niemand tun wird, weil Bloat): Ein Unicode-Buchstabe kann immer noch aus mehr als einem Code-Point besitzen, man kann z.B. den Buchstaben ã auch aufsplitten in "~" und "a" - was zwei Codepoints sind, aber ein Zeichen - also keine Konstanter Zugriff auf einzelne Buchstaben (!= Code-Points). Gerade für nicht-europäische Schriften ist das offenbar wichtig.

    Darum gibt es inzwischen kaum mehr Argumente für UTF-16 (oder UTF-32). Es ist ein effizienteres Encoding für manche Schriften (z.B. Japanisch), dafür ist UTF-8 in lateinischen Schriften super effizient. Und halt abwärtskompatibel.

    Lesetipps:
    http://lucumr.pocoo.org/2014/1/9/ucs-vs-utf8/
    https://www.reddit.com/r/rust/comment…y_vecu8/cj0ihes

    Einmal editiert, zuletzt von gandro (29. September 2014 um 17:11)

  • Es ist halt hinten und vorne nicht abwärtskompatibel zu beklopptem alten Zeugs, eben mit so Späßen wie strlen("ä")=2.

    PGP-Key E384 009D 3B54 DCD3 21BF  9532 95EE 94A4 3258 3DB1 | S/MIME-Key 0x1A33706DAD44DA
    G d-@ s+:- a--- C+++ UB+L++ P--- L++@ E-@>++ W+ N o? K? w>++ !O !M !V PS+++ PE-- Y+>++ PGP++>+++ !t 5? X? !R tv b+++>++++ DI !D G>+ e>+++ h !r>++ !z
    „Die Aachener gelten als Erfinder des 4. Hauptsatzes der Thermodynamik: ‚Thermo schreibt man zweimal.“‘
    “Saying that Java is good because it works on all platforms is like saying oral sex is good because it works on all sexes.”
    „Es gibt 10 Sorten von Leuten: Die einen verstehen das Binärsystem, die anderen nicht.“
    „Manche Männer lieben Männer, Manche Frauen eben Frauen; Da gibt's nix zu bedauern und nichts zu staunen; Das ist genau so normal wie Kaugummi kauen; Doch die meisten werden sich das niemals trauen“


  • Es ist halt hinten und vorne nicht abwärtskompatibel zu beklopptem alten Zeugs, eben mit so Späßen wie strlen("ä")=2.


    Ich hätte schreiben sollen: Es ist abwärtskompatibel mit ASCII. "ä" ist kein ASCII.

    Nachtrag: Ausserdem ist dein Fall ein Fall von Aufwärtskompatibilität. Das ist nicht zu verwechseln mit Abwärtskompatibilität.
    Lies: Jedes UTF-8-System ist abwärtskompatibel mit ASCII. Du kannst ein 30 Jahre altes ASCII-Textfile in ein UTF-8-System schmeissen, und es läuft.
    Daraus folgt nicht, dass jedes ASCII-System aufwärtskompatibel mit UTF-8 ist und dass du in ein 30 Jahre altes C-Programm UTF-8-Text schmeissen kannst.

    Einmal editiert, zuletzt von gandro (29. September 2014 um 17:17)

  • Alle druckbaren ASCII-Zeichen ausgeben.

    PGP-Key E384 009D 3B54 DCD3 21BF  9532 95EE 94A4 3258 3DB1 | S/MIME-Key 0x1A33706DAD44DA
    G d-@ s+:- a--- C+++ UB+L++ P--- L++@ E-@>++ W+ N o? K? w>++ !O !M !V PS+++ PE-- Y+>++ PGP++>+++ !t 5? X? !R tv b+++>++++ DI !D G>+ e>+++ h !r>++ !z
    „Die Aachener gelten als Erfinder des 4. Hauptsatzes der Thermodynamik: ‚Thermo schreibt man zweimal.“‘
    “Saying that Java is good because it works on all platforms is like saying oral sex is good because it works on all sexes.”
    „Es gibt 10 Sorten von Leuten: Die einen verstehen das Binärsystem, die anderen nicht.“
    „Manche Männer lieben Männer, Manche Frauen eben Frauen; Da gibt's nix zu bedauern und nichts zu staunen; Das ist genau so normal wie Kaugummi kauen; Doch die meisten werden sich das niemals trauen“


  • Argh bitte die { in ne neue Zeile. Und Tabs statt den Leerzeichen!

    Was gandro sagt. Da waren übrigens auch mal Tabs, die sind irgendwo unterwegs verloren gegangen, neue Version ist (jetzt auch mit besserem Spacing nach den Regeln) auf Gist.

    PGP-Key E384 009D 3B54 DCD3 21BF  9532 95EE 94A4 3258 3DB1 | S/MIME-Key 0x1A33706DAD44DA
    G d-@ s+:- a--- C+++ UB+L++ P--- L++@ E-@>++ W+ N o? K? w>++ !O !M !V PS+++ PE-- Y+>++ PGP++>+++ !t 5? X? !R tv b+++>++++ DI !D G>+ e>+++ h !r>++ !z
    „Die Aachener gelten als Erfinder des 4. Hauptsatzes der Thermodynamik: ‚Thermo schreibt man zweimal.“‘
    “Saying that Java is good because it works on all platforms is like saying oral sex is good because it works on all sexes.”
    „Es gibt 10 Sorten von Leuten: Die einen verstehen das Binärsystem, die anderen nicht.“
    „Manche Männer lieben Männer, Manche Frauen eben Frauen; Da gibt's nix zu bedauern und nichts zu staunen; Das ist genau so normal wie Kaugummi kauen; Doch die meisten werden sich das niemals trauen“

  • Ich liebe den von mir gewählten Stil daher, dass ich direkt auf einen Blick sehen kann, welche Klammern zusammengehören. Das ist bei tieferen Verschachtelungen nahezu Pflicht. Was irgendwelche Kernelentwickler da als Lieblingsstil haben ist mir egal, solang ich an sonem schlecht lesbaren Code nicht arbeiten muss ist alls gut.

  • Das tu ich so doch auch, ich seh sogar direkt, zu welchem Aufruf die schließende Klammer gehört. Mal ganz abgesehen davon, dass mein Editor das sowieso faltet und schön anzeigt: https://i.imgur.com/PawSRR2.png

    PGP-Key E384 009D 3B54 DCD3 21BF  9532 95EE 94A4 3258 3DB1 | S/MIME-Key 0x1A33706DAD44DA
    G d-@ s+:- a--- C+++ UB+L++ P--- L++@ E-@>++ W+ N o? K? w>++ !O !M !V PS+++ PE-- Y+>++ PGP++>+++ !t 5? X? !R tv b+++>++++ DI !D G>+ e>+++ h !r>++ !z
    „Die Aachener gelten als Erfinder des 4. Hauptsatzes der Thermodynamik: ‚Thermo schreibt man zweimal.“‘
    “Saying that Java is good because it works on all platforms is like saying oral sex is good because it works on all sexes.”
    „Es gibt 10 Sorten von Leuten: Die einen verstehen das Binärsystem, die anderen nicht.“
    „Manche Männer lieben Männer, Manche Frauen eben Frauen; Da gibt's nix zu bedauern und nichts zu staunen; Das ist genau so normal wie Kaugummi kauen; Doch die meisten werden sich das niemals trauen“

  • Spaces sind schlimm. Wenn ich mit der linken Cursortaste nach links gehen will, kann ich das da nicht blockweise, sondern muss da immer rumhantieren Dann lieber Tabs. Zumal ich bei Tabs auch ne optimale Anpassung auf die jeweilige Bildschirmbreite meines Endgerätes bekomme.


  • Spaces sind schlimm. Wenn ich mit der linken Cursortaste nach links gehen will, kann ich das da nicht blockweise, sondern muss da immer rumhantieren Dann lieber Tabs. Zumal ich bei Tabs auch ne optimale Anpassung auf die jeweilige Bildschirmbreite meines Endgerätes bekomme.

    Oh ja. Arbeite mal mit jemandem dessen Editor alles in Spaces convertiert über Git zusammen. Da wird der friedlichste Mensch zum Amokläufer.

    „Zitate von sich selbst in der Signatur sind doof.“ Chrisse, 2009
    „Hmm... mal was aus 2010 reinnehmen“ Chrisse, 2010
    „Ach, wie die Zeit vergeht...“ Chrisse, 2011
    „Bin immernoch dagegen“ Chrisse, 2012
    „Jetzt auch mit 2013“ Chrisse, 2013
    „2021 ich komme“ Chrisse, 2014
    „Ab jetzt wieder länger“ Chrisse, 2015
    „Gut Ding will Weile haben“ Chrisse, 2016
    „Meine Signatur: Öfter geupdated als mein Windows“ Chrisse, 2017
    „Klicken sie weiter, hier gibt es nichts zu lesen“ Chrisse, 2018
    „Dieser Post kann Spuren von Sarkasmus enthalten“ Chrisse, 2019
    „Reinstate Chiaki“ Chrisse, 2020
    „2021 ist eine Coverstory der Moderation und nie passiert!“, Chrisse, 2022


  • Spaces sind schlimm. Wenn ich mit der linken Cursortaste nach links gehen will, kann ich das da nicht blockweise, sondern muss da immer rumhantieren Dann lieber Tabs. Zumal ich bei Tabs auch ne optimale Anpassung auf die jeweilige Bildschirmbreite meines Endgerätes bekomme.

    Bildschirmbreite sind 80 Spalten, ganz einfach. Ein Tab wird repräsentiert als 8 Spaces.
    Python sinds übrigens dann 4 Spaces, die auch so gespeichert werden. Was Haskell will, weiß ich grad nicht, ich glaub da wars „hauptsache Indent“ – siehe auch https://en.wikibooks.org/wiki/Haskell/Indentation

    PGP-Key E384 009D 3B54 DCD3 21BF  9532 95EE 94A4 3258 3DB1 | S/MIME-Key 0x1A33706DAD44DA
    G d-@ s+:- a--- C+++ UB+L++ P--- L++@ E-@>++ W+ N o? K? w>++ !O !M !V PS+++ PE-- Y+>++ PGP++>+++ !t 5? X? !R tv b+++>++++ DI !D G>+ e>+++ h !r>++ !z
    „Die Aachener gelten als Erfinder des 4. Hauptsatzes der Thermodynamik: ‚Thermo schreibt man zweimal.“‘
    “Saying that Java is good because it works on all platforms is like saying oral sex is good because it works on all sexes.”
    „Es gibt 10 Sorten von Leuten: Die einen verstehen das Binärsystem, die anderen nicht.“
    „Manche Männer lieben Männer, Manche Frauen eben Frauen; Da gibt's nix zu bedauern und nichts zu staunen; Das ist genau so normal wie Kaugummi kauen; Doch die meisten werden sich das niemals trauen“

  • Bildschirmbreite sind 80 Spalten, ganz einfach.

    Lol in welcher antiquierten Welt lebst du? Mach mal dein Terminal zu und benutz nen modernen Editor.

    Ein Tab wird repräsentiert als 8 Spaces.

    Ein Tab kann so repräsentiert werden, wie ich das möchte in Sublime Text. Stell dir vor, das kann ich dann einstellen, wie er mir das anzeigt. Das geht freilich nicht, wenn der Autor des Quelltextes mal wieder zu dämlich war, die Tab-Taste zu drücken und lieber die Leertaste dazu missbraucht. Sind das auch die Leute, die in Word mit der Leertaste "zentrieren"?


    Python sinds übrigens dann 4 Spaces, die auch so gespeichert werden. Was Haskell will, weiß ich grad nicht, ich glaub da wars „hauptsache Indent“ – siehe auch https://en.wikibooks.org/wiki/Haskell/Indentation

    Python kann afaik auch richtige Tabs.

  • Lol in welcher antiquierten Welt lebst du? Mach mal dein Terminal zu und benutz nen modernen Editor.


    Nö. Ein Terminal ist 80 Spalten breit, und das ist so standardisiert. Meins ist breiter (weil ich alles immer maximiert hab, und bei IRC wirds ganz nützlich), aber Code hat da aufzuhören. Alles breitere find ich auch schrecklich zum Lesen.
    Und vim ist der beste Editor. Da musst du mit deinem „Aber die UNIX-Philosophie!!1!“ grad was sagen.
    Noch mehr rockt freilich ed :>

    Ein Tab kann so repräsentiert werden, wie ich das möchte in Sublime Text. Stell dir vor, das kann ich dann einstellen, wie er mir das anzeigt. Das geht freilich nicht, wenn der Autor des Quelltextes mal wieder zu dämlich war, die Tab-Taste zu drücken und lieber die Leertaste dazu missbraucht. Sind das auch die Leute, die in Word mit der Leertaste "zentrieren"?


    Niemand gibt ernsthaft Spaces selber ein (außer vielleicht, man indentet mit einem einzigen Space). Das macht der Editor automatisch und bei Python fallen bei einem Tab dann 4 Spaces raus.

    Python kann afaik auch richtige Tabs.


    Ja, kann, sollte aber nicht: http://legacy.python.org/dev/peps/pep-0008/#code-lay-out

    PGP-Key E384 009D 3B54 DCD3 21BF  9532 95EE 94A4 3258 3DB1 | S/MIME-Key 0x1A33706DAD44DA
    G d-@ s+:- a--- C+++ UB+L++ P--- L++@ E-@>++ W+ N o? K? w>++ !O !M !V PS+++ PE-- Y+>++ PGP++>+++ !t 5? X? !R tv b+++>++++ DI !D G>+ e>+++ h !r>++ !z
    „Die Aachener gelten als Erfinder des 4. Hauptsatzes der Thermodynamik: ‚Thermo schreibt man zweimal.“‘
    “Saying that Java is good because it works on all platforms is like saying oral sex is good because it works on all sexes.”
    „Es gibt 10 Sorten von Leuten: Die einen verstehen das Binärsystem, die anderen nicht.“
    „Manche Männer lieben Männer, Manche Frauen eben Frauen; Da gibt's nix zu bedauern und nichts zu staunen; Das ist genau so normal wie Kaugummi kauen; Doch die meisten werden sich das niemals trauen“

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!