Java lernen sinnlos?



  • Bashar schrieb:

    pointercrash() schrieb:

    Und wenn Volkard nochmal behauptet, daß es keine sinnvollen Desktop- Applikationen gibt, die in Java geschrieben wurden, lacht ihn einfach nur aus!

    Au ja, das ist ja anscheinend einfacher als ein Gegenbeispiel

    ein paar gegenbeispiele: http://java.sun.com/products/jfc/tsc/sightings/
    🙂



  • pointercrash() schrieb:

    Welche Sprache bietet also OOP, allgemeine Programmierdenke, übersichtliches Konzept und frühe Erfolgserlebnisse an? Also alles das, was pädagogisch erwünscht ist?

    smalltalk. aber das ist nicht das, was du hören willst 😃



  • Bashar schrieb:

    Au ja, das ist ja anscheinend einfacher als ein Gegenbeispiel 🤡

    Du tust ja grad so, als obs wirklich nichts gäbe - ich hab' gerade offen meinen Lieblings- Mapfile- Analyzer (gehört zu einem Paket, kann man aber für andere auch nutzen) und Superversion, der StackViewer ist auch 100% Java. Für's Refactoring von C ist Creen einen Blick wert usw. usf.
    Ich muß nicht 1000 Beispiele zitieren, um gegenteilige Behauptungen lächerlich zu machen. Volkard und Du tust ja gerade so, als ob ihr den Filter "Programming Language" bei sourceforge nicht fändet. Das ist voll albern. 😃

    u_ser-l schrieb:

    pointercrash() schrieb:

    Welche Sprache bietet also OOP, allgemeine Programmierdenke, übersichtliches Konzept und frühe Erfolgserlebnisse an? Also alles das, was pädagogisch erwünscht ist?

    smalltalk. aber das ist nicht das, was du hören willst 😃

    Ich bin nicht überrascht, sowas zu hören, bin mir nur nicht sicher, ob smalltalk wirklich alle ^^^^ o.a. Kriterien erfüllt. Wenn man vielleicht noch hinzufügt, daß man sich mit der Einsteigersprache die Basis für möglichst viele gängige Sprachen aneignen sollte, wird das vielleicht deutlicher.
    Für'n Einsteiger wär' ja auch FORTH klasse, aber für andere Sprachen kannst Du fast nichts mitnehmen, deswegen würde ich's nie einem Anfänger empfehlen. Ich vermute fast, das könnte mit smalltalk ähnlich sein und wie's mit dem raschen Erfolgserlebnis aussieht ... 😕 Ich kenn's halt nur aus einem Artikel, den ich mal angerissen und nicht fertiggelesen hab' ...



  • pointercrash() schrieb:

    Du tust ja grad so, als obs wirklich nichts gäbe

    Nö, ich frag mich nur, warum du die Beispiele nicht gleich bringst, sondern erstmal volkard öffentlich auslachen lassen willst. Damit bestätigst du doch nur sein Argument, dass Javas Popularität primär wenig sachliche Gründe hat.



  • Bashar schrieb:

    Nö, ich frag mich nur, warum du die Beispiele nicht gleich bringst, sondern erstmal volkard öffentlich auslachen lassen willst. Damit bestätigst du doch nur sein Argument, dass Javas Popularität primär wenig sachliche Gründe hat.

    Wer nichtmal "written in Java" bei google eingeben mag, ist nicht auf sachliche Argumente aus. Sourceforge und freshmeat darf ich auch als bekannt voraussetzen und wenn jemand quasi mit dem Fuß aufstampft und krakeelt "zeig's mir, sonst glaub' ich's nicht! 😡 ", gebärdet sich absolut kindisch.
    Derzeit 41011 Projekte auf Sourceforge werden nicht allesamt grundlos in Java abgefaßt sein, man muß halt ein paar readmes anlesen wollen.

    All das wäre eine Fünfminutengeschichte gewesen, aber da hat es sich Volkard zu einfach gemacht und sich auf's pauschale Abschaßeln verlegt, genau das, was er anderen vorwirft. Und das ist, glaube ich, der schnellste Weg in die Lächerlichkeit.



  • Bashar schrieb:

    pointercrash() schrieb:

    Du tust ja grad so, als obs wirklich nichts gäbe

    Nö, ich frag mich nur, warum du die Beispiele nicht gleich bringst, sondern erstmal volkard öffentlich auslachen lassen willst.

    Volkard ist doch genauso provokant mit seinen Sticheleien gegen Java. Ich glaube nicht, dass es nötig ist, ihn mit Samthandschuhen anzufassen. 🤡



  • pointercrash() schrieb:

    Wer nichtmal "written in Java" bei google eingeben mag, ist nicht auf sachliche Argumente aus. Sourceforge und freshmeat darf ich auch als bekannt voraussetzen

    Glaubst du ernsthaft, dass volkard das nicht weiß? Volkard sprach von "guter" Software. Dass es irgendwelches "Geraffel"((C)fricky) in Massen gibt haben wir schon vor 5 Seiten festgestellt, und es wäre auch sehr verwunderlich, wenn das nicht so wäre.



  • Bashar schrieb:

    ... Volkard sprach von "guter" Software. Dass es irgendwelches "Geraffel"((C)fricky) in Massen gibt haben wir schon vor 5 Seiten festgestellt, und es wäre auch sehr verwunderlich, wenn das nicht so wäre.

    Was soll die Faselei? Superversion z.B. ist echt klasse, ein Bekannter schwört auf Freemind.
    Du findest mindestens ebensoviel Schutt, der in C++ oder VB produziert wurde, das ist weder ein Argument für C++ noch gegen Java. Die pauschale Behauptung, in Java würde ausschließlich Mist produziert, ist jedenfalls völlig unzutreffend und jemand, der so etwas behauptet, fehlinformiert mit Absicht oder will sich selbst nicht informieren.

    Zumindest für kleine Projekte scheint für viele Java die erste Wahl zu sein - warum wohl? Weil nicht jeder die Zeit hat, sich in eine Monsterkiste wie VCPP einzuarbeiten, um ein Applet zu schreiben. Das muß halbwegs zügig gehen und neben VB und Delphi fällt mir nicht so viel ein, das sind aber eher proprietäre Wahlen, Java wäre die probatere.
    Nicht jeder, der programmieren lernen will, hat als erstes ein 12'000- Zeilen- Projekt im Kopf, aber die gibt's auch in Java und dabei gar nicht mal so schlechtes Zeug.

    Die Frage war, ob es Sinn macht, Java zu lernen. Aus pädagogischen Gründen durchaus, aus ökonomischen ebenfalls.
    Was waren nochmal die Gründe, die dagegen sprächen?



  • Bashar schrieb:

    Volkard sprach von "guter" Software.

    und was unterscheidet gute software von 'nicht guter' software? dazu hat wohl jeder seine einzigartige sichtweise. für den einen muss 'ne desktop-anwendung schön bunt sein (viele bitmaps, coole fonts, wechselbare skins, usw.), der andere steht eher auf eine fülle von funktionen (die er sowieso nie benutzt, hauptsache sie sind erstmal da). ich z.b. mag besonders desktop-anwendungen, die stabil sind und alles richtig machen (dafür können sie grafisch ruhig schäbig aussehen). aber egal, 'gute' wie auch 'nicht gute' software kann man doch in jeder sprache schreiben. als kriterium pro oder contra Java ist der unpräzise begriff 'gute software' nicht wirklich brauchbar.
    🙂



  • pointercrash() schrieb:

    Für'n Einsteiger wär' ja auch FORTH klasse, aber für andere Sprachen kannst Du fast nichts mitnehmen, deswegen würde ich's nie einem Anfänger empfehlen. Ich vermute fast, das könnte mit smalltalk ähnlich sein

    Mit smalltalk als Lehrsprache würde den Schülern lupenreine OOP vermittelt werden. Objektorientiertes Denken ohne Ablenkung durch komplizierte Syntax. Ist das nicht genug didaktischer Nährwert ?



  • Aber es wäre auch denkbar, daß Java ein großer Haufen Bockmist ist, in dem kein normaler Mensch ein ordentliches Programm bauen kann. Trotzdem würde es einen ganzen Haufen Software in Java geben, nämlich weil Java als Anfängersprache verwendet wird und jeder Anfänger logischerweise seine ersten paar Projekte in Java baut, bevor er bemerkt, daß er umsetiegen muß. Außerdem wissen wir, daß Dogmen in der Programmierung nichts zu suchen haben und zu schlechten Programmen führen. Die Vollprofis sind flexibel in ihrer Werkzeugwahl, in ihren Vorgehensweisen und Modellen. Tun wir mal so, als würden viele Umsteiger auf dem Weg zum Profi nach C++ umsteigen. Dort würden sich die Leute sammeln, die eher flexibel sind. Aber gerade Flexibilität ist das, was einem im Programmieren unerfahrener Professor als Chaos vorkommt. Er sieht, daß unter den Profis ja lauter Chaos herrscht und stellt fest, daß C++ zu Chaos führt. Also lehrt er möglichst unchaotische Sprachen, automagisch sogenannte Anfängersprachen und verschärft die Trennung der Welten. Nur mal so hypotetisch angenommen als möglicher Erklärungsversuch. Ins Modell würde auch ein wenig gute Software passen von echten Ausnahmetalenten (im Anhang zeige ich meinen Wochentagsberechner in Brainfuck). Es würde erklären, weshalb Hochschulen, vor allem Unis auf Java als Anfängersprache schwören. Es würde vielleicht vieles bis alles erklären... Müßte man mal eingehender untersuchen.

    Anhang:

    PUSH64                 >++++[->++++<]>[-<++++>]<
    E                      +++++.
    PUSH32                 >++[->++++<]>[-<++++>]<
    ADD                    [-<+>]<
    i                      ++++.
    n                      +++++.
    g                      -------.
    a                      ------.
    b                      +.
    e                      +++.
    PUSH32                 >++[->++++<]>[-<++++>]<
    space                  .[-]<
    i                      ++++.
    m                      ++++.
    PUSH32                 >++[->++++<]>[-<++++>]<
    space                  .[-]<
    PUSH32                 >++[->++++<]>[-<++++>]<
    SUB                    [-<->]<
    F                      -------.
    PUSH32                 >++[->++++<]>[-<++++>]<
    ADD                    [-<+>]<
    o                      +++++++++.
    r                      +++.
    m                      -----.
    a                      ------------.
    t                      +++++++++++++++++++.
    PUSH32                 >++[->++++<]>[-<++++>]<
    space                  .[-]<
    POP                    [-]<
    PUSH48                 >+++[->++++<]>[-<++++>]<
    0                      .
    5                      +++++.
    0                      -----.
    8                      ++++++++.
    1                      -------.
    9                      ++++++++.
    7                      --.
    6                      -.
    :                      ++++.
    PUSH32                 >++[->++++<]>[-<++++>]<
    space                  .[-]<
    
    PUSH0 ungueltig          >
    PUSH0 tage               >
    
    READDOUBLEDIGIT        >,>+++[->++++<]>[-<++++>]<[-<->]<[->++<]>[-<+++++>],>+++[->++++<]>[-<++++>]<[-<->]<[-<+>]<
    READDOUBLEDIGIT        >,>+++[->++++<]>[-<++++>]<[-<->]<[->++<]>[-<+++++>],>+++[->++++<]>[-<++++>]<[-<->]<[-<+>]<
    READDOUBLEDIGIT        >,>+++[->++++<]>[-<++++>]<[-<->]<[->++<]>[-<+++++>],>+++[->++++<]>[-<++++>]<[-<->]<[-<+>]<
    READDOUBLEDIGIT        >,>+++[->++++<]>[-<++++>]<[-<->]<[->++<]>[-<+++++>],>+++[->++++<]>[-<++++>]<[-<->]<[-<+>]<
    
    ////////////////////////////////////////////////////////////////////////////////
    //eigabe testen
    
    //schaltjahr=0
    PUSH0 schaltjahr       >
    //layout: ungueltig=0 tage tag monat jhd jahr schaltjahr
    
    //if not jahr%0 schaltjahr=1
    DUP1 jahr2             <[->>+>+<<<]>>>[-<<<+>>>]<
    PUSH4                  >++++
    MOD                    [->>+>+<<<]>>>[-<<<+>>>]<-<<<[>>>[->+>+<<]>>[-<<+>>]+<[[-]>-<]>[-<+>]<[[-]<<+<[->>+>+<<<]>>>[-<<<+>>>]]<-<<<-]>>>[-<<->>]<[-]<-[-<+>]<
    NOT                    >+<[[-]>-<]>[-<+>]<
    ADD                    [-<+>]<
    
    //if not jahr schaltjahr=0
    DUP1 jahr2             <[->>+>+<<<]>>>[-<<<+>>>]<
    NOT                    >+<[[-]>-<]>[-<+>]<
    SUB                    [-<->]<
    
    //calc jhd%4!=0
    DUP2 jhd               <<[->>>+>+<<<<]>>>>[-<<<<+>>>>]<
    PUSH4                  >++++
    MOD                    [->>+>+<<<]>>>[-<<<+>>>]<-<<<[>>>[->+>+<<]>>[-<<+>>]+<[[-]>-<]>[-<+>]<[[-]<<+<[->>+>+<<<]>>>[-<<<+>>>]]<-<<<-]>>>[-<<->>]<[-]<-[-<+>]<
    
    //calc jahr!=0
    DUP2 jahr              <<[->>>+>+<<<<]>>>>[-<<<<+>>>>]<
    
    //calc jahr!=0 or jhd%4!=0
    ADD                    [-<+>]<
    
    //calc jahr==0 and jhd%4==0
    NOT                    >+<[[-]>-<]>[-<+>]<
    
    //if jahr==0 and jhd%4==0 then schaltjahr=1
    ADD                    [-<+>]<
    
    //if jahr==0 and jhd==0 then ungueltig=1
    DUP2 jhd               <<[->>>+>+<<<<]>>>>[-<<<<+>>>>]<
    DUP2 jahr              <<[->>>+>+<<<<]>>>>[-<<<<+>>>>]<
    ADD                    [-<+>]<
    NOT                    >+<[[-]>-<]>[-<+>]<
    add to ungueltig       [-<<<<<<<+>>>>>>>]<
    
    PUSH0 monatstage       >
    //layout: ungueltig=0 tage tag monat jhd jahr schaltjahr monatstage
    DUP4 monat2            <<<<[->>>>>+>+<<<<<<]>>>>>>[-<<<<<<+>>>>>>]<
    
    //januar
    DUP0                   [->+>+<<]>>[-<<+>>]<
    IF                     [[-]
     DEC monat2             <->
     monatstage=31          ++++[-<<++++++++>>]<<->>
    ENDIF                  ]
    POP0                   <
    
    //februar
    DUP0                   [->+>+<<]>>[-<<+>>]<
    IF                     [[-]
     DEC monat2             <->
     SUB monatstage 3       <<--->>
     DUP3 schaltjahr        <<<[->>>>+>+<<<<<]>>>>>[-<<<<<+>>>>>]<
     add schaltjahr to mt   [-<<<+>>>]
     POP0                   <
    ENDIF                  ]
    POP0                   <
    
    //maerz
    DUP0                   [->+>+<<]>>[-<<+>>]<
    IF                     [[-]
     DEC monat2             <->
     ADD monatstage 3       <<+++>>
     DUP3 schaltjahr        <<<[->>>>+>+<<<<<]>>>>>[-<<<<<+>>>>>]<
     sub schaltjahr from mt [-<<<->>>]
     POP0                   <
    ENDIF                  ]
    POP0                   <
    
    //april
    DUP0                   [->+>+<<]>>[-<<+>>]<
    IF                     [[-]
     DEC monat2             <->
     sub monatstage 1       <<->>
    ENDIF                  ]
    POP0                   <
    
    //mai
    DUP0                   [->+>+<<]>>[-<<+>>]<
    IF                     [[-]
     DEC monat2             <->
     add monatstage 1       <<+>>
    ENDIF                  ]
    POP0                   <
    
    //juni
    DUP0                   [->+>+<<]>>[-<<+>>]<
    IF                     [[-]
     DEC monat2             <->
     sub monatstage 1       <<->>
    ENDIF                  ]
    POP0                   <
    
    //juli
    DUP0                   [->+>+<<]>>[-<<+>>]<
    IF                     [[-]
     DEC monat2             <->
     add monatstage 1       <<+>>
    ENDIF                  ]
    POP0                   <
    
    //august
    DUP0                   [->+>+<<]>>[-<<+>>]<
    IF                     [[-]
     DEC monat2             <->
     add monatstage 0
    ENDIF                  ]
    POP0                   <
    
    //september
    DUP0                   [->+>+<<]>>[-<<+>>]<
    IF                     [[-]
     DEC monat2             <->
     sub monatstage 1       <<->>
    ENDIF                  ]
    POP0                   <
    
    //oktober
    DUP0                   [->+>+<<]>>[-<<+>>]<
    IF                     [[-]
     DEC monat2             <->
     add monatstage 1       <<+>>
    ENDIF                  ]
    POP0                   <
    
    //november
    DUP0                   [->+>+<<]>>[-<<+>>]<
    IF                     [[-]
     DEC monat2             <->
     sub monatstage 1       <<->>
    ENDIF                  ]
    POP0                   <
    
    //dezember
    DUP0                   [->+>+<<]>>[-<<+>>]<
    IF                     [[-]
     DEC monat2             <->
     add monatstage 1       <<+>>
    ENDIF                  ]
    POP0                   <
    
    //zu gross
    DUP0                   [->+>+<<]>>[-<<+>>]<
    IF                     [[-]
     DEC monat2             <->
     monatstage=0           <<[-]>>
    ENDIF                  ]
    POP0                   <
    
    POP monat2             [-]<
    
    //if monatstage==0 then ungueltig=1
    DUP0 monatstage        [->+>+<<]>>[-<<+>>]<
    NOT                    >+<[[-]>-<]>[-<+>]<
    IF                     [[-]
     ungueltig=1            <<<<<<<<+>>>>>>>>
    ENDIF                  ]
    POP0                   <
    
    //layout: ungueltig tage tag monat jhd jahr schaltjahr monatstage
    
    //if tag groesser monatstage then ungueltig=1
    DUP5 tag2              <<<<<[->>>>>>+>+<<<<<<<]>>>>>>>[-<<<<<<<+>>>>>>>]<
    WHILE tag2             [
     DUP1 monatstage2       <[->>+>+<<<]>>>[-<<<+>>>]<
     NOT monatstage2        >+<[[-]>-<]>[-<+>]<
     IF                     [[-]
      monatstage=1          <<+>>
      ungueltig=1           <<<<<<<<<+>>>>>>>>>
     ENDIF                  ]
     POP0 monatstage2       <
     DEC monatstage         <->
     DEC tag2               -
    ENDWHILE tag2          ]
    POP0 tag2              <
    
    POP monatstage         [-]<
    POP schaltjahr         [-]<
    
    // fertig mit eingabe testen
    ////////////////////////////////////////////////////////////////////////////////
    
    ////////////////////////////////////////////////////////////////////////////////
    // tag berechnen
    //layout: tage=0 tag monat jhd jahr
    
    PUSH1 tmp              >+
    //if monat kleiner 3 dec jahr
    DUP3 monat2            <<<[->>>>+>+<<<<<]>>>>>[-<<<<<+>>>>>]<
    IF monat2              [
    DEC monat2             -
    IF monat2              [
    DEC monat2             -
    IF monat2              [
    DEC monat2             -
    DEC tmp                <->
    CLEAR monat            [-]
    ENDIF monat            ]
    ENDIF monat            ]
    ENDIF monat            ]
    POPZERO monat          <
    
    IF tmp                 [[-]
     go jahr                 <
     DUP0 jahr2              [->+>+<<]>>[-<<+>>]<
     NOT jahr2               >+<[[-]>-<]>[-<+>]<
     IF not jahr2            [[-]
      go jahr                 <
      //jahr=100
      ADD10                   ++++++++++
      MUL10                  [->++<]>[-<+++++>]<
      DEC jhd                 <->
      go not jahr2            >
     ENDIF not jahr2         ]
     DEC jahr                <->
     go tmp                  
    ENDIF tmp               ]
    POP0 tmp                <
    
    //jahre mal 1 dazuzaehlen
    //365==1 was wochentage angeht
    DUP0 jahr              [->+>+<<]>>[-<<+>>]<
    PUSH7                  >+++++++
    MOD                    [->>+>+<<<]>>>[-<<<+>>>]<-<<<[>>>[->+>+<<]>>[-<<+>>]+<[[-]>-<]>[-<+>]<[[-]<<+<[->>+>+<<<]>>>[-<<<+>>>]]<-<<<-]>>>[-<<->>]<[-]<-[-<+>]<
    add to tage            [-<<<<<+>>>>>]<
    
    //schaltjahre wegen /4 dazuzaehlen
    DUP0 jahr              [->+>+<<]>>[-<<+>>]<
    PUSH4                  >++++
    DIV                    [->>+>+<<<]>>>[-<<<+>>>]<-<<<[>>>[->+>+<<]>>[-<<+>>]+<[[-]>-<]>[-<+>]<[[-]<<+<[->>+>+<<<]>>>[-<<<+>>>]]<-<<<-]>>>[-]<[-<<+>>]<[-]<
    PUSH7                  >+++++++
    MOD                    [->>+>+<<<]>>>[-<<<+>>>]<-<<<[>>>[->+>+<<]>>[-<<+>>]+<[[-]>-<]>[-<+>]<[[-]<<+<[->>+>+<<<]>>>[-<<<+>>>]]<-<<<-]>>>[-<<->>]<[-]<-[-<+>]<
    add to tage            [-<<<<<+>>>>>]<
    
    //jahrhunderte mal 5 dazuzaehlen
    DUP1 jhd               <[->>+>+<<<]>>>[-<<<+>>>]<
    PUSH7                  >+++++++
    MOD                    [->>+>+<<<]>>>[-<<<+>>>]<-<<<[>>>[->+>+<<]>>[-<<+>>]+<[[-]>-<]>[-<+>]<[[-]<<+<[->>+>+<<<]>>>[-<<<+>>>]]<-<<<-]>>>[-<<->>]<[-]<-[-<+>]<
    add to tage            [-<<<<<+++++>>>>>]<
    
    //damit das abziehen immer klappt 7 zu den tagen dazu
    PUSH7                  >+++++++
    add to tage            [-<<<<<+>>>>>]<
    
    //schaltjahre wegen /400 dazuzaehlen
    DUP1 jhd               <[->>+>+<<<]>>>[-<<<+>>>]<
    PUSH4                  >++++
    DIV                    [->>+>+<<<]>>>[-<<<+>>>]<-<<<[>>>[->+>+<<]>>[-<<+>>]+<[[-]>-<]>[-<+>]<[[-]<<+<[->>+>+<<<]>>>[-<<<+>>>]]<-<<<-]>>>[-]<[-<<+>>]<[-]<
    PUSH7                  >+++++++
    MOD                    [->>+>+<<<]>>>[-<<<+>>>]<-<<<[>>>[->+>+<<]>>[-<<+>>]+<[[-]>-<]>[-<+>]<[[-]<<+<[->>+>+<<<]>>>[-<<<+>>>]]<-<<<-]>>>[-<<->>]<[-]<-[-<+>]<
    add to tage            [-<<<<<+>>>>>]<
    
    PUSH0 monatstage       >
    DUP3 monat             <<<[->>>>+>+<<<<<]>>>>>[-<<<<<+>>>>>]<
    
    //noch kein monat vergangen
    DUP0 monat2            [->+>+<<]>>[-<<+>>]<
    IF monat2              [[-]
     DEC monat              <->
     ADD monatstage 0
    ENDIF monat2           ]
    POP0 monat2            <
    
    //januar ist um
    DUP0 monat2            [->+>+<<]>>[-<<+>>]<
    IF monat2              [[-]
     DEC monat              <->
     ADD monatstage 3       <<+++>>
    ENDIF monat2           ]
    POP0 monat2            <
    
    //februar ist um
    DUP0 monat2            [->+>+<<]>>[-<<+>>]<
    IF monat2              [[-]
     DEC monat              <->
     //eigentlich 0 aber mit jahresausgleich
     SUB monatstage 1       <<->>
    ENDIF monat2           ]
    POP0 monat2            <
    
    //maerz ist um
    DUP0 monat2            [->+>+<<]>>[-<<+>>]<
    IF monat2              [[-]
     DEC monat              <->
     ADD monatstage 3       <<+++>>
    ENDIF monat2           ]
    POP0 monat2            <
    
    //april  ist um
    DUP0 monat2            [->+>+<<]>>[-<<+>>]<
    IF monat2              [[-]
     DEC monat              <->
     ADD monatstage 2       <<++>>
    ENDIF monat2           ]
    POP0 monat2            <
    
    //mai ist um
    DUP0 monat2            [->+>+<<]>>[-<<+>>]<
    IF monat2              [[-]
     DEC monat              <->
     ADD monatstage 3       <<+++>>
    ENDIF monat2           ]
    POP0 monat2            <
    
    //juni  ist um
    DUP0 monat2            [->+>+<<]>>[-<<+>>]<
    IF monat2              [[-]
     DEC monat              <->
     ADD monatstage 2       <<++>>
    ENDIF monat2           ]
    POP0 monat2            <
    
    //juli ist um
    DUP0 monat2            [->+>+<<]>>[-<<+>>]<
    IF monat2              [[-]
     DEC monat              <->
     ADD monatstage 3       <<+++>>
    ENDIF monat2           ]
    POP0 monat2            <
    
    //august ist um
    DUP0 monat2            [->+>+<<]>>[-<<+>>]<
    IF monat2              [[-]
     DEC monat              <->
     ADD monatstage 3       <<+++>>
    ENDIF monat2           ]
    POP0 monat2            <
    
    //september ist um
    DUP0 monat2            [->+>+<<]>>[-<<+>>]<
    IF monat2              [[-]
     DEC monat              <->
     ADD monatstage 2       <<++>>
    ENDIF monat2           ]
    POP0 monat2            <
    
    //oktober ist um
    DUP0 monat2            [->+>+<<]>>[-<<+>>]<
    IF monat2              [[-]
     DEC monat              <->
     ADD monatstage 3       <<+++>>
    ENDIF monat2           ]
    POP0 monat2            <
    
    //november ist um
    DUP0 monat2            [->+>+<<]>>[-<<+>>]<
    IF monat2              [[-]
     DEC monat              <->
     ADD monatstage 2       <<++>>
    ENDIF monat2           ]
    POP0 monat2            <
    
    POP monat              [-]<
    
    PUSH7                  >+++++++
    MOD                    [->>+>+<<<]>>>[-<<<+>>>]<-<<<[>>>[->+>+<<]>>[-<<+>>]+<[[-]>-<]>[-<+>]<[[-]<<+<[->>+>+<<<]>>>[-<<<+>>>]]<-<<<-]>>>[-<<->>]<[-]<-[-<+>]<
    
    add monatstage to tage [-<<<<<+>>>>>]<
    
    DUP3 tag2              <<<[->>>>+>+<<<<<]>>>>>[-<<<<<+>>>>>]<
    add tag2 to tage [-<<<<<+>>>>>]<
    
    POP jahr               [-]<
    POP jhd                [-]<
    POP monat              [-]<
    POP tag                [-]<
    
    PUSH7                  >+++++++
    MOD                    [->>+>+<<<]>>>[-<<<+>>>]<-<<<[>>>[->+>+<<]>>[-<<+>>]+<[[-]>-<]>[-<+>]<[[-]<<+<[->>+>+<<<]>>>[-<<<+>>>]]<-<<<-]>>>[-<<->>]<[-]<-[-<+>]<
    // fertig mit tag berechnen
    ////////////////////////////////////////////////////////////////////////////////
    
    ////////////////////////////////////////////////////////////////////////////////
    // ausgabe
    //layout: ungueltig wochentag
    SWAP                   [->+<]<[->+<]>>[-<<+>>]<
    //layout: wochentag ungueltig
    IF ungueltig           [[-]
     go wochentag           <
     wochentag=7            [-]+++++++
     go ungueltig           >
    ENDIF                  ]
    POP0 ungueltig         <
    
    PUSH1 weiter=1         >+
    //layout: wochentag weiter
    
    DUP0 weiter1           [->+>+<<]>>[-<<+>>]<
    IF weiter1             [[-]
     DUP2 wochentag1        <<[->>>+>+<<<<]>>>>[-<<<<+>>>>]<
     NOT                    >+<[[-]>-<]>[-<+>]<
     IF not wochentag1      [[-]
      PUSH64                 >++++[->++++<]>[-<++++>]<
      S                      +++++++++++++++++++.
      PUSH32                 >++[->++++<]>[-<++++>]<
      ADD                    [-<+>]<
      o                      ----.
      n                      -.
      n                      .
      t                      ++++++.
      a                      -------------------.
      g                      ++++++.
      POP                    [-]<
      weiter=0               <<->>
     ENDIF wochentag1       ]
     POP0 wochentag1        <
    ENDIF weiter1          ]
    POP0 weiter1           <
    
    DUP0 weiter1           [->+>+<<]>>[-<<+>>]<
    IF weiter1             [[-]
     DEC wochentag          <<->>
     DUP2 wochentag1        <<[->>>+>+<<<<]>>>>[-<<<<+>>>>]<
     NOT                    >+<[[-]>-<]>[-<+>]<
     IF not wochentag1      [[-]
      PUSH64                 >++++[->++++<]>[-<++++>]<
      M                      +++++++++++++.
      PUSH32                 >++[->++++<]>[-<++++>]<
      ADD                    [-<+>]<
      o                      ++.
      n                      -.
      t                      ++++++.
      a                      -------------------.
      g                      ++++++.
      POP                    [-]<
      weiter=0               <<->>
     ENDIF wochentag1       ]
     POP0 wochentag1        <
    ENDIF weiter1          ]
    POP0 weiter1           <
    
    DUP0 weiter1           [->+>+<<]>>[-<<+>>]<
    IF weiter1             [[-]
     DEC wochentag          <<->>
     DUP2 wochentag1        <<[->>>+>+<<<<]>>>>[-<<<<+>>>>]<
     NOT                    >+<[[-]>-<]>[-<+>]<
     IF not wochentag1      [[-]
      PUSH64                 >++++[->++++<]>[-<++++>]<
      D                      ++++.
      PUSH32                 >++[->++++<]>[-<++++>]<
      ADD                    [-<+>]<
      i                      +++++.
      e                      ----.
      n                      +++++++++.
      s                      +++++.
      t                      +.
      a                      -------------------.
      g                      ++++++.
      POP                    [-]<
      weiter=0               <<->>
     ENDIF wochentag1       ]
     POP0 wochentag1        <
    ENDIF weiter1          ]
    POP0 weiter1           <
    
    DUP0 weiter1           [->+>+<<]>>[-<<+>>]<
    IF weiter1             [[-]
     DEC wochentag          <<->>
     DUP2 wochentag1        <<[->>>+>+<<<<]>>>>[-<<<<+>>>>]<
     NOT                    >+<[[-]>-<]>[-<+>]<
     IF not wochentag1      [[-]
      PUSH64                 >++++[->++++<]>[-<++++>]<
      M                      +++++++++++++.
      PUSH32                 >++[->++++<]>[-<++++>]<
      ADD                    [-<+>]<
      i                      ----.
      t                      +++++++++++.
      t                      .
      w                      +++.
      o                      --------.
      c                      ------------.
      h                      +++++.
      POP                    [-]<
      weiter=0               <<->>
     ENDIF wochentag1       ]
     POP0 wochentag1        <
    ENDIF weiter1          ]
    POP0 weiter1           <
    
    DUP0 weiter1           [->+>+<<]>>[-<<+>>]<
    IF weiter1             [[-]
     DEC wochentag          <<->>
     DUP2 wochentag1        <<[->>>+>+<<<<]>>>>[-<<<<+>>>>]<
     NOT                    >+<[[-]>-<]>[-<+>]<
     IF not wochentag1      [[-]
      PUSH64                 >++++[->++++<]>[-<++++>]<
      D                      ++++.
      PUSH32                 >++[->++++<]>[-<++++>]<
      ADD                    [-<+>]<
      o                      +++++++++++.
      n                      -.
      n                      .
      e                      ---------.
      r                      +++++++++++++.
      s                      +.
      t                      +.
      a                      -------------------.
      g                      ++++++.
      POP                    [-]<
      weiter=0               <<->>
     ENDIF wochentag1       ]
     POP0 wochentag1        <
    ENDIF weiter1          ]
    POP0 weiter1           <
    
    DUP0 weiter1           [->+>+<<]>>[-<<+>>]<
    IF weiter1             [[-]
     DEC wochentag          <<->>
     DUP2 wochentag1        <<[->>>+>+<<<<]>>>>[-<<<<+>>>>]<
     NOT                    >+<[[-]>-<]>[-<+>]<
     IF not wochentag1      [[-]
      PUSH64                 >++++[->++++<]>[-<++++>]<
      F                      ++++++.
      PUSH32                 >++[->++++<]>[-<++++>]<
      ADD                    [-<+>]<
      r                      ++++++++++++.
      e                      -------------.
      i                      ++++.
      t                      +++++++++++.
      a                      -------------------.
      g                      ++++++.
      POP                    [-]<
      weiter=0               <<->>
     ENDIF wochentag1       ]
     POP0 wochentag1        <
    ENDIF weiter1          ]
    POP0 weiter1           <
    
    DUP0 weiter1           [->+>+<<]>>[-<<+>>]<
    IF weiter1             [[-]
     DEC wochentag          <<->>
     DUP2 wochentag1        <<[->>>+>+<<<<]>>>>[-<<<<+>>>>]<
     NOT                    >+<[[-]>-<]>[-<+>]<
     IF not wochentag1      [[-]
      PUSH64                 >++++[->++++<]>[-<++++>]<
      S                      +++++++++++++++++++.
      PUSH32                 >++[->++++<]>[-<++++>]<
      ADD                    [-<+>]<
      a                      ------------------.
      m                      ++++++++++++.
      s                      ++++++.
      t                      +.
      a                      -------------------.
      g                      ++++++.
      POP                    [-]<
      weiter=0               <<->>
     ENDIF wochentag1       ]
     POP0 wochentag1        <
    ENDIF weiter1          ]
    POP0 weiter1           <
    
    DUP0 weiter1           [->+>+<<]>>[-<<+>>]<
    IF weiter1             [[-]
     DEC wochentag          <<->>
     DUP2 wochentag1        <<[->>>+>+<<<<]>>>>[-<<<<+>>>>]<
     NOT                    >+<[[-]>-<]>[-<+>]<
     IF not wochentag1      [[-]
      PUSH64                 >++++[->++++<]>[-<++++>]<
      F                      ++++++.
      PUSH32                 >++[->++++<]>[-<++++>]<
      ADD                    [-<+>]<
      e                      -.
      h                      +++.
      l                      ++++.
      e                      -------.
      r                      +++++++++++++.
      POP                    [-]<
      weiter=0               <<->>
     ENDIF wochentag1       ]
     POP0 wochentag1        <
    ENDIF weiter1          ]
    POP0 weiter1           <
    
    POP weiter             [-]<
    POP wochentag          [-]<
    
    PUSH10                 >++++++++++
    WRITECHAR              .[-]<
    
    // fertig mit ausgabe
    ////////////////////////////////////////////////////////////////////////////////
    


  • pointercrash() schrieb:

    Was soll die Faselei? Superversion z.B. ist echt klasse, ein Bekannter schwört auf Freemind.

    Und das hätte man ohne weiteres durch Durchforsten von Freshmeat rauskriegen können?

    Du findest mindestens ebensoviel Schutt, der in C++ oder VB produziert wurde

    Ja, wenn du VB dazunimmst, auf jeden Fall 🤡



  • volkard schrieb:

    Die Vollprofis sind flexibel in ihrer Werkzeugwahl, in ihren Vorgehensweisen und Modellen. Tun wir mal so, als würden viele Umsteiger auf dem Weg zum Profi nach C++ umsteigen. Dort würden sich die Leute sammeln, die eher flexibel sind.

    finde ich unwahrscheinlich, dass sie sich bei C++ sammeln. viel eher ist C++ eine zwischenstation, von wo es dann in verschiedene richtungen weitergeht. z.b. richtung Java, C#, oder was ganz anderes. jedenfalls, behaupte ich mal, möchte kaum jemand mehr was von C++ wissen, wenn er diese entwicklungsstufe überwunden hat. manche sind danach sogar so traumatisiert, dass sie C ohne ++ strikt ablehnen (was ich sehr schade finde, aber ein bisschen auch verstehen kann).

    volkard schrieb:

    Er sieht, daß unter den Profis ja lauter Chaos herrscht und stellt fest, daß C++ zu Chaos führt. Also lehrt er möglichst unchaotische Sprachen, automagisch sogenannte Anfängersprachen und verschärft die Trennung der Welten.

    das könnte sogar zutreffen. sach ma: hast du nicht mal C++ kurse gegeben? wenn ja, erzähl' doch mal was darüber. wie weit seid ihr gegangen, wie war so im schnitt der lernerfolg deiner schüler, gab's ein abschlussprojekt? wenn ja: was?
    🙂



  • Bashar schrieb:

    Glaubst du ernsthaft, dass volkard das nicht weiß? Volkard sprach von "guter" Software. Dass es irgendwelches "Geraffel"((C)fricky) in Massen gibt haben wir schon vor 5 Seiten festgestellt, und es wäre auch sehr verwunderlich, wenn das nicht so wäre.

    Die wahrscheinlich beste IDE ist in Java geschrieben. Nein, ich spreche nicht von Eclipse (das ist die zweitbeste) und auch nicht von Netbeans (das ist nur die drittbeste). Die rede ist von IntelliJ IDEA: http://www.jetbrains.com/idea/
    Kennen natürlich nur Menschen, die sich schonmal ernsthaft mit Java beschäftigt haben. Wird also von Volkard und Konsorten als Gegenargument voraussichtlich ignoriert werden. Business as usual in diesem Board. Wahrscheinlich muss erst ein Java Programm als Closed Source beim Mediamarkt im Regal stehen, damit gewisse Leute aufwachen. 🤡



  • Bashar schrieb:

    Und das hätte man ohne weiteres durch Durchforsten von Freshmeat rauskriegen können?

    So ungefähr. Ich suche eher nur nach Kategorie und probier' das Zeugs inner VM aus. Und wenn da kurz die JRE- Kaffeetasse aufpoppt, weiß' ich halt, aha, Java. Du kannst Dir natürlich auch gezielt Java rausfiltern und Dir Anwendungen in Kategorien suchen. Du wirst den gleichen Mix aus Brauchbarem, Halbgarem und Gutem finden wie bei anderen Sprachen.

    Bashar schrieb:

    Ja, wenn du VB dazunimmst, auf jeden Fall 🤡

    ACK

    volkard schrieb:

    Aber es wäre auch denkbar, daß Java ein großer Haufen Bockmist ist, in dem kein normaler Mensch ein ordentliches Programm bauen kann. Trotzdem würde es einen ganzen Haufen Software in Java geben, nämlich weil Java als Anfängersprache verwendet wird und jeder Anfänger logischerweise seine ersten paar Projekte in Java baut, bevor er bemerkt, daß er umsetiegen muß.

    Widerlegt. Kein Anfänger merkt, daß er umsteigen muß, wenn er nur Anfängerbockmist baut. Profis können durchaus auch umfangreichere Projekte in Java umsetzen.

    volkard schrieb:

    Außerdem wissen wir, daß Dogmen in der Programmierung nichts zu suchen haben und zu schlechten Programmen führen.

    Grundlose Behauptung.

    volkard schrieb:

    Die Vollprofis sind flexibel in ihrer Werkzeugwahl, in ihren Vorgehensweisen und Modellen.

    Grundlose Behauptung.

    volkard schrieb:

    Tun wir mal so, als würden viele Umsteiger auf dem Weg zum Profi nach C++ umsteigen. Dort würden sich die Leute sammeln, die eher flexibel sind.

    OK, hypothetisch..

    volkard schrieb:

    Aber gerade Flexibilität ist das, was einem im Programmieren unerfahrener Professor als Chaos vorkommt. Er sieht, daß unter den Profis ja lauter Chaos herrscht und stellt fest, daß C++ zu Chaos führt.

    Dialektischer Unfug. Der "unerfahrene Professor" sieht üblicherweise gar nichts vom "Profi- Code" oder er ist nicht unerfahren, wenn er ihn versteht und als chaotisch einstuft.

    volkard schrieb:

    Also lehrt er möglichst unchaotische Sprachen, automagisch sogenannte Anfängersprachen und verschärft die Trennung der Welten. Nur mal so ...

    Das ist doch pädagogisch sinnvoll. Von welcher Trennung der Welten sprichst Du?

    volkard schrieb:

    Ins Modell würde auch ein wenig gute Software passen von echten Ausnahmetalenten (im Anhang zeige ich meinen Wochentagsberechner in Brainfuck). Es würde erklären, weshalb Hochschulen, vor allem Unis auf Java als Anfängersprache schwören. Es würde vielleicht vieles bis alles erklären... Müßte man mal eingehender untersuchen.

    Du mußt dringend von den Drogen runter, Du Ausnahmetalent. Du kriegst nach eigener Aussage in Java kein vernünftiges Programm zusammen, beschwörst in dem Zusammenhang die Professionalität und ziehst daraus die Postulierung, Java sei Teufelszeug?

    Ganz ehrlich, DAS ist reliculous ... 🤡



  • pointercrash() schrieb:

    Du mußt dringend von den Drogen runter, Du Ausnahmetalent. Du kriegst nach eigener Aussage in Java kein vernünftiges Programm zusammen, beschwörst in dem Zusammenhang die Professionalität und ziehst daraus die Postulierung, Java sei Teufelszeug?
    Ganz ehrlich, DAS ist reliculous ... 🤡

    Nein, ich untersuchte die Hypothese, ob es sein kann, daß Java großer Bockmist ist, und schaute, ob die Beobachtungen sich harmonisch in die Hypothese einfügen lassen, und kam zu dem Schluß, daß man diese Hypothese weiter verfolgen sollte.



  • Was kann Java überhaupt? Die Sprache ist wie C++ mit weniger Sprachmittel.
    Keine Makros, weil sind ja gefährlich, dass es gute Anwendungen gibt zeigt Boost.
    Zeiger, nö, sind ja gefährlich. Das im gewünschten Fall auch nur Libs mit Zeigern arbeiten müssen ist ja unwichtig, dass es manchmal aber sinnvoll ist mit ihnen zu arbeiten ist auch egal.
    Funktionszeiger und Operatorenüberladung wie Funktoren führen dann zu Dingen wie boost.function und boost.signals, darüber hinaus gehend boost.lambda wo in eine ach so veraltete Sprache auf einmal Dinge realisiert werden, wie sie andere Sprachen wie C# erst wieder neu entdecken müssen, in Java gibts das noch gar nicht(kein Wort dazu, dass wirklich moderne Sprachen hier First-Class-Functions anbieten)
    Templates? Will nicht sagen, dass Java das explizit ausgebaut hat, aber es ist etwas was ich an C++ sehr schätze und in Java sehr vermisse, Generics sind kein Ersatz dafür.

    Sache ist die, dass Java einfach ist. Dadurch dass es einfach ist, wird es häufig gelehrt, dadurch entstehen haufenweise guter Bibliotheken, zwar keine die auf allgemeiner Ebene an Boost heran kommen, aber gute spezialisiertere Bibliotheken. Ebenso ist die Javaumgebung an sich schon mit einem größeren Satz an Bibliotheken ausgestattet.
    Blöd nur, dass dieses Standardargument kein Grund ist, denn es gibt für die JVM eine Menge anderer Sprachen, einige von denen sind richtig gut, beim Cousin .NET ist das noch extremer.



  • JustAnotherNoob schrieb:

    darüber hinaus gehend boost.lambda wo in eine ach so veraltete Sprache auf einmal Dinge realisiert werden, wie sie andere Sprachen wie C# erst wieder neu entdecken müssen, in Java gibts das noch gar nicht(kein Wort dazu, dass wirklich moderne Sprachen hier First-Class-Functions anbieten)

    Mein Wissen über Lambda und First-Class Funktionen ist etwas begrenzt, aber hatte das nicht etwas mit Closures zu tun? Closures waren nämlich eins der großen Features, die für Java 7 geplant waren. Allerdings werden sie es wohl nicht mehr ins Release schaffen (Stand Februar 2009).

    Da gibt es auch nen ausführlichen Google Talk zu: http://www.youtube.com/watch?v=0zVizaCOhME



  • JustAnotherNoob schrieb:

    Was kann Java überhaupt? Die Sprache ist wie C++ mit weniger Sprachmittel.

    nö, nur die syntax beider stammt von C. sonst gibts viele unterschiede.

    JustAnotherNoob schrieb:

    Zeiger, nö, sind ja gefährlich. Das im gewünschten Fall auch nur Libs mit Zeigern arbeiten müssen ist ja unwichtig, dass es manchmal aber sinnvoll ist mit ihnen zu arbeiten ist auch egal.

    wann ist es sinnvoll mit zeigern zu arbeiten? beispiel?

    JustAnotherNoob schrieb:

    Funktionszeiger und Operatorenüberladung wie Funktoren führen dann zu Dingen wie boost.function und boost.signals...

    das sind doch nur verpackungen für schnöde function-pointer, bzw. mehrere davon werden in listen verwaltet. sowas in der art kriegste sogar mit ansi-C locker hin. Java hat übrigens das 'Runnable'-Interface, was z.b. so ähnlich wie function pointer eingesetzt werden kann.

    ...wo in eine ach so veraltete Sprache auf einmal Dinge realisiert werden...

    im grunde sind doch alles alte kamellen, die's in anderer form schon lange irgendwo gibt. dass man mit C++ vieles mit templates u.ä. irgendwie nachbasteln kann, ist ja nichts berauschendes. mich wundert nur immer wieder, dass es bei manchen solche begeisterung hervorruft.
    🙂



  • nö, nur die syntax beider stammt von C. sonst gibts viele unterschiede.

    Ja, java hat keine Pointerarithmetik, Java hat keine Makros, Java hat keine Operatorenüberladung, Java hat keine globalen Funktionen, Java hat keine Templates u.s.w.?
    Will sagen die Hauptdinge die fehlen, sind essentieller Natur.
    Die Dinge die neu vorhanden sind, sind eher irrelevant. Als mächtiges Beispiel fällt mir auch nur die Reflection ein.

    wann ist es sinnvoll mit zeigern zu arbeiten? beispiel?

    willst du ein ganz kleines Beispiel, das gar nicht so ein typische abstrakter C++-Fall ist? Um einfacher auf einzelne Bytes zugreifen zu können, z.B. bei Bildbearbeitung. Das ist jedenfalls eine Anwendung, in der im .NET Framework für C# Pointer verwendet werden!
    Braucht man selten, ist scheißegal, dann verwendest du Pointer eben nur selten, aber du hast das Mittel, in Java hast du es halt nicht, das ist kein Vorteil von Java.

    das sind doch nur verpackungen für schnöde function-pointer, bzw. mehrere davon werden in listen verwaltet. sowas in der art kriegste sogar mit ansi-C locker hin. Java hat übrigens das 'Runnable'-Interface, was z.b. so ähnlich wie function pointer eingesetzt werden kann.

    Das in Java ist aber mehr Code. Es ist semantisch das selbe, du kannst in Java natürlich alles machen wie in C++. Es ist nur hässlich, wie man es macht.
    Und dein erster Satz trifft das Wesen von C++ genau: Low-Level Features, die leicht mit Libs abstrahiert werden können. Klar sinds intern nur Functionpointer, aber sie verhalten sich nicht so. Abstraktion eben.

    im grunde sind doch alles alte kamellen, die's in anderer form schon lange irgendwo gibt. dass man mit C++ vieles mit templates u.ä. irgendwie nachbasteln kann, ist ja nichts berauschendes. mich wundert nur immer wieder, dass es bei manchen solche begeisterung hervorruft.

    Weil es die Sprache eben flexibel macht, das kann Java nicht.
    Versteh mich nicht falsch, es gibt eine Menge Sprachen, die derart flexibel sind, aber Java ist eben nicht so flexibel. Und das Thema war ob die Sprache untergehen wird und aufgrund der mangelnden Flexibilität wird sie immer weiter veralten. Sie spiegelt doch heute immer noch den selben Stil wieder, an den mich C++-Bibliotheken erinnern, die aus der Entstehungszeit Javas stammen. Java war da spezialisierter, schöner für diesen Programmierstil, aber C++ hat sich weiter entwickelt, Java nicht.


Anmelden zum Antworten