Verständnisfragen zur Python und C#

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
tomPyhton
User
Beiträge: 11
Registriert: Donnerstag 23. Mai 2019, 17:19

Hallo zusammen,

bisher habe ein paar einfache Tools unter Windows mit WinForm GUI in C# geschrieben. Durch einen Artikel bin ich auf Python aufmerksam geworden hab aber noch ein paar Frage hierzu bzw. Verständnisfragen
Derzeit nutze ich hauptsächlich Windows, werde aber demnächst auf Mac OS umsteigen. Für mein Hobby habe ich auch ein paar Tools geschrieben, welche ich gern weiterhin aktualisieren möchte.

- Welche GUI's lassen sich mit Python bauen? Gibt es vlt. ein paar prominente Beispiele? Calibre habe ich schon gefunden.
- Hab ich es richtig verstanden, das Python Programm mit GUI unter beiden Systemen (Win und Mac) lauffähig sind? Ist dies mit viel Aufwand verbunden?
- Wenn ich das richtig verstehe, dann ist Python ja auf jedem System ausführbar? Welche Nachteile hat Python dann gegenüber C#? Irgendwelche Nachteile muss es doch geben.

Bin wirklich stark am überlegen, komplett auf Python umzusteigen.
Besten Dank im Vorraus
__deets__
User
Beiträge: 14522
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du kannst Python Tkinter (das mitgelieferte gui toolkit) auf allen Plattformen laufen lassen. Gerade auf dem mac ist das look & feel jedoch nicht so nativ. Daher habe ich da immer zu pyobjc gegriffen, und echte Cocoa Apps geschrieben.

Und Nachteile sind: Ausführungsgeschwindigkeit & keine statische Typisierung. Letzteres ist eher Geschmacksache. Ersteres ist weniger relevant für den meisten Code als man glaubt, und es gibt eine Vielzahl an Lösungen wie numpy, numba, tensorflow, opencv die für bestimmte Probleme dann eh nativen Code laufen lassen, aber von Python super genutzt werden können.
tomPyhton
User
Beiträge: 11
Registriert: Donnerstag 23. Mai 2019, 17:19

Phyton wird ja interpretiert, wenn ich das jetzt aber richtig verstanden habe kann ich das ganze mit numba komplett als Maschinencode laufen lassen? Damit dürften die Performance Probleme doch gegessen sein, oder?
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

Man kann nicht von Vorteilen oder Nachteilen von Sprachen sprechen. Jede hat Stärken und Schwächen, je nachdem was man machen will, ist die eine besser geeignet, oder die andere.

`numba` ist für spezielle Probleme ausgelegt. Wenn Du solch eins hast, kannst Du es anwenden, ansonsten schadet es nur.

Bevor Du Dir zu viele Gedanken machst, fang einfach an, ein Projekt umzusetzen. Egal was Du machst, Du wirst es nicht perfekt machen. höchstwahrscheinlich alles nochmal löschen, aber trotzdem viel dabei lernen.
Benutzeravatar
sparrow
User
Beiträge: 4183
Registriert: Freitag 17. April 2009, 10:28

Und um die Performance solltest du dir wirklich erst Gedanken machen, wenn du ein Performanceproblem hast.
nezzcarth
User
Beiträge: 1633
Registriert: Samstag 16. April 2011, 12:47

Aufgrund deiner Anfrage möchte ich mal zaghaft von Python abraten. Das wäre jedenfalls nicht die Sprache, die ich für RAD (nennt man das heute noch so? ;) ) von cross-plattform GUI-Anwendungen verwenden würde. Geht mit Python auch, wäre aber nicht meine erste Wahl für den Fall.
Benutzeravatar
sparrow
User
Beiträge: 4183
Registriert: Freitag 17. April 2009, 10:28

@nezzcarth: Nur aus interesse, was würdest du denn für eine Cross-Plattform-Entwicjlung verwendet?
Gerade für wenig Manpower finde ich Python + QT sehr umgänglich.
tomPyhton
User
Beiträge: 11
Registriert: Donnerstag 23. Mai 2019, 17:19

Gibt es außer Claibre noch Software welche in Python geschrieben ist? Meine damit jetzt nicht irgendwelche Firmen Internen Tools.

Wenn der Code nur interpretiert wird, dann kann ich die phyton Datei doch einfach mit einen Editor aufmachen und mir den Code anschauen, oder?
__deets__
User
Beiträge: 14522
Registriert: Mittwoch 14. Oktober 2015, 14:29

Nö, es gibt Mittel und Wege das zumindest ein bisschen zu obfuskieren. Von nur die pyc files ausliefern bis mit cython alles zu C-API-Calls transformieren (nein, das bringt nicht substantiell einen Geschwindigkeitsvorteil)

Und ich kann nur genauso suchen wir du nach Projekten. Python wird bei Netflix, Dropbox, Google und vielen anderen benutzt. Irgendwann mal hat eine pyobjc basierte Anwendung einen Apple Design Preis gewonnen. Der springende Punkt ist: da man sowohl nativ als auch mit zb Qt grafische Oberflächen bauen kann, geht halt alles.
Antworten