Ungarische Notation und Sichtbarkeits-Präfix-Verständnisproblem



  • Bashar schrieb:

    asc schrieb:

    Ändert nichts daran, das man erst einmal wissen muss, was n bedeutet, damit dies Sinn ergibt. Das schönste ist ein Code den jeder sinnvoll lesen kann, auch neue Entwickler.

    Nö, muss man gar nicht wissen. Ich könnte die Variable auch karlheinz nennen und man könnte sich erschließen, wozu sie da ist, aber ich bevorzuge sprechende Namen.

    Klar muss man es wissen. Der Unterschied ist bloss, wie man es erfährt. Wenn der Name der Variable ausreicht um draufzukommen, dann spart das Zeit & Nerven. Wenn man es aus dem Kontext ableiten muss, ist das wesentlich mehr Denk-Aufwand, und lenkt dadurch von der eigentlichen Aufgabe ab: zu verstehen was der Code tut btw. tun sollte.

    Und "nEvents" ist ein brauchbarer Kompromiss zwischen "Number_of_Events", was SeppJ anscheinend präferiert, und irgendwas, wo "number" nicht mehr drin vorkommt.

    Das ist Ansichtssache, ich finde z.B. nicht dass das ein brauchbarer Kompromiss ist, da ich beide Variante schlecht finde, und den Kompromiss genau so.

    Meine persönliche Meinung:

    Das Ding ist keine Sammlung von Events, endet aber im Wort "Events" -> schlecht, da es sich mit der natürlichen Sprache schlägt (sowohl Englisch als auch Deutsch).

    Bei zusammengesetzten Hauptwörtern kommt immer das was das Ding eigentlich ist am Schluss. Fluchtgeschwindigkeit, Chefsekretärin, Speisewagen etc. Im Englischen schreibt man diese Dinge getrennt, die Reihenfolge ist aber gleich (escape velocity etc.).

    Natürlich kann man die Reihenfolge umdrehen, nur führt das zu komplizierteren Konstrukten. Chefsekretärin geht ja noch - Sekretärin vom Chef. Aber versuch das mal mit Fluchtgeschwindigkeit oder Speisewagen. Hmja.

    Und ganz besonders schlimm finde ich es dann, wenn man anfängt das eigentlich wichtige, was nach dem umdrehen dann vorne steht, abzukürzen. "Meine Freundin arbeitet als sekChef." WTF???

    ----

    Zurück zu "nEvents" bzw. "Number of Events". Dass ich beides nicht gut finde, sollte jetzt klar sein 🙂

    Also wie soll es heissen? Was ist das Ding? Es ist eine Anzahl. Auf english wäre das "number (of)", das stimmt schon, bloss kann man "number (of)" leider nicht hinten anhängen. "event number" heisst nicht "Event-Anzahl", sondern "Event-Nummer", und das hat ne andere Bedeutung.

    Also bedient man sich des Wortes "count", das im Englischen nachgestellt werden kann. Also "event count". Das bedeutet dann wieder "Event-Anzahl", und alles ist gut.

    Jetzt sind wir wieder beim Thema "count heisst aber Zähler". Tjoa. Count heisst aber nicht Zähler, count heisst Zählstand, Zählimpuls etc. bzw. auch einfach "Zahl". Und das passt eigentlich ganz gut (Zählstand und Anzahl sind ja sehr eng verwandt).


  • Mod

    Bashar schrieb:

    Und?

    😕 Naja, number und count heißt was anderes und daher würde ich in einem Programm auch eine andere Bedeutung erwarten. Bei Count_of_events (in welcher Schreibweise auch immer) würde ich etwas Erwarten was bei jedem Event um 1 erhöht wird. Bei number_of_events würde ich irgendeine Gesamtzahl erwarten, also etwas das nicht mehr erhöht wird. Macht im Zusammenhang mit Events natürlich nicht so viel Sinn. Etwas wie Number_of_events_in_the_last_minute wäre eine Möglichkeit.



  • SeppJ schrieb:

    Bashar schrieb:

    Und?

    😕

    Auf der von dir verlinkten Seite stand als Übersetzung für count "Zahl". "Anzahl" nicht, und damit hab ich unrecht und du recht. Halte ich nur für Haarspalterei und völlig am Thema des Threads vorbei.



  • wenn count nicht Anzahl heißen kann, wie übersetzt man denn dann den gängigen Ausdruck "low part count" ??





  • Helium schrieb:

    Natürlich heißt "count" als Substantiv "Anzahl".

    Aber leo ... 😉



  • Bashar schrieb:

    Helium schrieb:

    Natürlich heißt "count" als Substantiv "Anzahl".

    Aber leo ... 😉

    Und 'counter' ist jetzt der Schalter am Airport, Bahnhof oder was? 😕 Mit vergleichender Sprachenanalyse kommen wir in der Programmierung nicht weiter. Wenn ich in einem Programm so einen 'counter' einfach hund oder weil integer iHund nenne, so ist es egal. Ich bin doch vollkommen frei, auch wenn ich gerade keine Hunde sondern vielleicht Kunden zähle!

    Verwendet euren Gehirnschmalz auf andere Dinge! 😃



  • Außerdem gibt's ja auch sowas wie Allgemeinwissen im Gebiet der Informatik. Und 99% der Softwareentwickler kennen "count" als "Anzahl" und nicht als Graf. Hat sich halt etabliert und das ist auch gut so.



  • Verwendet euren Gehirnschmalz auf andere Dinge! 😃

    Wollen wir doch. Wir werden nur von Leuten wie dir daran gehindert, die immer noch UN benutzen oder einen Zähler "hund" oder "iHund" nennen (ist UN bei Apple eigentlich beliebt?).



  • Nun "iHund" beantwortet doch die Frage, oder?



  • Wann kommt eigentlich der iHund in den Applestore?



  • HighLigerBiMBam schrieb:

    Wann kommt eigentlich der iHund in den Applestore?

    http://itunes.apple.com/at/app/idog/id375658563?mt=8 :p



  • Shade Of Mine schrieb:

    HighLigerBiMBam schrieb:

    Wann kommt eigentlich der iHund in den Applestore?

    http://itunes.apple.com/at/app/idog/id375658563?mt=8 :p

    Schöner Hinweis auf iDog für iHund zum Abschluss dieses Themas.
    IchNichtWissenMehr, wäre nach ungarischer Notation (bool) bIchNichtwissenMehr = 1; daddeldu! :p

    Gibt es noch andere Themen hier im Forum? Ich bin gerne bereit, etwas dazu zu sagen und ich vetrage jederzeit auch herbe Kritik von Fundamentalististen. 😞

    Eine solche Diskussion kann vielleicht hilfreich sein, hat aber doch wenig mit 'Rund um die Programmierung' zu tun.



  • Hi,

    für einfache Laufvariablen in Schleifen (for...) nehme ich aus alter FORTRAN-Gewohnheit immer noch i, j, k, l, m und n und erwarte eigentlhc von jedem der nur halbwegs über den Tellerand gucken kann, daß er begreift, das das nur eine Schleifenvariable ist.
    Wer damit nicht zurecht kommt, sollte mal über siene grundsätzliche Eignung für diese Tätigkeit nachdenken.
    Gerade durch die Kürze auf einen Buchstaben dokumentiert ja so eine Variable, das sie nichts von irgend einer Beduetung ist, sondern nur eine Laufvariable.

    Gruß Mümmel



  • muemmel schrieb:

    Hi,

    für einfache Laufvariablen in Schleifen (for...) nehme ich aus alter FORTRAN-Gewohnheit immer noch i, j, k, l, m und n und erwarte eigentlhc von jedem der nur halbwegs über den Tellerand gucken kann, daß er begreift, das das nur eine Schleifenvariable ist.
    Wer damit nicht zurecht kommt, sollte mal über siene grundsätzliche Eignung für diese Tätigkeit nachdenken.
    Gerade durch die Kürze auf einen Buchstaben dokumentiert ja so eine Variable, das sie nichts von irgend einer Beduetung ist, sondern nur eine Laufvariable.

    Gruß Mümmel

    Nehmen wir das mal als Beispiel.

    for( int i=0; i < 20; ++i)
    {
       for( int j=0; j < 20; ++j)
       {
          werte[j*20+i] = 123;
       }
    }
    

    So, wer sieht den logischen Fehler den der Programmierer gemacht hat?

    Jetzt das ganze mal mit "sinnvollen" Variablen:

    for( int row=0; row < 20; ++row)
    {
       for( int column=0; column < 20; ++column)
       {
          werte[column*20+row] = 123;
       }
    }
    

    Da könnte man schon eher drauf kommen das er row*20+column gemeint hat... Alte Gewohnheiten sind nicht zwangsläufig gute Gewohnheiten. Oft sind sie einfach nur alt...



  • Ich habe nicht den ganzen Thread gelesen (das Thema ist mir mittlerweile auch zu blöd), aber ich finde es immer wieder erstaunlich, wie gegen die UN damit argumentiert wird, dass sprechende Bezeichner doch viel besser wären. Als ob das ein Widerspruch wäre. Sprechende Bezeichner sprechen nicht leiser, wenn noch ein Präfix davorsteht, ganz im Gegenteil. Wer das Präfix zu interpretieren weiß, bekommt doch sogar noch mehr Informationen. Und "Search for declaration" im VS ist ja wohl das dümmste Argument der ersten 3 Seiten (mehr habe ich nicht gelesen). Wenn ich ohne UN den Typ einer Variablen wissen will, dann springe ich doch nicht jedesmal zur Deklaration (machst du das??). Dafür gibt es Tooltips.

    Ich nutze die UN übrigens kaum noch, auch wenn sich das für den ein oder anderen so anhören mag (Pointer kennzeichne ich z.B. gerne noch). Ich finde nur die Argumentation dagegen teilweise äußerst fragwürdig (wie gesagt, sprechende Bezeichner und UN sind absolut nicht widersprüchlich). Dass die UN mit all den C++-Konzepten aber leicht überfordert ist, sollte klar sein (sie kann höchstens noch teilweise vernünftig angewendet werden).



  • @loks Ersetze row/col durch y/x und du hast wieder die kurzen Variablen mit demselben Informationsgehalt.



  • So, hab's jetzt duchgelesen...
    Ich nutze die UN nur für dieses (prozedurale) Projekt. Normalerweise sind meine Projekte objektorientiert.
    Also, keine Antwort auf meine eigentliche Frage (welche sechs Seiten Flamewar ausgelöst hat)?



  • _matze schrieb:

    Sprechende Bezeichner sprechen nicht leiser, wenn noch ein Präfix davorsteht, ganz im Gegenteil.

    Ja, sie quatschen wie ein Wasserfall und erzaehlen dann auch noch manchmal bloedsinn. (Beispiel: lpsz - das ist kein long pointer und schon garnicht ein pointer auf einen string, denn das waere dann ja ein char** ;))

    Abgesehen davon dass UN in Sprachen indenen man eigene Typen definieren kann komplett ueberfordert ist.



  • loks schrieb:

    for( int i=0; i < 20; ++i)
    {
       for( int j=0; j < 20; ++j)
       {
          werte[j*20+i] = 123;
       }
    }
    

    Übrigens, for ist kein Funktionsaufruf und eingerückt wird mit 4 Leerzeichen und nicht mit 3, und Leerzeichen sollte man auch richtig setzen. Und die "int" sollte man auch nicht verwenden, und die Variablen sollten raus aus den Schleifen, damit man sieht, wieviele Variablen man in der Funktion hat oder wie Scheiße der Code ist:

    size_t i = 0u;
    size_t j = 0u;
    
    for (i = 0u; i < 20u; ++i)
    {
        for (j = 0u; j < 20u; ++j)
        {
            werte[(20u * j) + i] = 123;
        }
    }
    

    Heikles Thema 😉 :p


Anmelden zum Antworten