Einfach (statische oder dynamische) Bibliotheken bauen, zur Not auch als Header-only Templates.
Ein "Stück" Daten als Teil eines Größeren.
Egal ob in Dateien, Netzwerkpaketen, im RAM, oder sonstwo.
Nahezu jedes Binärformat hat irgendwelche Chunks.
Also der Senf in diesen kleinen Tütchen in Nattoverpackungen ist durchweg DEUTLICH schärfer, als die "scharfen" Sorten aus dem Glas / Becher in Deutschland. Aber natürlich kannst eu den auch essen.
Und Dashi ist was völlig anderes als Sojasoße. Dann doch lieber gänzlich ohne.
Wenn rohe Wachteleier hast, kannst du das auch drüber kippen. Schmeckt super zum Natto auf Reis zum Frühstück.
Ändere die Compilereinstellungen!
Releasebuild, Optimiert, Stripping ist das wichtigste, usw.
Dann bist du bei 2 bis 5 Megabyte.
Weiter kannst du mit einm Laufzeitpacker wie UPX kommen, auf unter 1 MB bei kleineren Programmen.
Aber wie gesagt: Strippe erstmal alle unnötigen Symbole von der EXE-Datei!
Die findest du auf python.org unter "Download".
Ist Stand heute die 3.9.1.
Python ist kein Framework, sondern eine Programmiersprache mitsamt üppiger Standardbibliothek.
Ja, Python läuft sehr stabil und zuverlässig, und man kann viele Dinge out-of-the-box mit der Standardbibliothek erschlagen.
Es gibt m. M. n. nur zwei riesige Probleme:
- Sobald man Spezialfälle hat, reicht die Standardbibliothek nicht mehr aus und man muss Drittmodule nutzen, oder selbst etwas schreiben. (z. B. der HTML-Parser von Python ist zwar "nett", aber früher oder später braucht man etwas "richtiges")
- Und was noch viel schlimmer ist, dass Python für Dinge mit vielen Rechenoperationen leider völlig ungeeignet ist. Kann man beim Prototyping zwar verschmerzen, aber ein Faktor von 100 bis 1000 im Vergleich zu C/C++ ist dann doch schon etwas zu happig, für den Produktiveinsatz.
Von diesen beiden Punkten abgesehen mag ich Python sehr gern, und nutze es schon seit den 90ern.
Die Qualität des Interpreters, bzw. Compilers ist sehr hoch und die Sprache an sich ist wirklich mächtig und bietet viele Features in einer Summe, die man sonst vergeblich sucht.
Trotzdem muss man immer im Hinterkopf haben, was Python kann, und noch wichtiger, was es eben NICHT kann.
Wenn man das bedenkt, kommt man mit Python durchaus sehr weit!
Sehr einfach.
Mach ich oft so, weil ich keine Lust auf Bloatware habe. Dauert im Schnitt 30 Minuten from Scratch mit C++.
Funktionen sollten grundsätzlich so kurz wie möglich sein, so wenig Parameter wie nötig entgegen nehmen, und exakt eine einzige Aufgabe erledigen.
Also ja, du solltest den Codeblob innerhalb deiner main()-Funktion aufräumen und in einzelne Funktionen auslagern.
Im Moment ist der Code eine Katastrophe und nicht verständlich, ohne a) die API zu kennen und b) den gesamten Code innerhalb von main() zu lesen.
Ein Refactoring ist also durchaus angebracht.
Ich empfehle dir die Bücher "Clean Code", "The Art of Beautiful Code" und evtl. noch "Weniger schlecht Programmieren". Die ersten beiden sind deutlich besser, aber auch das zuletztgenannte enthält für Einsteiger viele wertvolle Infos.
Es gibt noch weitere sehr gute Bücher von Herb Sutter uvm. zum Thema Refactoring und allgemein Codequalität, aber die oben genannten Drei decken erst mal das ab, was jeder entwickler "eigentlich" wissen sollte.
Viel Erfolg! :)
Meine ersten Viren habe ich als Schüler geschrieben, um zu verstehen, wie so etwas funktioniert.
Im Studium war es sogar Teil des offiziellen Lehrplans.
Heute schreibe ich Schadsoftware, um neue Angriffsvektoren oder das Ausnutzen von Schwachstellen zu demonstrieren.
Nichts davon war oder ist illegal, im Gegenteil! Ohne Leute wie mich, die z. B. Rootkits aus Speicherdumps von Hardwarefirewalls rauspopeln und genauer untersuchen, wären viele Firmen aufgeschmissen.
Um eine Krankheit bekämpfen zu können, muss man sie verstehen. Und um sie verstehen zu können, muss man sie untersuchen. Und zur Untersuchung gehört zwangsläufig auch, eigene Experimente zu schreiben.
Nur mit Trockenübungen und theoretischem Wissen, hat man keine Chance!
Fazit: Ich schreibe Malware, um die Welt sicherer zu machen. Dass ich die dann aber natürlich NICHT verbreite, erklärt sich von selbst.
Der M1 ist technisch zwar überlegen, aber in deinem speziellen Fall wirst du Windows in einer VM laufen lassen wollen, und da kommst du de facto um Intel nicht herum, es sei denn, du willst für en Rest deines Studiums frickeln und Zeit mit dem Lösen unnötiger Probleme ferbraten.
Fazit: M1 ist deutlich gesser, aber für deine Anwendungsfälle leider total ungeeignet. Wenn du ne Win VM nutzen willst, MUSST du auf Intel setzen.
Python ist ideal für Prototyping oder als komfortabler Wrapper für Drittbibliotheken.
Wenn du aber wirklich selbst ML-Projekte umsetzen willst, die unvergleichbar schneller und effizienter als in Python laufen, dann ist C++ die Sprache der Wahl.
Fazit: Ein glasklares Ja! Wenn du auf dem Gebiet weiter kommen willst, kommst du zwangsweise um C++ gar nicht herum!
Bücher sind immer umfangreicher, vorausgesetzt du nimmst keinen 200-Seiten-Lappen.
Online-Kurse und Video-Tutorials sind für Einsteiger sicherlich angenehmer, aber vermitteln sicherlich nur einen Bruchteil eines guten Lehrbuches.
Deshalb musst du dich entscheiden: Relativ schnell Mittelmaß mit Online-Kursen, oder langfristig Profi mit Fachbüchern.
Bis auf einzelne Wörter, die ähnlich klingen, weil sie einen gemeinsamen Ursprung im Chinesischen haben, gibt es faktisch keine Gemeinsamkeiten.
Das ist ganz allgemein ein Problem mit allen In-Ear-Kopfhörern.
Leute, die die zu viel nutzen, bekommen Pilzbefall im Ohr. Frag mal deinen Ohrenarzt.
Etwas unhygienischeres als In-Ear-Kopfhörer gibt es kaum.
Das ist Quatsch.
Man kann zwar grob den ungefähren Standort ermitteln, aber der liegt gerne mal einige hundert Kilometer daneben.
Mach ich seit 25 Jahren so, vor allem zur Pollensaison.
In DE wird man dabei seit jeher schief angeguckt. Ist mir aber egal.