Java lernen sinnlos?



  • Wenn man die WinAPI nicht benutzen muss, muss man sie auch nicht lernen

    Ich halte die Denkweise, die via WinAPI vermittelt wird, nicht für uninteressant. Man kann auf einfachste Weise in ungekapselter(!) Form Oberflächen erstellen und den Verlauf und die Reaktionen auf Ereignisse Schritt für Schritt verfolgen und damit experimentieren:
    http://www.henkessoft.de/C++/WinAPI/WinAPI Kapitel 1 bis 6/api1.htm
    Der Aufwand ist gering und die resultierende "historische Bildung" hoch. Denn auch heutige ereignisgesteuerte Systeme verwenden die gleichen Grundprinzipien, nur eben gekapselt, so dass man die interessanten Dinge nicht mehr findet. Man wird damit aber genau zum "blöden" Anwender, der "nur noch genau das lernt, was er benutzen muss". Under the hood bringt Bildung, nicht KlickiKlicki.

    "historisch" ist daran auch nichts

    Aber ja! Die Windows-Programmierung basierend auf DOS und C (später auch C++) ist eine enorme Erfolgsgeschichte, die nun zu MS Windows 7 führt. Daneben können im Wesentlichen nur Linux, Symbian OS als Betriebssystem und Java als Programmiersprache bestehen.

    Nur weil man MS oder Windows nicht mag, sollte man keine falschen Schlüsse ziehen. Große Programme baut man mit WinAPI allerdings nicht mehr. Das ist vorbei.



  • Na und, alle GUIs funktionieren so, und Windows war auch nicht die erste. Das Ereignismodell ist auch nichts unbekanntes was man nicht in allen modernen GUI Systemen (& APIs) wiederfinden würde. Wenn was interessant ist, dann vielleicht Nextstep, das war wenigstens auch noch objektorientiert.



  • Java ist voll das behinderte Programm!



  • Java ist voll das behinderte Programm!

    Das wurde - soweit ich weiß - bewusst so gemacht. 🙂

    Ich denke, dass Java heute so eine Art Grundsprache für studierende Informatiker geworden ist, oder sehe ich das falsch?



  • C++ ist ja eine aussterbende Sprache und kann deshalb nicht mehr eine Art Grundsprache für studierende Informatiker sein.



  • Erhard Henkes schrieb:

    Ich denke, dass Java heute so eine Art Grundsprache für studierende Informatiker geworden ist, oder sehe ich das falsch?

    eher allgemein, also wer überhaupt das erste mal programmiert, ist mit Java gut dran. Java ist ziemlich einfach und bereitet daher einsteigern keine schwierigkeiten. man kann mit wenig aufwand dinge tun, die auch sofort klappen und das sorgt gleich für die nötige begeisterung. auch für fortgeschrittene ist das programmieren in Java eine ziemlich entspannte sache. zitat aus einem nachbar-thread: programmieren mit Java macht einfach mehr spass.
    🙂



  • +fricky schrieb:

    programmieren mit Java macht einfach mehr spass. 🙂

    lol. bis man zum ersten mal was ernsthaftes in java angeht. die vielen zäune erzeugen magengeschwüre.



  • java als Lehrsprache?

    Welchen Vorteil hat es, einem Schüler, der zum ersten Mal programmiert, erklären zu müssen, daß er ``public static void main(...){ ... }'' schreiben muß, wo bei python ``main(...)'' reicht ?



  • volkard schrieb:

    +fricky schrieb:

    programmieren mit Java macht einfach mehr spass. 🙂

    lol. bis man zum ersten mal was ernsthaftes in java angeht.

    was denn z.b.?

    u_ser-l schrieb:

    java als Lehrsprache?
    Welchen Vorteil hat es, einem Schüler, der zum ersten Mal programmiert, erklären zu müssen, daß er ``public static void main(...){ ... }'' schreiben muß, wo bei python ``main(...)'' reicht ?

    'public static void main(...)' kommt ja nicht alle 10 zeilen vor, so dass es nerven würde. java wird gern als einsteigersprache genommen. ich kenne jemanden, der gibt kurse int Java und PHP, seine schüler haben ziemlichen spass an Java. früher hat er auch mal c++ unterrichtet, aber daran hatten die leute nicht so viel freude. c++ kurse bieten die auch garnicht mehr an, weils in der wirtschaft nicht mehr so gefragt ist, dafür machen sie jetzt verstärkt .NET sachen. aber python ist bestimmt auch nicht schlecht als lehrsprache.
    🙂



  • +fricky schrieb:

    eher allgemein, also wer überhaupt das erste mal programmiert, ist mit Java gut dran.

    Mit C doch au !?

    +fricky schrieb:

    man kann mit wenig aufwand dinge tun, die auch sofort klappen und das sorgt gleich für die nötige begeisterung.

    Welche Dinge ?

    u_ser-l schrieb:

    Welchen Vorteil hat es, einem Schüler, der zum ersten Mal programmiert, erklären zu müssen, daß er ``public static void main(...){ ... }'' schreiben muß, wo bei python ``main(...)'' reicht ?

    Bei C wärs einfach einfach int main{} 😉

    Grüße
    agi 🙂



  • u_ser-l schrieb:

    wo bei python ``main(...)'' reicht ?

    Was für ein Python soll das denn sein, wo man main(...) schreiben muss? Ein Python-Script wird doch von vorne nach hinten ausgewertet, eine Hauptprozedur ist überflüssig. Man schreibt höchstens ganz gerne if __name__ == "__main__": , um Module auch als Scripte behandeln zu können.
    Und selbst wenn, würde man dann nicht def main(): schreiben? Klär mich auf, Python ändert sich ja gelegentlich mal.

    Abgesehen davon halte ich das Argument für nicht stichhaltig, insbesondere halte ich es für eine schlechte Idee, Programmiersprachenerfindern einen Anreiz zu geben, für die Kürze des ersten Hello World Programms zu optimieren. Wozu sowas führt sieht man bei Sprachen wie VB.



  • Das sieht ja recht unübersichtlich aus:

    public class HalloWelt {
         public static void main(String[] args) {
             System.out.println("Hallo Welt!");
         }
     }
    

    und dat nennt ihr "einfach" ?
    Guckt ma hier:

    #include <stdio.h>
    
    int main()
    {
        printf("Hallo Welt!");
        getchar();
        return 0;
    }
    

    und lasset euch von der Einfachheit dieser Sprache begeistern.

    Grüße
    agi 🙂



  • @aXYZn 👍

    Java ist absolut ungeeignet als Anfaengersprache, C++ ist katastrophal. C# ist eine Mischung zwischen Java und C++.



  • jetzt werden die argumente richtig professionell.



  • u_ser-l schrieb:

    Welchen Vorteil hat es, einem Schüler, der zum ersten Mal programmiert, erklären zu müssen, daß er ``public static void main(...){ ... }'' schreiben muß, wo bei python ``main(...)'' reicht ?

    Reden wir von Schülern oder von Studenten? In dem Jahr was ich in der Schule Informatik hatte, hieß es "Das ist einfach so". Allerdings konnte uns der Lehrer auch am Ende des Schuljahres nicht erklären was static überhaupt bedeutet.

    In der Uni wurd es ganz anders angegangen. Da wurde bei uns der praktische Teil einfach ausgespart. Zuerst wurden per Hoare-Kalkül Algorithmen in einer Java ähnlichen Syntax verifiziert. Dann wurde die Java Syntax per BNF definiert um danach auf zig Kleinigkeiten im Bezug auf Sichtbarkeit von Variablen einzugehen. Der praktische Teil war einem so selbst überlassen.



  • Bashar schrieb:

    Was für ein Python soll das denn sein, wo man main(...) schreiben muss?

    Wer schreibt schon die gesamte Programmlogik der Hauptroutine hinter ein "if" -
    ich meinte eher so etwas:

    ...
    def main():
        ...
        ...
        ...
    if __name__ == "__main__":
        main()
    

    oder man läßt man main() komplett weg, aber es geht hier ja um den Vergleich
    zu java ...



  • aXYZn schrieb:

    +fricky schrieb:

    eher allgemein, also wer überhaupt das erste mal programmiert, ist mit Java gut dran.

    Mit C doch au !?

    kommt drauf an. ich finde java ist ein klein wenig einfacher zu lernen als C. schon weil diese ganze pointerarithmetik wegfällt. dafür kriegste bei Java OOP zwangsweise serviert, aber so schwierig sind OOP grundlagen ja auch nicht.

    aXYZn schrieb:

    +fricky schrieb:

    man kann mit wenig aufwand dinge tun, die auch sofort klappen und das sorgt gleich für die nötige begeisterung.

    Welche Dinge ?

    eigentlich alles was anfängern spass macht und sie bei guter laune hält. kleine GUI-anwendungen, mal ein soundfile abspielen, irgenwelche programme, die sich übers netz unterhalten, usw. in C musste dir für sowas alles irgendwelche libraries besorgen. alles selber machen geht zwar auch, aber kann für 'nen einsteiger ganz schön frustrierend werden.
    🙂



  • ach ja, zum thema 'anfänger und c++': http://www.courageunfettered.com/stuf/cpp/
    🙂



  • Das sieht ja recht unübersichtlich aus:

    aXYZn schrieb:

    Das sieht ja recht unübersichtlich aus:

    public class HalloWelt {
         public static void main(String[] args) {
             System.out.println("Hallo Welt!");
         }
     }
    

    und dat nennt ihr "einfach" ?
    Guckt ma hier:

    #include <stdio.h>
    
    int main()
    {
        printf("Hallo Welt!");
        getchar();
        return 0;
    }
    

    und lasset euch von der Einfachheit dieser Sprache begeistern.

    Grüße
    agi 🙂

    und lasset euch von der Einfachheit dieser Sprache begeistern.

    10 PRINT "Hallo Welt!"
    


  • u_ser-l schrieb:

    Wer schreibt schon die gesamte Programmlogik der Hauptroutine hinter ein "if" -
    ich meinte eher so etwas:

    Mit anderen Worten, du verschweigst, dass das "main()" nur der Aufruf deiner selbst definierten Hauptroutine ist, dass dazu die Definition selbst noch gehört sowie dieses Tänzchen mit dem if __name__ == "__main__": . Ganz seltsamer Diskussionsstil, das.


Anmelden zum Antworten