Ich arbeite viel mit C++ sowohl als auch mit Python. Was Python für mich so eine spannende Sprache macht ist: - Ständige Weiterentwicklung. Bei C++ passiert in letzter Zeit auch recht viel. Es dauert aber immer gefühlt ein paar Jahre bis die neuen Standards im Produktionsumfeld ankommen. Bei Python brauch ich meist nur die neue Version. - Viele, einfach zu verwenden und nach installierbare Bibliotheken. Für fast jeden Anwendungsfall ist etwas dabei. - Kombinierbarkeit mit C/C++. Man kann relativ einfach existierende C/C++ Bibliotheken in Python verwenden. Auch ein Grund warum es so viele mächtige Python Module gibt (z.B. für Bildmanipulation). Oder auch Umgekehrt. Es lässt sich Python relativ leicht in eine C++ Applikation integrieren. Z.B. für eine Erweiterungsschnittelle, bei der der Anwender eigene Erweiterungsmodule in Python schreiben kann. - Und vieles mehr, was mir gerade nicht in den Sinn kommt.
Für die Motivation ist das sicherlich gut. Man eckt dann aber bei bestimmten Problemen schnell an, wenn man die Sprache nicht kennt. Das Wissen, wie dieses Problem in einer anderen Sprache gelöst wird hilft gelegentlich, aber gelegentlich eben auch nicht.
@@agentomat Ich kann mich natürlich irren, aber vielleicht geht es letztlich um die "Programmarchitektur", die in vielen Sprachen ähnlich ist. Dazu gehe ich zur jeweiligen Sprache ein Tutorial (YT-Video) durch, mit meinem Projekt im Hinterkopf. Die Programmumsetzung stellt sich dann oft von selbst ein, vielleicht nicht immer OOP, aber funktional geht immer.
@@Lyrik-Klinge Ok, da hast du natürlich recht. Ich erinnere mich, dass ich an der Matplotlib mit numpy mal verzweifelt war, weil die ein bestimmtes Datenformat wollte und das Array dazu eine bestimmte "Drehung" bzw. Dimension haben musste. Ich glaub ich wollte Aktienkurse plotten und irgendetwas damit machen. Bei Arrays und dem Zusammenkopieren etc. hat Python ja so seine eigene Syntax, um nicht "syntactic suger" zu sagen. Noch etwas stärker konnte ich solche Effekte bei einem Freund beobachten, der sich am Arduino probierte und wo ich langsam sah, dass er das loop-Konzept nicht so verstand und langsam Dinge machen wollte, die die Bibliotheken so nicht hergaben oder verschiedene zueinander inkompatible Bibliotheken einband.
@@agentomat Das stimmt natürlich, dass die Bibliotheken einem das Leben enorm erleichtern können, vor allem wenn die Funktionen darin in C geschrieben wurden. Man spart sich Tipparbeit und reduziert dadurch mögliche Fehlerquellen. Mit numpy kenne ich mich nur am Rande aus und selbst habe ich bisher wenig in Python programmiert. Mit der Version 7.x und OOP habe ich wieder PHP für mich entdeckt, das von vielen Programmieren verschrien ist, was für 3.x und 4.x auch sicherlich zutrifft.
Man kann in Python mit PyInstaller binäre Bundles inkl. aller verwendeter Bibliotheken erstellen. Das ist sehr praktisch, wenn man seine Skripte an andere weitergeben möchte, ohne das der ganze Zoo eins zu eins nachinstalliert werden muss. Eve Online ist z.b. auch in Python programmiert.
Es gibt in der Standardinstallation das Konzept der virtuellen Environments, mit dem man sehr einfach parallel Ablaufumgebungen einrichten kann, die projektbezogen nicht nur verschiedene Interpreterversionen, sondern auch die verwendeten Libraries verwalten können. Genau, "pyenv"
Ich würde den "Windows Editor" jetzt nicht unter Text Editor zählen, eher als Text Feld. Nur das es weniger Funktionen als ein Text Feld hat. Normalerweise kann man in Text Feldern ja mehr als einmal rückgängig machen. Mit ist auch kein Text Editor bekannt, der kein Syntax Highlighting kann, nicht Mal aus der Kommandozeile gibt's so was heutzutage noch.
Ich finde die Pythonsyntax unglaublich unpraktisch: Nicht sichtbare Zeichen sollten nie Steuerzeichen sein! Ich denke jeder kennt es dass Leerzeichen statt ein Tab das Program nicht laufen lässt und im Texteditor sieht man den Fehler einfach nicht. Noch schlimmer ist, dass man den eigenen Algorithmus komplett zerstören kann, wenn man einen Algorithmus programmiert hat und diesen mit einer Schleife oder eine Funktionen umrunden will und dabei nur eine Zeile vergisst einzurücken. Wenn dieser Fehler dann erst nach ein paar Tagen auffällt kann man am Code nicht mehr erkennen, was man eigentlich machen wollte. Abgesehen davon ist es natürlich eine super praktische Sprache für kleinere schnell gecodete Anwendungen.
Beschwere dich mal lieber über Make-Dateien. Deklarativ und Imperativ in einem. Komisch, dass das kaum kritisiert wird. Verwende eine vernünftige IDE und dann passiert dir das nicht mehr.
@@deadeye1982a Naja, die Sache ist die, wenn du eh eine vernünftige IDE verwendest, dann spricht auch nichts gegen eine Compilerhochsprache wie Java, Golang oder sogar C(++). Die richtige IDE nimmt dir ja alle Fallstricke ab und kann heutzutage sogar einige Aufgaben selber coden. Python ist für das schnelle einfache Coden gedacht und genau darin sehe ich auch das Problem mit nicht sichtbaren Steuerzeichen in der Syntax. Ich verstehe nicht, wie eine Sprache mit diesem Manko so derart durchstarten konnte wie Python es tut. Mit Make hab ich leider noch nicht alllzu viel Erfahrung gesammelt, da ich gleich mit Docker eingestiegen bin.
Ich möchte etwas korrigieren: Es gibt für Python einen "Compiler" der aus einem Projekt ein Binary herstellt, das man weitergeben kann. Das Binary enthält dann eine komplette Python Umgebung mit allen Libs. Allerdings ist das dann auch sehr groß.
Dazu ergänzen wäre noch Cython, kein Compiler aber ein Transpiler, der C-Code erzeugt, welcher dann (meist transparent ohne weiteres Zutun) mit Standard-C-Compilern zu echten Machine-Code-Binaries kompiliert werden kann. Der versteht streng genommen nicht nur Python (meist leider nicht direkt in der aktuellsten Version, aber auch nur 1, 2 Subversionen hinterher hinkend), sondern Pyrex, eine Erweiterung von Python um statische Typen, was aufgrund der optionalen statischen Typenangaben in Python selbst wiederum fast schon obsolet geworden ist. Wenn man doch mal Flaschenhälse im Python-Code selbst feststellt, kann es schon helfen, einfach mal den Python-Code unverändert dadurch zu jagen, um schnelleres Laufzeit-Verhalten zu erhalten. In vielen Fällen ist das ein komplett transparenter Prozess und der interpretierte Code interagiert unbemerkt dann mit dem Binary, das aus dem C-Compiler herausgepurzelt ist. Das geht z. B. auch mit "JIT" Cython-Compilation in den Jupyter-Notebooks, durch kleine Erweiterungen dafür in den Code-Zellen, was sich meist nur durch längere Wartezeiten bei erster Ausführung bemerkbar macht (Code muss einmal transpiliert und kompiliert werden), dann aber in umso schnelleren Laufzeiten, gerade wenn viele For-Schleifen in Python selbst verwendet werden. Wenn man in manchen Fällen wirklich krasse Laufzeit-Optimierungen anstellen möchte, muss man hier und da den Python-Code noch ein wenig ändern, so dass letztendlich "C in einer anderen Syntax" da steht, so dass dann zumindest die zeitkritischen Funktionen genauso schnell wie C-Code laufen. Auch ist der ziemlich nützlich, um C++-Bibliotheken für Python zu kapseln, die nur umständlich bzw. gar nicht durch die ABIs mit den schon vorhandenen Funktionen in der Standard-Ctypes-Bibliothek aufgerufen werden können. Das ganze ist auch keine Frickelware, sondern wird vielmals in Produktion eingesetzt und ist gut gewartet und getestet. Macht daher den "langsamen" aber schnell entwickelten Python-Code auch in der Hinsicht ebenfalls super skalierbar, so dass man in vielen Fällen nahezu an die Geschwindigkeit von C herankommt. Falls das letzte µ Geschwindigkeit fehlt, kann man dann gewisse Routinen natürlich direkt in C schreiben und dann z. B. darüber auch an den bisherigen Python-Code anbinden.
Sorry, aber bin ich der Einzige, der von der Python-"Einführung" sehr enttäuscht war? Hatte mich sehr auf den Artikel gefreut, aber was mir das als Teaser-Beispielskript präsentiert wurde war einfach didaktisch "schlecht". Als Einführung in den Stil einer Sprache erwarte ich einfach mehr als ein paar numerische Variablen, Multiplikation, Funktionsaufruf und "Print". Das Beispiel ist einfach falsch gewählt! Wo bleibt ein Eindruck von Funktionsdeklaration, komplexere Datenstrukturen (Arrays, Listen, Hashes, Strukturen), Iteration, Flusskontrolle, etc.? Mir würde da noch viel mehr einfallen. Klar, das kann man nicht alles in ein Beispiel pressen, aber da sind nicht mal Ansätze vorhanden... Schade!
Ich muss mit ReactJS in Kombination mit Java arbeiten. Macht beides keinen Spaß. Mit C# war die Entwicklung früher viel einfacher und schneller. Python würde mich auch reizen. Aber leider könnte ich das nur als Hobby machen. Und wie Jan Mahn schon treffend feststellt, muss man dann schon ein konkretes Ziel haben. Sonst bleibt es beim "Hello World".
Ich warte schon auf die Ich-weiß-es-besser-Fraktion, die zum besten geben wird, dass Python völlig ungeeignet sei und 'ihre' Sprache viiiel viiiel besser ist
Genau das habe ich mir vor anklicken des Videos auch gedacht. "Python ist viel zu langsam und unbrauchbar", etc. hört man doch sehr oft. Warum eigentlich?
@@mafa5534 Ja. hört man oft. Aber meine Realität sieht so aus: Ich bin im Consulting tätig. Und habe in Projekten oft total öde und sich wiederholende Tätigkeiten zu tun. In Excel usw. Und da bastele ich mir möglichst einfache Scripts in VBA (Weil das bei Banken fast überall funktioniert) oder - wenn vorhanden - vorzugsweise was mit Python. Da spielt es keine Rolle, ob Python oder VBA im Vergleich zu Java oder C "grottenlahm" ist. Denn es ist nur entscheidend, dass es 1) deutlich schneller ist als jede manuelle Lösung und 2) dass ich dumme Tätigkeiten nicht selbst machen muss.
Ja, natürlich. Jeder hat seine Präferenzen. Ich bin derzeit auch gerade auf der Suche nach "meiner" neuen Programmiersprache für Web-Projekte. Ich habe dazu einmal alle aktuellen Programmiersprachen genommen die dafür geeignet sind und habe mir mal angeschaut wie "schön" ich den entsprechenden Programmcode finde. PHP fand ich immer grauselig, ist inzwischen aber wirklich besser geworden. Bei Python finde ich einige Konzepte, gerade wie Flask sehr schön und praktisch. Und ja, ich denke so ein Geschmack ist sehr individuell was das angeht. Ich persönlich bevorzuge stark typisierte Programmiersprachen. Gerade wenn ich beispielsweise Code-Completion sehe, war ich bisher von Python nicht sehr angetan. Das ist furchtbar und macht meinen Workflow wie ich ihn von Java oder anderen stark typisierten Programmiersprachen her kenne sehr kaputt (Ich hatte PyCharm und VSCode getestet). Ich denke alleine wenn man über solche Dinge nachdenkt, dann kann man sicherlich Stunden darüber diskutieren was nun "besser" ist oder "schlechter" ist. Im Endeffekt ist das sehr stark davon abhängig was die Person bevorzugt.
Ich bin vor 20 Jahren auf Python umgestiegen, genau weil Java so stinkend langsam war genauer [die Oberfläche] und Python mit TCL/TK über Tkinter kaum langsamer als die mit einem Compiler erstellten Programme. Und das obwohl da ein Umweg über zwei Interpreter stattfindet. Ich bin bei Python geblieben und habe Java nie wieder angeschaut.
gibt es mittlerweile gute Baukasten-Umgebungen für Spieleentwicklung? Wenn nein, was würdet ihr empfehlen wenn man sich an die Entwicklung eines RTS-Spiels wagen möchte?
Python für Spiele ist durch das eher trägere Laufzeit-Verhalten in der Standard-Auführung eher schwierig. Für kleine schnelle einfache Spiele würde ich am ehesten die Godot-Engine empfehlen, die kommt mit einer Scriptsprache (GDScript) daher, die etwas vergleichbar mit Python ist und auch die API bietet allerhand interessanter Dinge wie z. B. Websocket-Unterstützung. Wenn man unbedingt will, gibt es sogar auch dafür eine Python-Anbindung, ist aber eher nur für Spezialdinge zu empfehlen und nicht im Allgemeinen.
winget ist eine großartige Sache! Da muss man sich dann auch nicht mehr mit irgendwelchen Webseiten herumschlagen. Wie bei anderen Paketmanagern, kann man über winget die Software bequem administrieren! Zu Python bzw. Windows/Linux: Finalerweise kann man WSL nutzen 😂. Wobei ich diesbezüglich eine Frage hätte: An welcher Stelle ist dem WSL2 eine Grenze gesetzt?
WSL2 ist Linux, es ist eine VM also gibt es deshalb eigentlich keine Grenzen. Allerdings werden einzelne Systeme wie Container gestartet, also gibt es dort einfach die Grenzen, die man von Containern kennt
Guter und kompetenter Überblick. Hinsichtlich der Universalität von Python wäre noch erwähnenswert gewesen, das die Spache dank MicroPython und CircuitPython inzwischen auch immer besser direkt auf preiswerten Microcontroller Boards nutzbar ist. Damit wird das Experimentieren mit Hardware-Programmierung oft nochmal einfacher als selbst auf dem RasPi (hängt allerdings vom verwendeten Board ab). Auf der IDE-Seite kann man für den Einstieg auf dem Desktop auch IDLE benutzen, die ist im offiziellen Paket von python.org mit dabei. Für MicroPython oder CircuitPython lässt sich noch Mu verwenden, inzwischen gibt es aber auch dafür direkt passende Visual Studio Code Erweiterungen.
Die perfekte Programmiersprache? Für den schnellen Quicky sicher aber für große Projekte komplett unbrauchbar weil keine statische Code-Analyse machbar!
Hallo ich weiß es gehört nicht hierher aber ich bin echt am verzweifeln ich möchte meine Fotos vom Handy auf OTG USB Stick laden ich kann den USB-Stick finden der Stick leuchtet aber ich kann die Fotos nicht laden ich habe Files auf dem Handy können sie mir weiter helfen LG Uschi
wenn ihr ein Tutorial für Ordner-Synchronisation mittels Python habt (möglichst wenig Code? 🤪), kaufe ich das Heft. xD frage mich gerade, wie das eigentlich mit den vulnerabilities bei dem ganzen Abhängigkeiten-Wust aussieht.
Ich habe vor laaanger Zeit als Admin im UNIX Umfeld gerne sed und awk für pattern-scanning genutzt. Würde python dafür eine gute Sache oder gar Komplettersatz sein ?
Oh ja! Mit der sh Library kann man Dinge auf der Shell richtig gut parsen. Was du allerdings mit Pattern scanning meinst, weiß ich jetzt nicht, aber für Automatisierung und Scripting ist Python genial
@@deadeye1982a ich fass das jetzt mal nicht so auf, wie (bockig) es sich anhört... Was ich damit sagen wollte ist, dass es einwandfrei als Bash-Script Alternative dienen kann, was mit anderen Programmiersprachen nicht möglich ist. Ich würde es mal mit batch und PowerShell vergleichen. Batch ist okay für kleine Dinge und wenn man ne Scripting Sprache benötigt, die mehr Power hat, dann nimmt man PowerShell. So sehe ich das unter Linux auch.
@@LampJustin ich verwende Python jeden Tag. Einiges ist dann aber doch länger, als mit Shell-Scripten. Wenn man es vernünftig macht, ist es aber weitaus besser lesbar und wartbarer als Shell Scripts. Zusätzlich kann man sich der Vielfalt an Modulen und Packages bedienen. Man kann (nicht gern gesehen) Python auch shell scripte ausführen lassen. So etwas wie ein `ls | ...` würde man dann aber schon eher mit Python programmieren, als den Umweg über die Shell zu gehen. Regex wird natürlich unterstützt und falls Funktionen fehlen, kann man auch ein externes Modul verwenden (regex).
wie heiß er war den Satz endlich raus zu hauen "Apple in Schutz nehmen geht gar nicht" 🤣 💯👍 War und werde wohl nie Freund von denen. Fand den Break von 2->3 nur konsequent, besser radikal als über zig Unterversionen und deprecated zu gehen für langsamen Übergang wenn grundsätzliches geändert wird. Wer es noch unbedingt braucht soll halt 2 parallel installieren und 3 als Standard setzen
Der 60 jährige mit seiner Floppydisk kostet halt für die letzten 10 Jahre und die zukünftigen 7 Jahre deutlich weniger als ein neues Förderband oder das Update des Förderbandes (vielleicht gibt es ja den Hersteller gar nicht mehr). Und wenn eine Raketenabschussrampe auf einem Navy Schiff x-Mal mit Windows XP getestet wurde dann sind die Kosten und Risiken für die Umstellung auf Windows NT, 7,8,10,11 extrem höher als das getestete System in der Sandbox in der es sich befindet weiter laufen zu lassen. Und wenn jemand mit Linux kommt. Hier sind die Risiken eines Updates eher noch höher weil weniger Updates gemacht werden und damit auch weniger Problemfälle berichtet und korrigiert werden.
Also ich kenne auch noch so einige SPS-Steuerungen bzw. CNC-Maschinen aus den 90ern, die immer noch im produktiven Einsatz sind. Da gibt es einfach nur die Möglichkeit per Floppy Disk eine Programmierung wieder herzustellen bzw. anzupassen. Ich finde soetwas auch überhaupt nicht schlimm oder wie ein "Leben in der IT-Steinzeit". Never chance a running system! Solange es das tut, was es soll und es keinen Grund zur Erneuerung gibt, soll die Maschine halt laufen bis sie auseinander fällt.
Der Grund warum Python so erfolgreich wurde ist Java. Zu kompliziert und nicht scriptbar. Leider konnte sich Groovy als besseres Java nicht durchsetzen.
Genau. Noch etwas schlechter ist nur ein Hello-World C-Programm mit der WIN-API geschrieben. Wenn man zwei oder drei vollgeschriebene Seiten für solch ein Unternehmen braucht, dann stimmt etwas nicht. Das ist dann nicht mehr als das gleiche Programm in Assembler. Und wenn für ein Programm in einer Hochsprache die gleiche Anzahl Codezeilen wie in Assembler gebraucht werde, ist auch ebenso irgendwas am ganzen System falsch. Ich sage nur Editor.
Ich arbeite viel mit C++ sowohl als auch mit Python. Was Python für mich so eine spannende Sprache macht ist:
- Ständige Weiterentwicklung. Bei C++ passiert in letzter Zeit auch recht viel. Es dauert aber immer gefühlt ein paar Jahre bis die neuen Standards im Produktionsumfeld ankommen. Bei Python brauch ich meist nur die neue Version.
- Viele, einfach zu verwenden und nach installierbare Bibliotheken. Für fast jeden Anwendungsfall ist etwas dabei.
- Kombinierbarkeit mit C/C++. Man kann relativ einfach existierende C/C++ Bibliotheken in Python verwenden. Auch ein Grund warum es so viele mächtige Python Module gibt (z.B. für Bildmanipulation). Oder auch Umgekehrt. Es lässt sich Python relativ leicht in eine C++ Applikation integrieren. Z.B. für eine Erweiterungsschnittelle, bei der der Anwender eigene Erweiterungsmodule in Python schreiben kann.
- Und vieles mehr, was mir gerade nicht in den Sinn kommt.
Ich bin sehr gespannt auf GraalVM. Weil mit C kann Mann ja alles aber Menschen haben keine Endlose Aufmerksamkeit.
C++, Python, R sind die Sprachen, die ich nutze und liebe :)
das war lehrreich!!! vielen dank, wird gleich mal nachgeschaut wie sich das so anfühlt...
Richtig gesagt: Wichtig ist ein Projekt, das man angehen sollte, während die Programmiersprache lediglich ein Tool hierfür bleiben sollte.
Für die Motivation ist das sicherlich gut. Man eckt dann aber bei bestimmten Problemen schnell an, wenn man die Sprache nicht kennt. Das Wissen, wie dieses Problem in einer anderen Sprache gelöst wird hilft gelegentlich, aber gelegentlich eben auch nicht.
@@agentomat Ich kann mich natürlich irren, aber vielleicht geht es letztlich um die "Programmarchitektur", die in vielen Sprachen ähnlich ist. Dazu gehe ich zur jeweiligen Sprache ein Tutorial (YT-Video) durch, mit meinem Projekt im Hinterkopf. Die Programmumsetzung stellt sich dann oft von selbst ein, vielleicht nicht immer OOP, aber funktional geht immer.
@@Lyrik-Klinge Ok, da hast du natürlich recht. Ich erinnere mich, dass ich an der Matplotlib mit numpy mal verzweifelt war, weil die ein bestimmtes Datenformat wollte und das Array dazu eine bestimmte "Drehung" bzw. Dimension haben musste. Ich glaub ich wollte Aktienkurse plotten und irgendetwas damit machen. Bei Arrays und dem Zusammenkopieren etc. hat Python ja so seine eigene Syntax, um nicht "syntactic suger" zu sagen.
Noch etwas stärker konnte ich solche Effekte bei einem Freund beobachten, der sich am Arduino probierte und wo ich langsam sah, dass er das loop-Konzept nicht so verstand und langsam Dinge machen wollte, die die Bibliotheken so nicht hergaben oder verschiedene zueinander inkompatible Bibliotheken einband.
@@agentomat Das stimmt natürlich, dass die Bibliotheken einem das Leben enorm erleichtern können, vor allem wenn die Funktionen darin in C geschrieben wurden. Man spart sich Tipparbeit und reduziert dadurch mögliche Fehlerquellen.
Mit numpy kenne ich mich nur am Rande aus und selbst habe ich bisher wenig in Python programmiert.
Mit der Version 7.x und OOP habe ich wieder PHP für mich entdeckt, das von vielen Programmieren verschrien ist, was für 3.x und 4.x auch sicherlich zutrifft.
Danke für den fundierten Einblick!
Man kann in Python mit PyInstaller binäre Bundles inkl. aller verwendeter Bibliotheken erstellen. Das ist sehr praktisch, wenn man seine Skripte an andere weitergeben möchte, ohne das der ganze Zoo eins zu eins nachinstalliert werden muss. Eve Online ist z.b. auch in Python programmiert.
Wilhelm hat eine gute Stimme (die beste der 4), der kann gerne öfter mitmachen.
Es gibt in der Standardinstallation das Konzept der virtuellen Environments, mit dem man sehr einfach parallel Ablaufumgebungen einrichten kann, die projektbezogen nicht nur verschiedene Interpreterversionen, sondern auch die verwendeten Libraries verwalten können.
Genau, "pyenv"
Ich würde den "Windows Editor" jetzt nicht unter Text Editor zählen, eher als Text Feld. Nur das es weniger Funktionen als ein Text Feld hat. Normalerweise kann man in Text Feldern ja mehr als einmal rückgängig machen.
Mit ist auch kein Text Editor bekannt, der kein Syntax Highlighting kann, nicht Mal aus der Kommandozeile gibt's so was heutzutage noch.
Ich finde die Pythonsyntax unglaublich unpraktisch: Nicht sichtbare Zeichen sollten nie Steuerzeichen sein! Ich denke jeder kennt es dass Leerzeichen statt ein Tab das Program nicht laufen lässt und im Texteditor sieht man den Fehler einfach nicht. Noch schlimmer ist, dass man den eigenen Algorithmus komplett zerstören kann, wenn man einen Algorithmus programmiert hat und diesen mit einer Schleife oder eine Funktionen umrunden will und dabei nur eine Zeile vergisst einzurücken. Wenn dieser Fehler dann erst nach ein paar Tagen auffällt kann man am Code nicht mehr erkennen, was man eigentlich machen wollte.
Abgesehen davon ist es natürlich eine super praktische Sprache für kleinere schnell gecodete Anwendungen.
Beginner's failure. Einfangers Sache?
Beschwere dich mal lieber über Make-Dateien. Deklarativ und Imperativ in einem. Komisch, dass das kaum kritisiert wird. Verwende eine vernünftige IDE und dann passiert dir das nicht mehr.
@@deadeye1982a Naja, die Sache ist die, wenn du eh eine vernünftige IDE verwendest, dann spricht auch nichts gegen eine Compilerhochsprache wie Java, Golang oder sogar C(++). Die richtige IDE nimmt dir ja alle Fallstricke ab und kann heutzutage sogar einige Aufgaben selber coden.
Python ist für das schnelle einfache Coden gedacht und genau darin sehe ich auch das Problem mit nicht sichtbaren Steuerzeichen in der Syntax.
Ich verstehe nicht, wie eine Sprache mit diesem Manko so derart durchstarten konnte wie Python es tut.
Mit Make hab ich leider noch nicht alllzu viel Erfahrung gesammelt, da ich gleich mit Docker eingestiegen bin.
Es wäre super noch einen Einblick in Data Science mit Schwerpunkt auf Data Engineering zu bekommen :0. Danke für das Video!
Ich möchte etwas korrigieren: Es gibt für Python einen "Compiler" der aus einem Projekt ein Binary herstellt, das man weitergeben kann. Das Binary enthält dann eine komplette Python Umgebung mit allen Libs. Allerdings ist das dann auch sehr groß.
Du meinst PyInstaller. Es gibt noch eine Art C++ Transpiler: nuitka
Dazu ergänzen wäre noch Cython, kein Compiler aber ein Transpiler, der C-Code erzeugt, welcher dann (meist transparent ohne weiteres Zutun) mit Standard-C-Compilern zu echten Machine-Code-Binaries kompiliert werden kann. Der versteht streng genommen nicht nur Python (meist leider nicht direkt in der aktuellsten Version, aber auch nur 1, 2 Subversionen hinterher hinkend), sondern Pyrex, eine Erweiterung von Python um statische Typen, was aufgrund der optionalen statischen Typenangaben in Python selbst wiederum fast schon obsolet geworden ist.
Wenn man doch mal Flaschenhälse im Python-Code selbst feststellt, kann es schon helfen, einfach mal den Python-Code unverändert dadurch zu jagen, um schnelleres Laufzeit-Verhalten zu erhalten. In vielen Fällen ist das ein komplett transparenter Prozess und der interpretierte Code interagiert unbemerkt dann mit dem Binary, das aus dem C-Compiler herausgepurzelt ist. Das geht z. B. auch mit "JIT" Cython-Compilation in den Jupyter-Notebooks, durch kleine Erweiterungen dafür in den Code-Zellen, was sich meist nur durch längere Wartezeiten bei erster Ausführung bemerkbar macht (Code muss einmal transpiliert und kompiliert werden), dann aber in umso schnelleren Laufzeiten, gerade wenn viele For-Schleifen in Python selbst verwendet werden.
Wenn man in manchen Fällen wirklich krasse Laufzeit-Optimierungen anstellen möchte, muss man hier und da den Python-Code noch ein wenig ändern, so dass letztendlich "C in einer anderen Syntax" da steht, so dass dann zumindest die zeitkritischen Funktionen genauso schnell wie C-Code laufen. Auch ist der ziemlich nützlich, um C++-Bibliotheken für Python zu kapseln, die nur umständlich bzw. gar nicht durch die ABIs mit den schon vorhandenen Funktionen in der Standard-Ctypes-Bibliothek aufgerufen werden können.
Das ganze ist auch keine Frickelware, sondern wird vielmals in Produktion eingesetzt und ist gut gewartet und getestet. Macht daher den "langsamen" aber schnell entwickelten Python-Code auch in der Hinsicht ebenfalls super skalierbar, so dass man in vielen Fällen nahezu an die Geschwindigkeit von C herankommt. Falls das letzte µ Geschwindigkeit fehlt, kann man dann gewisse Routinen natürlich direkt in C schreiben und dann z. B. darüber auch an den bisherigen Python-Code anbinden.
Python am Morgen vertreibt Kummer und Sorgen.
Sorry, aber bin ich der Einzige, der von der Python-"Einführung" sehr enttäuscht war? Hatte mich sehr auf den Artikel gefreut, aber was mir das als Teaser-Beispielskript präsentiert wurde war einfach didaktisch "schlecht". Als Einführung in den Stil einer Sprache erwarte ich einfach mehr als ein paar numerische Variablen, Multiplikation, Funktionsaufruf und "Print". Das Beispiel ist einfach falsch gewählt! Wo bleibt ein Eindruck von Funktionsdeklaration, komplexere Datenstrukturen (Arrays, Listen, Hashes, Strukturen), Iteration, Flusskontrolle, etc.? Mir würde da noch viel mehr einfallen. Klar, das kann man nicht alles in ein Beispiel pressen, aber da sind nicht mal Ansätze vorhanden... Schade!
Ich muss mit ReactJS in Kombination mit Java arbeiten. Macht beides keinen Spaß. Mit C# war die Entwicklung früher viel einfacher und schneller. Python würde mich auch reizen. Aber leider könnte ich das nur als Hobby machen. Und wie Jan Mahn schon treffend feststellt, muss man dann schon ein konkretes Ziel haben. Sonst bleibt es beim "Hello World".
Ich warte schon auf die Ich-weiß-es-besser-Fraktion, die zum besten geben wird, dass Python völlig ungeeignet sei und 'ihre' Sprache viiiel viiiel besser ist
Genau das habe ich mir vor anklicken des Videos auch gedacht. "Python ist viel zu langsam und unbrauchbar", etc. hört man doch sehr oft. Warum eigentlich?
@@mafa5534 Ja. hört man oft. Aber meine Realität sieht so aus: Ich bin im Consulting tätig. Und habe in Projekten oft total öde und sich wiederholende Tätigkeiten zu tun. In Excel usw. Und da bastele ich mir möglichst einfache Scripts in VBA (Weil das bei Banken fast überall funktioniert) oder - wenn vorhanden - vorzugsweise was mit Python. Da spielt es keine Rolle, ob Python oder VBA im Vergleich zu Java oder C "grottenlahm" ist. Denn es ist nur entscheidend, dass es 1) deutlich schneller ist als jede manuelle Lösung und 2) dass ich dumme Tätigkeiten nicht selbst machen muss.
Ja, natürlich. Jeder hat seine Präferenzen. Ich bin derzeit auch gerade auf der Suche nach "meiner" neuen Programmiersprache für Web-Projekte. Ich habe dazu einmal alle aktuellen Programmiersprachen genommen die dafür geeignet sind und habe mir mal angeschaut wie "schön" ich den entsprechenden Programmcode finde. PHP fand ich immer grauselig, ist inzwischen aber wirklich besser geworden. Bei Python finde ich einige Konzepte, gerade wie Flask sehr schön und praktisch.
Und ja, ich denke so ein Geschmack ist sehr individuell was das angeht. Ich persönlich bevorzuge stark typisierte Programmiersprachen. Gerade wenn ich beispielsweise Code-Completion sehe, war ich bisher von Python nicht sehr angetan. Das ist furchtbar und macht meinen Workflow wie ich ihn von Java oder anderen stark typisierten Programmiersprachen her kenne sehr kaputt (Ich hatte PyCharm und VSCode getestet).
Ich denke alleine wenn man über solche Dinge nachdenkt, dann kann man sicherlich Stunden darüber diskutieren was nun "besser" ist oder "schlechter" ist. Im Endeffekt ist das sehr stark davon abhängig was die Person bevorzugt.
Mir ist das alles egal. Ich nutze Python, weil Python meine Probleme löst. Diskussion mit den Hatern beendet.
Ich bin vor 20 Jahren auf Python umgestiegen, genau weil Java so stinkend langsam war genauer [die Oberfläche] und Python mit TCL/TK über Tkinter kaum langsamer als die mit einem Compiler erstellten Programme. Und das obwohl da ein Umweg über zwei Interpreter stattfindet.
Ich bin bei Python geblieben und habe Java nie wieder angeschaut.
gibt es mittlerweile gute Baukasten-Umgebungen für Spieleentwicklung? Wenn nein, was würdet ihr empfehlen wenn man sich an die Entwicklung eines RTS-Spiels wagen möchte?
Python für Spiele ist durch das eher trägere Laufzeit-Verhalten in der Standard-Auführung eher schwierig. Für kleine schnelle einfache Spiele würde ich am ehesten die Godot-Engine empfehlen, die kommt mit einer Scriptsprache (GDScript) daher, die etwas vergleichbar mit Python ist und auch die API bietet allerhand interessanter Dinge wie z. B. Websocket-Unterstützung. Wenn man unbedingt will, gibt es sogar auch dafür eine Python-Anbindung, ist aber eher nur für Spezialdinge zu empfehlen und nicht im Allgemeinen.
@@bestdani danke, woanders wurde auch godot empfohlen, scheint anfängerfreundlicher zu sein.
winget ist eine großartige Sache! Da muss man sich dann auch nicht mehr mit irgendwelchen Webseiten herumschlagen. Wie bei anderen Paketmanagern, kann man über winget die Software bequem administrieren! Zu Python bzw. Windows/Linux: Finalerweise kann man WSL nutzen 😂. Wobei ich diesbezüglich eine Frage hätte: An welcher Stelle ist dem WSL2 eine Grenze gesetzt?
WSL2 ist Linux, es ist eine VM also gibt es deshalb eigentlich keine Grenzen. Allerdings werden einzelne Systeme wie Container gestartet, also gibt es dort einfach die Grenzen, die man von Containern kennt
Guter und kompetenter Überblick. Hinsichtlich der Universalität von Python wäre noch erwähnenswert gewesen, das die Spache dank MicroPython und CircuitPython inzwischen auch immer besser direkt auf preiswerten Microcontroller Boards nutzbar ist. Damit wird das Experimentieren mit Hardware-Programmierung oft nochmal einfacher als selbst auf dem RasPi (hängt allerdings vom verwendeten Board ab).
Auf der IDE-Seite kann man für den Einstieg auf dem Desktop auch IDLE benutzen, die ist im offiziellen Paket von python.org mit dabei. Für MicroPython oder CircuitPython lässt sich noch Mu verwenden, inzwischen gibt es aber auch dafür direkt passende Visual Studio Code Erweiterungen.
Die perfekte Programmiersprache? Für den schnellen Quicky sicher aber für große Projekte komplett unbrauchbar weil keine statische Code-Analyse machbar!
TypeHints gibt es für Python schon eine halbe Ewigkeit und die TypeChecker auch: mypy z.B.
Hallo ich weiß es gehört nicht hierher aber ich bin echt am verzweifeln ich möchte meine Fotos vom Handy auf OTG USB Stick laden ich kann den USB-Stick finden der Stick leuchtet aber ich kann die Fotos nicht laden ich habe Files auf dem Handy können sie mir weiter helfen LG Uschi
wenn ihr ein Tutorial für Ordner-Synchronisation mittels Python habt (möglichst wenig Code? 🤪), kaufe ich das Heft. xD
frage mich gerade, wie das eigentlich mit den vulnerabilities bei dem ganzen Abhängigkeiten-Wust aussieht.
Ich habe vor laaanger Zeit als Admin im UNIX Umfeld gerne sed und awk für pattern-scanning genutzt. Würde python dafür eine gute Sache oder gar Komplettersatz sein ?
Oh ja! Mit der sh Library kann man Dinge auf der Shell richtig gut parsen. Was du allerdings mit Pattern scanning meinst, weiß ich jetzt nicht, aber für Automatisierung und Scripting ist Python genial
Bitte nenne mir mal eine Sprache, die das nicht kann. Python ist als Ersatz für C und die Shell entstanden. Es kommt aus dem administrativen Umfeld.
@@deadeye1982a ich fass das jetzt mal nicht so auf, wie (bockig) es sich anhört...
Was ich damit sagen wollte ist, dass es einwandfrei als Bash-Script Alternative dienen kann, was mit anderen Programmiersprachen nicht möglich ist. Ich würde es mal mit batch und PowerShell vergleichen. Batch ist okay für kleine Dinge und wenn man ne Scripting Sprache benötigt, die mehr Power hat, dann nimmt man PowerShell. So sehe ich das unter Linux auch.
@@LampJustin ich verwende Python jeden Tag. Einiges ist dann aber doch länger, als mit Shell-Scripten. Wenn man es vernünftig macht, ist es aber weitaus besser lesbar und wartbarer als Shell Scripts. Zusätzlich kann man sich der Vielfalt an Modulen und Packages bedienen. Man kann (nicht gern gesehen) Python auch shell scripte ausführen lassen. So etwas wie ein `ls | ...` würde man dann aber schon eher mit Python programmieren, als den Umweg über die Shell zu gehen. Regex wird natürlich unterstützt und falls Funktionen fehlen, kann man auch ein externes Modul verwenden (regex).
wie heiß er war den Satz endlich raus zu hauen "Apple in Schutz nehmen geht gar nicht" 🤣 💯👍 War und werde wohl nie Freund von denen.
Fand den Break von 2->3 nur konsequent, besser radikal als über zig Unterversionen und deprecated zu gehen für langsamen Übergang wenn grundsätzliches geändert wird. Wer es noch unbedingt braucht soll halt 2 parallel installieren und 3 als Standard setzen
Der 60 jährige mit seiner Floppydisk kostet halt für die letzten 10 Jahre und die zukünftigen 7 Jahre deutlich weniger als ein neues Förderband oder das Update des Förderbandes (vielleicht gibt es ja den Hersteller gar nicht mehr). Und wenn eine Raketenabschussrampe auf einem Navy Schiff x-Mal mit Windows XP getestet wurde dann sind die Kosten und Risiken für die Umstellung auf Windows NT, 7,8,10,11 extrem höher als das getestete System in der Sandbox in der es sich befindet weiter laufen zu lassen. Und wenn jemand mit Linux kommt. Hier sind die Risiken eines Updates eher noch höher weil weniger Updates gemacht werden und damit auch weniger Problemfälle berichtet und korrigiert werden.
Also ich kenne auch noch so einige SPS-Steuerungen bzw. CNC-Maschinen aus den 90ern, die immer noch im produktiven Einsatz sind. Da gibt es einfach nur die Möglichkeit per Floppy Disk eine Programmierung wieder herzustellen bzw. anzupassen.
Ich finde soetwas auch überhaupt nicht schlimm oder wie ein "Leben in der IT-Steinzeit". Never chance a running system! Solange es das tut, was es soll und es keinen Grund zur Erneuerung gibt, soll die Maschine halt laufen bis sie auseinander fällt.
Quatsch, ich habe Python gerne aber die perfekte Sprache ist natürlich SmallTalk mit etwas wie GraalVM würde es auch schnell sein konnen.
Mich würden die Öko-Smartphones mehr interessieren.
Wurden erst kürzlich in c't uplink 41.5 thematisiert.
"Rasspieh" 😬🙈
Der Grund warum Python so erfolgreich wurde ist Java. Zu kompliziert und nicht scriptbar. Leider konnte sich Groovy als besseres Java nicht durchsetzen.
Zustimmung. Groovy war geil!
Genau. Noch etwas schlechter ist nur ein Hello-World C-Programm mit der WIN-API geschrieben. Wenn man zwei oder drei vollgeschriebene Seiten für solch ein Unternehmen braucht, dann stimmt etwas nicht. Das ist dann nicht mehr als das gleiche Programm in Assembler. Und wenn für ein Programm in einer Hochsprache die gleiche Anzahl Codezeilen wie in Assembler gebraucht werde, ist auch ebenso irgendwas am ganzen System falsch. Ich sage nur Editor.