Python als zweite Sprache lernen



  • Moin ihr 🙂

    Ich lerne momentan C++ und es läuft alles super. Aber soweit ich das richtig verstanden habe,
    sollte man mehr als eine Sprache kennen (zumindest etwas die syntax verstehen und ein paar Programme geschrieben haben),
    da sie ja alle ihre stärken und schwächen haben.

    Desweiteren hab ich gelesen, dass es wohl praktisch sei, wenn man C++ mit Python verbindet (wozu genau hab ich noch keine ahnung).
    Also wäre ein bisschen Phyton nicht verkehrt ? Nebenbei werde ich wohl gelegentlich mal ein QT Programm schreiben,
    aber mich jedoch eher auf die C++ Grundlagen fixieren, bis ich wirklich sicher bin.
    Habe mich gerade in Threads eingearbeitet und alleine die nicht verrückt rumhüpfen zu lassen,
    wie kleine Kinder auf einem Geburtstag ist echt nicht leicht, aber zum glück habe ich ein paar gute Bücher.
    Jedoch hab ich momentan aus einigen Gründen viel Freizeit und in der Woche ein oder zwei Tage
    für eine zweite Sprache zu verwenden ist sicherlich nicht schlecht.
    Für den fall ,dass ihr Python lernen nicht als praktisch ansieht, habt ihr noch ein anderen Vorschlag?
    Java wäre nicht so meins, weil ich kein Java auf mein PC installieren mag (schlechte erfahrung)

    Ich weiß es gibt soviele Threads zu diesem Thema und ich habe sicher an die 100 durchgelesen (die meisten gehen nur um die erste Sprache),
    aber meist sind mir die antworten zu Partei bezogen.
    Da es hier aber immer (soweit ich das gesehen habe)vorbildlich läuft hoffe ich auf ein oder sogar zwei (wollen wir mal nicht übermütig werden 😃 ) antworten.

    EDIT: Ohman.Python und nicht Phyton



  • ChukkSatyriasis schrieb:

    Desweiteren hab ich gelesen, dass es wohl praktisch sei, wenn man C++ mit Python verbindet (wozu genau hab ich noch keine ahnung).

    Python ist angenehm, weil es das rapid prototyping sehr viel leichter macht als C++, hauptsächlich durch den REPL und durch Bibliotheken wie NumPy/SciPy/matplotlib. Aber man merkt dann schnell, daß Python für viele Dinge ungeeignet ist (langsam, dynamisch typisiert, kein Multithreading), die dafür in C++ recht einfach gehen. Dann geht man eben dazu über, solche Programmteile in C++ zu schreiben und von Python aus aufzurufen.

    ChukkSatyriasis schrieb:

    Also wäre ein bisschen Phyton nicht verkehrt ?

    Nein. Die Sprache gehört nicht zu den schönsten und hat hinlänglich bekannte Probleme, bietet aber einen einfachen Einstieg und ist z.B. im universitären Umfeld weit verbreitet.

    ChukkSatyriasis schrieb:

    Für den fall ,dass ihr Python lernen nicht als praktisch ansieht, habt ihr noch ein anderen Vorschlag?

    Warum willst du dich nur auf eine weitere Sprache beschränken? Es hindert dich doch keiner, mal eine Handvoll Sprachen anzutesten und anhand von Tutorials ein kleines Beispielprojekt damit anzufangen. Man hört Gutes von C#, F#, Gopher, Haskell, Julia, Rust, Scala und bestimmt vielen anderen.



  • Lern doch einfach die Sprache/n die dir gefallen und die du für deine Projekte brauchst. Sprache aussuchen, ein wenig Grundlagen lernen und bisschen mit rumprobieren. Meine Favoriten sind C++ mit Qt und Java mit JavaFX. Ein Traum wäre es wenn bei C++ die Header-Source-Trennung wegfallen könnte.



  • Meiner Meinung lernst du erst mal gescheid eine Sprache und zwar die, die für deine Aufgabe am besten geeignet ist. Erst wenn du eine ordentlich kannst, lernst du die nächste. Lieber eine gescheid können als zwei Sprachen halbwegs.

    Schrauber schrieb:

    Ein Traum wäre es wenn bei C++ die Header-Source-Trennung wegfallen könnte.

    Verzögert sich leider noch, C++17 schafft's leider nicht mehr, obwohl es das wichtigste Feature meiner Meinung nach wäre. Clang und VC++ bieten immerhin schon (oder bald?) Module. Leider compilerspezifisch und sowas rühr ich eher nicht an.



  • Ein weiteres Argument:

    Für größere C++-Projekte ist es auf jeden Fall hilfreich eine Skriptsprache zu beherrschen, mit der man schnell und unkompliziert kleinere Tools und Build-Skripte schreiben kann.

    Irgendwann besteht der Build-Vorgang nämlich nicht mehr nur daraus dem Compiler eine main.cpp zu fressen, zu geben sondern es es müssen z.B. auch noch eine Menge verschiedener anderer Dateien "kompiliert" und auf unterschiedlichste Weise in das fertige Produkt eingebunden werden:

    - diverse "Assets" (Bilder, Texturen, Audiodateien) will man vielleicht automatisiert in einheitliche Formate konvertieren und direkt in das Programm oder eine spezielle Datendatei einbetten.
    - Übersetzungstexte für die Anwendung oder Datentabellen die in irgendeinem Textformat vorliegen möchte man vielleicht direkt in eine C++-Datenstruktur mit den passenden Typen umwandeln und in den Quellcode einbauen.
    - Generierung von Dokumentation und vielleicht automatischer Upload auf eine Dokumentations-Website wo immer die aktuellste Version angezeigt werden soll.
    - Das Programm soll releasefertig verpackt (z.B. mit Installer) und vielleicht sogar noch signiert werden.

    ... und vieles mehr.
    Ein konkretes Beispiel, wofür ich z.B. selbst gerade Python einsetze: Ein Build-Skript, welches die verwendeten Drittanbieter-Bibliotheken mit ihren unterschiedlichsten Build-System, die sie verwenden (autotools, CMake, SCons, IDE-Projektdateien) alle mit den selben Compiler-Einstellungen baut (z.B. Debug/Release-Versionen, Debugsymbole, Optimierungen, statisches/dynamisches Linken, maschinenspezifische Flags wie z.B. Aktivierung von SSE/AVX oder mit Link-Time/Profile Guided Optimization).
    Am Ende ist der ganze komplexe Build-Prozess ein einziger Vorgang, der einmal ansgestossen wird und alles (hoffentlich) korrekt, sauber, kontrolliert und vor allem reproduzierbar zusammenbaut.

    Solche Sachen schreibt man nicht in C++, sondern besser in einer Skriptsprache.
    Ich persönlich finde dafür Python ganz gut geeignet - aber andere tun es sicher auch 😉

    Finnegan



  • Btw: Wird python auch in der Industrie angewendet.



  • C++-Kentnisse mit einer Scriptsprache für Rapid Prototyping, Tools etc. zu ergänzen macht definitiv Sinn. Und Python ist sowohl weit verbreitet als auch mächtig und nütlich auf dem Gebiet. Insofern meine Empfehlung dazu.



  • Danke für die vielen guten Antworten. Hat mir weiter geholfen. Klingt alles ziemlich spannend 😃


Log in to reply