Seite 1 von 1
Python oder C# ?
Verfasst: Sonntag 9. Januar 2022, 17:47
von nostago
Hallo,
wir sind uns so unschlüssig ob wir besser zu C# wechseln sollten, scheinbar ist das erstellen von .exe Dateien über Python schon umständlicher als über C#.
Korrigiert mich wenn ich mich irre. Vom lernen finden wir (Mein Sohn und ich) Python sehr angenehm. Aber das Compilieren scheint schwierig zu sein.
Was sagt ihr als Fachleute dazu?
Vielen Dank!
Re: Python oder C# ?
Verfasst: Sonntag 9. Januar 2022, 17:53
von sparrow
Es ist eher ungewöhnlich Python-Programme als .exe Datei auszuliefern. Genaugenommen schließt man damit auch alle Benutzer aus, die nicht Windows verwenden, sonst das Programm aber problemlos benutzen könnten.
Da wird auch nichts kompiliert. Da wird einfach nur der Python-Interpreter und dein Script + Abhängigkeiten in ein selbstentpackendes Archiv gesteckt, dass beim Start entpackt wird und dann den darin enthaltenen Interpreter mit deinem Script startet. Das ist jetzt nicht das, was ich als "Kompilieren" verstehen würde. Auch wenn am Ende in der Regel die .pyc statt der .py Dateien im den Archiv landen.
Re: Python oder C# ?
Verfasst: Sonntag 9. Januar 2022, 17:58
von Sirius3
Das schöne an Python ist, dass man sich um das Compilieren nicht kümmern muß, weil das der Pythonaufruf selbst macht. Für was wollt ihr denn eine .exe-Datei haben?
Re: Python oder C# ?
Verfasst: Sonntag 9. Januar 2022, 18:04
von nostago
Danke für die schnellen Antworten,
wir möchten eine Sprache lernen die nicht allzu schwer ist um Windows Anwendungen zu programmieren.
Vor vielen Jahren habe ich PHP und MySQL geschrieben, aber einiges vergessen.
Die Sprache sollte nicht zu schwer zum erlernen sein, ich nenne da mal Java die ich nun wirklich nicht lernen möchte
Dann sollte man also eher zu C# wechseln?
Re: Python oder C# ?
Verfasst: Sonntag 9. Januar 2022, 18:08
von Sirius3
Was heißt denn "Windows Anwendungen"?
Re: Python oder C# ?
Verfasst: Sonntag 9. Januar 2022, 18:12
von nostago
Sirius3 hat geschrieben: Sonntag 9. Januar 2022, 17:58
Das schöne an Python ist, dass man sich um das Compilieren nicht kümmern muß, weil das der Pythonaufruf selbst macht.
Das verstehe ich nicht so ganz, gillt das auch für Windows?
Re: Python oder C# ?
Verfasst: Sonntag 9. Januar 2022, 18:19
von sparrow
Ja*.
* (möglicherweise gibt es Implementation der Sprache, die das nicht tun, aber für das was du als "Python" kennst, gilt das nicht)
Re: Python oder C# ?
Verfasst: Sonntag 9. Januar 2022, 18:29
von __deets__
C# und Java sind quasi Zwillinge, separiert bei der Geburt. Oder eher nachdem MS verklagt wurde von SUN, seine Java-Technologie nicht zu pervertieren… wenn dir Java nicht zusagt, wird C# das kaum verbessern.
Die EXE-Problematik nervt, aber letztlich ist das “nur” eine Paketierungssache. Kompiliert wird da nicht wirklich was, es werden nur die byte Code Dateien genommen, statt direkt lesbarem Code. So signifikant ist das aber nicht, es ist immer noch der Python Interpreter.
Re: Python oder C# ?
Verfasst: Sonntag 9. Januar 2022, 18:40
von nezzcarth
nostago hat geschrieben: Sonntag 9. Januar 2022, 18:04
wir möchten eine Sprache lernen die nicht allzu schwer ist um Windows Anwendungen zu programmieren.
Windows vermittelt einem meiner Meinung nach teilweise den Eindruck, ein "echtes Programm" sei nur etwas, das eine grafische Oberfläche hat und als Exe-Datei daher kommt. Beides ist aber nicht korrekt und als Entwickler*in sollte man sich, finde ich, von diesen Vorstellungen lösen, ansonsten wird man mit Python, aber auch anderen Technologien möglicherweise immer etwas fremdeln. Man kann auch erfolgreich Software für Windows schreiben, ohne, dass etwas kompiliert wird und eine Exe-Datei dabei herauskommt.
Re: Python oder C# ?
Verfasst: Sonntag 9. Januar 2022, 20:16
von noisefloor
Hallo,
ich finde generell das Entscheidungskriterium etwas befremdlich, dass möglichst einfach eine .EXE Datei am Ende stehen soll. Damit fallen ja alle interpretierenden Sprache inkl. Python, per so schon mal weg.
Per se kann man auch unter Windows den Code jeder interpretierenden Sprache ausführen, wenn der Interpreter bzw. die Laufzeitumgebung installiert ist. Ist bei Python ja der Fall.
Gruß, noisefloor
Re: Python oder C# ?
Verfasst: Sonntag 9. Januar 2022, 20:22
von __blackjack__
Wobei witzigerweise C# zwar EXE-Dateien erzeugt, und damit diesen Mythos nur EXE ist das einzig wahre aufrecht erhält, das aber letztlich gar keine echten EXE-Dateien sind. Das einzige was die *wirklich* können, ist dem Benutzer ausgeben, dass sie ohne .NET-Laufzeitumgebung nicht funktionieren. Um wirklich laufen zu können, brauchen sie das .NET-Ökosystem auf dem Rechner installiert. Also das Gegenstück zu Java's JVM-Laufzeitumgebung. Wie __deets__ schon anmerkte sind C# und Java so etwas wie Zwillinge.
Re: Python oder C# ?
Verfasst: Montag 10. Januar 2022, 08:37
von nostago
Vielen herzlichen Dank für die Zahlreichen Antworten,
ich gebe zu einiges nicht verstanden zu haben, aber auch das hat geholfen zu verstehen das ich noch am Anfang stehe und offen bleiben muss.
Es muss nicht unbedingt eine .exe am Ende stehen, aber ein Programm welches auf jedem Windows Rechner läuft. Wenn es ein Paket gibt in dem alles vorhanden ist
und läuft ohne zuvor Python runterladen zu müssen ist es absolut in Ordnung, nur wie packe ich sowas?
Parallel zu Python haben wir uns nun die ersten Videos zu C# angesehen und nur wenige Unterschiede fest gestellt, wir fahren wohl zweigleisig bis sich etwas,
wie auch immer in unseren Vordergrund stellt.
Grüße und Dank
Re: Python oder C# ?
Verfasst: Freitag 14. Januar 2022, 12:10
von wlfmario
Wenn es ein Paket gibt in dem alles vorhanden ist
und läuft ohne zuvor Python runterladen zu müssen ist es absolut in Ordnung, nur wie packe ich sowas?
Evtl. hilft das etwas !
https://www.youtube.com/watch?v=U1nMigAIbH0&t=4s
Re: Python oder C# ?
Verfasst: Sonntag 16. Januar 2022, 08:20
von burli
Wird .NET eigentlich standardmäßig mit Windows 10 mitgeliefert bzw kann man C# Programme einfach so auf Windows ausführen?
Re: Python oder C# ?
Verfasst: Sonntag 16. Januar 2022, 12:58
von rogerb
@burli,
.Net benötigt eine Laufzeitumgebung.
Wenn man eine Applikation in C# schreibt und diese als fertige Applikation bereitstellen möchte, kann man entscheiden, ob diese völlig eigenständig lauffähig sein soll oder ob sie die zusätzliche Installation der Laufzeitumgebung benötigen soll. Das kann man in den Projekteinstellungen angeben. Es gibt da auch viele Einstellmöglichkeiten und Varianten.
Hier ist eine Dokumentation dazu:
https://docs.microsoft.com/en-us/dotnet/core/deploying/
Also einfache Antwort: Ja, man hat das fertige Programm, wenn es mit den richtigen Einstellungen erstellt wurde eigenständig laufen lassen.
Wird .NET eigentlich standardmäßig mit Windows 10 mitgeliefert
Nein eigentlich nicht. Aber da viele Windows Applikationen diese Laufzeitumgebung benötigen, kann es durchaus sein, dass sie bereits installiert wurde.
Re: Python oder C# ?
Verfasst: Sonntag 16. Januar 2022, 14:01
von burli
rogerb hat geschrieben: Sonntag 16. Januar 2022, 12:58
Nein eigentlich nicht.
Wundert mich.
Ich weiß, dass man für C# eine Laufzeitumgebung braucht. Weil ich wenig mit Windows zu tun habe wusste ich jetzt nur nicht, ob die schon "ab Werk" mitgeliefert wird.
In dem Fall ist C# für nostago eigentlich auch keine Option, weil genau wie bei Python (oder Java) eine Laufzeitumgebung installiert sein muss.
Wenn man sicherstellen will, dass ein Programm auf jedem (Windows) Rechner läuft, ohne dass noch extra etwas installiert werden muss, muss man zu eine Sprache wie C/C++, Rust oder zur Not Pascal greifen. Aber selbst da kann es sein, dass das Programm nicht läuft, wenn nötige DLLs nicht installiert sind. Wenn man sicherstellen will, dass ein Programm garantiert läuft, braucht man einen Installer, der alles nötige installiert, was eventuell fehlen könnte. Einfach nur eine .exe reicht bei keiner Programmiersprache, um die Lauffähigkeit zu 100% sicherzustellen.
Unter Linux würde man heutzutage ein Flatpack erstellen, in dem alles enthalten ist, was ein Programm braucht.
Re: Python oder C# ?
Verfasst: Sonntag 16. Januar 2022, 14:38
von rogerb
@burli,
Es mag sein, dass .Net standard mäßig mit ausgeliefert wird. Es ist aber kein fester Bestandteil von Windows.
Wie gesagt, es wird von vielen Windows-Applikationen benötigt. Und dürfte von daher eigentlich immer vorhanden sein.
Java und Python sind auf Windows dagegen sicher nicht per default vorhanden.
Wenn man seinen Benutzern also keine zusätzliche Installation zumuten will, ist man mit einer .Net Applikation einen Schritt voraus.
Dass man .Net Applikationen als "Standalone" bauen kann, hatte ich ja auch schon gesagt.
Man mag es nicht mögen, oder wahrhaben wollen, aber das ist nun mal eine Realität, die Microsoft so geschaffen hat.
Re: Python oder C# ?
Verfasst: Sonntag 16. Januar 2022, 14:40
von sparrow
Das ist allerdings sowohl mit Python als auch mit Java ebenso möglich.
Also eine .exe bauen, die alles benötigte mitbringt.
Es ist nur unüblich.