[and or xor] vs. [&& || ?]



  • Wenn ich die frage schnell hier stellen darf:
    priority_queue sortier Ortnung:
    wenn int a=10;
    und int b=5;
    und der wert im priority_queue ist, ist a oder b oben/top?
    also wie sind die prioritaeten des priority_queue?
    (e>w) == ist true und oben. ist true gleich unten.

    muss das wissen, weil ich meine classe danach schreiben muss.

    THX Ghost

    PS: Ich habe nichts gegen windowsklicker, habe nur was gegen den Bill von Microsoft. Also nicht falsch verstehen.



  • Shade Of Mine schrieb:

    Es ist immer möglich gute Programme zu schreiben, aber VB macht es einem recht schwer.

    Da würde ich sagen, das ist eindeutig eine Frage der Gewöhnung. In C++ (und den diversen Tools bzw. Bibliotheken) muss man sich auch erst einarbeiten. Gleiches gilt natürlich für VB nur ist hier die Einarbeitungszeit wegen der geringeren Komplexität wesentlich kürzer, wenn man eine grundsätzliche Ahnung hat.

    Klar, wenn aller Code in einem Modul (bzw. einem Formular) rumhängt, dann ist das ganze sehr schnell unübersichtlich. Aber in großen Projekten macht man sowas auch nicht. In VB6 kann man genauso wie in C++ GUI vom Rest trennen.

    Nein. Nicht genauso. Weil dir zb die Komponenten der OOP fehlen.

    Das stimmt so nicht. OOP ist in VB durchaus möglich (alle meine Programme sind fast 100% OOP) und VB unterstützt OOP auch in großen Stücken. Mangelnde OOP-Unterstützung ist natürlich aber eine der Tatsachen, die mich zum Umstieg auf VB.NET gebracht haben.

    Das ist falsch. Ich /habe/ schon CGI-Anwendungen in VB entwickelt -- ohne MS' komische CGI-Bibliothek. Es herrscht anscheinend der weiterbreitete Irrglaube, dass man in VB keine Konsolenanwendungen schreiben könnte und dass diverse andere Dinge nicht gingen, die in Wahrheit problemlos machbar sind. Das einzige Problem ist hierbei, dass das alles "undokumentierte" Sachen sind, die in der VB-IDE nicht direkt unterstützt werden und nur in der MS-KB oder auf Fachseiten zu finden sind.

    Wozu wurde dann WinCGI entwickelt?

    Aber ok: die undokumentierten Features von VB kenne ich natürlich nicht. Aber wenn sie undokumentiert sind, würde ich mich sowieso hüten sie in einem wichtigen programm zu verwenden, weil man sonst vielleicht inkompatibel zur nächsten VB version ist (was bei VB sowieso ein Problem ist -> VB4, VB5, VB6 -> jedesmal musst man die anwendung anpassen. Das ist eigentlich auf dauer nicht tragbar).

    Also, gerade im Fall Kommandozeilenanwendung/CGI handelt es sich nicht um etwas, das mangelnde Inkompatibilität riskiert. Man bedient sich ja hier der WinAPI für den Konsolenzugriff, somit ist gesichert, dass das Programm läuft, solange MS die WinAPI nicht ändert. Und um das ganze als Konsolenanwendung zu linken, bedarf es eines Linkerparameters, der sogar dokumentiert /ist/, nur nicht in der VB-Doku. MS hat nämlich einfach für VB den VC-Linker verwendet ...

    Ich finde, dass große Disziplin für große Projekte generell nötig ist.

    Gut, aber nicht nötig.
    Bei GUI Libraries mit einem Slot/Listener Prinzip ist es einfacher den Code von dem GUI Code zu trennen. Wenn MVC und Doc/View schön unterstützt wird, ist es ziemlich simpel. In VB ist das alles nicht der Fall. Das erschwert die Arbeit.

    Ich behaupte, dass das eine reine Frage der Gewohnheit ist.

    Fehlende DLLs? Das ist ein durchschnittlich 60cm vom Bildschirm entferntes Problem, kein Problem von VB. Vom beigelegten Weitergabeassistent von VB sollte man freilich nicht allzu viel erwarten aber es gibt ja professionelle kostenlose Abhilfe, z.B. das Visual Studio Setup Tool von Microsoft.

    Ich hatte damit öfters Probleme.

    Ich auch. Aber dabei handelte es sich stets um Fehler meinerseits, die ich aus Unwissenheit gemacht hatte. Das "Problem" mit der Auslieferung der nötigen Komponenten hat man aber ja mit jeder Anwendung (in jeder Sprache), die auf externe Komponenten zugreift oder ein Framework verwendet. Das Problem ist nicht VB-eigen.

    Ich würde zB nie ein komplexes VB backend schreiben - als frontend finde ich VB mittlerweile veraltet, aber vor ein paar Jahren hätte ich durchaus VB als frontend für so ziemlich jedes C++ Programm in erwägung gezogen.

    Nur würde ich nie VB als backend in erwägung ziehen, mittlerweile würde ich es sogar _nie_ in erwägung ziehen, weil man dank Java und .NET bessere alternativen hat.

    Nun ja, Java ... aber das ist ein anderes Thema. Ich bin inzwischen ja auch größtenteils auf VB.NET umgestiegen und pflege nur noch zwei Projekte in VBC weiter.



  • volkard schrieb:

    den multithreaded ftp-uploader mit lokalem mirror, der nur geänderte dateien hochschickt und natürlich die abhängigkeiten der jobs berücksichtigt, also nicht foo/bar uploaden, bevor /foo erstellt wurde (gemeinerweise in nem anderen thread), habe ich gar nicht in vb versucht.

    warum?

    Weil Multithreading in VB6 ein #*%& (= pain in the ass) ist. 😉



  • in c++ sortiert man immer das kleinste element an den anfang.
    also wird eine priority_queue in c++ auch das kleinste element auswerfen.

    aber du kannst ja nen umgedrehten anderen vergleicher mitgeben, dann wird die ganze queue andersrum sein und du wirst das größte bekommen. also kein bedarf, dein programm danach auszurichten. wenn es gute gründe für die eine oder anderew richtung gibt, dann beachte sie. gibt es keine gründe oder nur so schwache, wie wir hier für üder wider and finden, dann nimm die version, die das kleinste element ausgibt, denn die ist normal und jeder fremde programmierer erwartet die.



  • Ach du Schreck,
    nur einen Tag lang mal hier nicht reingeschaut und dann das! Respekt für die ausführliche Thematisierung von C++ vs. VB, Windows gegen Unix, && gegen and, || gegen or etc. in einem Thread!

    1. ist das alles größtenteils Geschmacksfrage, so halte ich z.B. von Windows mehr als von Linux, von C++Builder mehr als von MSVC, von Firefox mehr als von Internet Explorer, von C++ mehr als von VB, doch das eigentlich nur, weil ich mit meinen Favoriten mehr Erfahrung habe und daher mit ihnen besser zurechtkomme.

    2. glaube ich, daß and/or etc. für Leute eingeführt wurden, die auf ihren Tastaturen nicht so problemlos wie wir an | und & herankommen (siehe Trigraph-Sequenzen), und nicht, weil sie ästhetischer sind.

    3. macht Microsoft zwar Fehler, muß deswegen aber nicht gleich verteufelt werden, denn auch Bill ist nur ein Mensch. Stur gegen MS zu stänkern finde ich naiv, denn wer von euch benutzt denn kein Windows? Nur weil es den Markt dominiert? Ich kenne genug Leute, die Windows häßlich, langsam, störend, unsicher und vieles mehr finden, ohne z.B. zu wissen, daß man das alles ändern kann. Ein Linux-Programmierer aus meinem Bekanntenkreis verteufelt Windows gegenüber anderen Menschen aufs Bitterste (ohne dabei Argumente zu nennen), dabei weiß ich mit Sicherheit, daß er auf seinem heimischen PC Windows installiert hat und benutzt. Kurz: Leute, es ist lächerlich. Ich schließe mich daher der letzen c't an und bin für die "Win-Win-Situation" ;)!

    Moritz



  • Nachdem Du Dich von Deinem Schreck erholt hast 😉

    audacia schrieb:

    2. glaube ich, daß and/or etc. für Leute eingeführt wurden, die auf ihren Tastaturen nicht so problemlos wie wir an | und & herankommen (siehe Trigraph-Sequenzen), und nicht, weil sie ästhetischer sind.

    Das gilt soweit ich weiß vornehmlich für C. Ich will nicht ausschließen, dass die Motivation bei C++ eine ähnliche war aber ich kann mir durchaus vorstellen, dass da noch andere Motivationen eine Rolle gespielt haben *könnten*.

    Zum Rest Deines Postings: 100% ACK.



  • Green_Ghost schrieb:

    Microsoft war noch nie gut bei Standarts.

    Irgendwie scheinst du genauso überholt zu sein, wie deine Aussage.
    Es heisst übrigens Standard, mit Standarten hat das nix zu tun.

    Green_Ghost schrieb:

    Unterschied zwischen VB und C++ ist <= 99 %
    das eine 1% die sie gleich haben, ist, das es auf Windows lauft.

    Ich hab das Gefühl, dass du die Thematik nicht wirklich verstanden hast. C++ zB "läuft" nirgendwo. Es ist einfach eine Sprachspezifikation, nicht mehr und nicht weniger.

    volkard schrieb:

    groovemaster schrieb:

    Nur hab ich in diesem Zusammenhang noch nie über die alternativen Formen von Operatoren nachgedacht...Und da ich jetzt sehe, dass es tatsächlich Leute gibt die sowas machen, kann ich immer noch keinen Gewinn diesbezüglich feststellen....würde ich mir übrigens keine Gedanken machen...

    ich erkenne ein muster.
    ich mach mir sogar gedanken, warum uhren für linkshänder (also solche, die am rechten handgelenk getragen werden und damit man beim aufziehen keinen knoten in den fingern kriegt, die krone links haben) nicht andersrum laufen.

    Irgendwie hast du das Zitat vollkommen aus dem Zusammenhang gerissen. Seh ich das richtig, dass du glaubst, dass ich mir über jenes oder dieses keine Gedanken mache? Das hab ich aber keineswegs gesagt.

    Green_Ghost schrieb:

    Jedes SP von Microsoft Updatet die DLLs und Sourcen.
    Darum muss man ja uch unter Winprogs schauen, welche SP man hat,
    und welche updates da noch draus sind.

    Aber nicht als Programmierer. Für die sind nur die benutzten Bibliotheken sowie das BS ansich (was wiederum den Funktionsumfang der Bibliotheken beeinflusst) von Bedeutung. Wenn überhaupt, bringen nur in seltenen Fällen SPs für den Programmierer einschneidende Änderungen mit sich.

    Green_Ghost schrieb:

    Aber Microsoft muss sich wircklich noch etwas ins zeugs legen.
    Wuerde ich etwas auf Windows progen, haette ich ein Herzanschlag,
    von den ewigen Loechern, Bugs und ausnahme fehlern.
    Welche gruende gibt es auf Windows zu arbeiten. Was kann es besser?
    Nichts nichts nichts nichts

    Oh mann, du muss ich Konrad mit dem Niveau leider Recht geben. Hoffe nicht, dass jemand auf sowas anspringt und einen FW Unix vs. Windows lostritt. Kommentieren brauch man's ja 'eh nicht.

    audacia schrieb:

    3. macht Microsoft zwar Fehler, muß deswegen aber nicht gleich verteufelt werden, denn auch Bill ist nur ein Mensch. Stur gegen MS zu stänkern finde ich naiv

    Ganz meine Meinung.

    audacia schrieb:

    Ein Linux-Programmierer aus meinem Bekanntenkreis verteufelt Windows gegenüber anderen Menschen aufs Bitterste (ohne dabei Argumente zu nennen)

    Ist leider keine Seltenheit. Wobei es durchaus vernünftige Argumente gibt, vernünftige Diskussionen eher weniger.



  • Der Thread hier ist ein Witz oder?

    wir reden über mathematische Operatoren

    also lieber
    foo Λ bar
    foo ν bar
    ?

    || und && sind willkürlich gewählte Zeichen, die nichts mit der Mathematik zu tun haben. and und or kennt man immerhin aus der egnlischen Sprache und so würde ich auch die mathematischen Operatoren aussprechen.

    Nun ja, so wie ich das verstehe, wird 'and' hier schon deswegen kategorisch abgelehnt, weil es in VB benutzt wird.

    Naja, 'for' und 'while' sind mir dann aber auch zu VBisch.

    volkard schrieb:

    while(fuu.size())

    was ist mit
    while (not fuu.empty())



  • Helium schrieb:

    Der Thread hier ist ein Witz oder?

    Kann schon sein. Für "Außenstehende" jedenfalls.

    Nun ja, so wie ich das verstehe, wird 'and' hier schon deswegen kategorisch abgelehnt, weil es in VB benutzt wird.

    Naja, 'for' und 'while' sind mir dann aber auch zu VBisch.

    Jetzt war es echt die längste Zeit witzig.

    volkard schrieb:

    while(fuu.size())

    was ist mit
    while (not fuu.empty())

    Wenn das Ironie war, mach ein Smiley daneben; ich kann das neben deinem obigen Kommentar nicht gut einschätzen. Ansonsten: es sieht häßlich aus!

    Moritz



  • Um vielleicht mal auf das Thema zurückzukommen:

    Programmierer schreibfaul. ! kürzer not. && konsistent !, && kürzer and. && cool.

    ...das ist so die grobe Denkweise, die zu &&, ||, &, |, ^ usw. geführt hat, und wenn man nicht gerade mit den wildesten Sonderzeichen anfängt, die man nur auf einem space cadet keyboard mit Ctrl-Meta-Hyper-Super-F5 erreichen kann, macht das für mein Verständnis auch Sinn. Ich fang ja auch nicht mit begin und end an.

    Dazu kommt, dass zumindest ich mich im Laufe der Zeit an && und || gewöhnt habe, so dass

    if(foo and bar or baz and qux) {
      quux();
    }
    

    für mich inzwischen einfach seltsamer als

    if(foo && bar || baz && qux) {
      quux();
    }
    

    aussieht - da fallen mir die Operatoren gleich ins Auge.

    Das ist zwar kein wirkliches Argument, dass && und || besser seien, zeigt aber, denke ich, dass diese Frage im Wesentlichen eine des Geschmacks ist. Und über Geschmack kann man (und tun scheinbar immer wieder viele Leute sehr gern) lange und ergebnislos streiten.



  • jetzt muss ich ma auch was dazu schreiben bevor der thread geschlossen wird.
    || und && find ich persönlich besser, ausserdem erspart man sich bei && ein zeichen, and = 3; && = 2 😃
    war auch einer der grüne wieso ich damals von turbo pascal auf c++ umgestiegen bin: viel kürzerer quellcode. begin = {, end = } usw...
    und ich frag mich echt was an "and" "or" "not" übersichtlicher sein soll. ich lese das || und && nicht als "Strich Strich" oder "Und Und" sondern als oder, und. das ist bei mir schon im sprachzentrum des gehirns verankert ich brauch überhaupt nicht darüber nachzudenken.

    also lieber
    foo Λ bar
    foo ν bar
    ?

    von mir aus 🙂 ich lese die zeichen auch als UND und ODER. s.o. nur leider kann man die nicht ohne probleme auf der heimischen tastatur tippen 🙄 .
    und einen weiteren vorteil haben sonderzeichen für sowas: man hat mehr bezeichner für variablen/funktionen usw. zur auswahl.
    also das sind etliche argumente für sonderzeichen bei atomaren operatoren.
    und für die nubis: man muss halt die syntax einer neuer sprache halt nachschlagen. :p

    Das ist zwar kein wirkliches Argument, dass && und || besser seien,

    wieso kein wirkliches argument. bisher ist das der erste ( du warst schneller ) objektiver argument. man braucht weniger zu tippen ➡ man ist effektiver 😉 deswegen wurde auch stenographie erfunden 👍



  • Oh, und dazu kommt natürlich noch eine technokratisch-elitäre Denkweise - wer schon mit && und || nicht klarkommt, wird halt nicht in den Zirkel der erleuchteten Wenigen aufgenommen. 😉



  • DEvent schrieb:

    wieso kein wirkliches argument. bisher ist das der erste ( du warst schneller ) objektiver argument. man braucht weniger zu tippen ➡ man ist effektiver 😉 deswegen wurde auch stenographie erfunden 👍

    Klar, beim programmieren ist das bottleneck ja die Tippgeschwindigkeit...



  • Shade Of Mine schrieb:

    Klar, beim programmieren ist das bottleneck ja die Tippgeschwindigkeit...

    wenn ich was ganz schnell entwickeln muß, tippe ich compressed brainfuck. aber hast schon recht, fast immer ist es eher unerheblich, wie lange man tippen muss.



  • Also noch schnell zu Windows vs. Unix/Linux
    Ich gehoere zu den Unix-Benutzern die Windows verabscheuen.

    die and or und xor frage ist geschmacks-sache, und wird von
    jedem anders gehandhabt.

    Ich finde einfach

    for(a!=b and b<a and b>0){
    ...
    }
    

    schoener als:

    for(a!=b && b<a && b>0){
    ...
    }
    

    Das es einfacher zu schreiben ist, ist ja ne Ausrede. Zauberwort
    Englishe-Tastatur!

    Wer gruende will wiso ich Microsoft fuer *** halte,
    kann mich ja an einem Anderen Ort danach fragen.

    Ich hoffe, ich habe das nievo nicht zu tief gemacht 😉

    MFG Ghost



  • Green_Ghost schrieb:

    Ich hoffe, ich habe das nievo nicht zu tief gemacht 😉

    Um das Niveau wieder ein wenig anzuheben schlage ich vor den Thread nun Richtung "Deutsche Sprache für Fortgeschrittene" zu lenken 🤡 👍



  • anmerkung an die forummacher:
    'and' und 'or' dem syntaxhighlighting hinzufügen^^
    von wegen standard und so 🙄

    wer 'and' schöner findet soll VB benutzen; alle andren &&
    *fg*



  • lol vertippt...
    ihr wisst, aber denk ich, was damit gemeint war... (&& = c++)



  • finix schrieb:

    Green_Ghost schrieb:

    Ich hoffe, ich habe das nievo nicht zu tief gemacht 😉

    Um das Niveau wieder ein wenig anzuheben schlage ich vor den Thread nun Richtung "Deutsche Sprache für Fortgeschrittene" zu lenken 🤡 👍

    Ups mein Schweizerdeutsch!

    Seit wann ist Niveau deutsch??



  • "Nievo" ist es jedenfalls nicht.


Anmelden zum Antworten