2010-04-17 10 views
7

Ich bin neu in der Verwendung von Python. Ich möchte Windows-GUI-Anwendung mit Python entwickeln. Nach einigen Recherchen fand ich, dass ich zwei Möglichkeiten: -"IronPython + .NET" vs "Python + PyQt". Welcher ist besser für die Windows App-Entwicklung?

  1. Ironpython + .NET Framework
  2. Python + PyQt

Darf ich wissen, was man für Windows-Anwendungsentwicklung ist besser? Welche Option hat mehr Funktionen (z. B. Datenbankunterstützung usw.)?

Gibt es außer der .NET-Unterstützung einen großen Unterschied zwischen IronPython und Python? Welcher ist eine bessere Wahl für mich?

Vielen Dank.

Patrick.L

Antwort

3

Erstens gibt es viele mehr als 2 Optionen (Python mehr GUI-Bibliotheken hat, als Sie einen Stock an rütteln können), aber lassen Sie uns für eine Minute bei Ihnen gehen. "Besser" subjektiv zu sein, wirft die Frage auf: "Was willst du lernen?"

Wenn das Ziel Windows GUI Anwendungen Entwicklung ist, dann würde ich mit. NET gehen. .Net ist gut respektiert, es gibt eine Menge Arbeit für .Net Programmierer, und es ist Windows-zentrierte Natur (ja ich weiß, es gibt Mono aber immer noch) bedeutet, dass Sie nicht versuchen, über Details von drei + Gruppen von Benutzererwartungen nachzudenken.

Wenn das Ziel ist, weit verbreitete Python-Bibliotheken und -Techniken zu lernen, würde ich mit PyQt (und kürzlich tat) gehen. Es ist plattformübergreifend, gut respektiert und hat eine große Gemeinschaft. Aber Sie verlieren die Chance, die .NET-Plattform als Teil dieses Projekts zu lernen.

Ich glaube nicht, dass Sie beide Wege verlieren können, wenn Ihr Ziel ist zu lernen. Wenn es Ihr Ziel ist, etwas zu erledigen, denken Sie über die langfristigen Pläne für das Projekt nach und über die langfristigen Ziele. Möchten Sie etwas, das gut in die Windows-Benutzeroberfläche integriert ist und Standard-Widgets verwendet? Möchten Sie etwas, das in Zukunft problemlos an andere Plattformen angepasst werden kann?

1

Ich habe IronPython nicht mit .NET verwendet, aber ich haben geschrieben viel PyQt-Code. Aus meiner Erfahrung ist PyQt eine großartige Bibliothek. Es ist eine sehr gut ausgeführte Bindung an Qt, die eine sehr bekannte und weit verbreitete Bibliothek ist.

Da es Python-Standard ist, den Sie schreiben, können Sie alle Python-Standardbibliothek genießen, die Ihnen eine Menge Funktionen bietet, zusätzlich zu mehreren nützlichen Qt-Modulen, die mit PyQt importiert wurden. Das Schreiben von PyQt-Code ist produktiv, und die GUIs kommen hübsch und reaktionsschnell aus. Und Sie können den Vorteil der Portabilität nicht ignorieren: Mit nur den kleinsten Änderungen, wenn überhaupt, können Sie diese Programme nur unter Linux ausführen und sie werden einfach funktionieren.

3

PyQt ist eine großartige Bibliothek, aber .NET ist der beste Weg für Windows. Das liegt daran, dass Sie alle GUI-Steuerelemente verwenden können, die C# in Python verwenden könnte. Darüber hinaus kann IronPython neben WinForms zum Erstellen von WPF-Anwendungen verwendet werden, die gut aussehen.

Der Hauptunterschied ist die Funktionen und PyQt hat mehr plattformübergreifende Funktionen, und .NET hat definitiv die Kante in Windows.

5

Ich habe das gleiche Problem konfrontiert und habe, mit Bedenken, beschlossen, mit IronPython/C# /. Net zu gehen.Ich mochte Qt, bekam aber kalte Füße, als es an Nokia verkauft wurde, weil ich einfach nicht sicher war, ob Nokias Ziele, Qt zu besitzen, mit meinen Bedürfnissen für eine Windows-Benutzeroberfläche übereinstimmten. Dennoch hat Nokia einige positive Schritte unternommen, indem es separate Plattformlizenzen zu einer einzigen Lizenz kombiniert und die GPL-Lizenzierung zugunsten von LGPL aufgibt.

Technisch gesehen ist Qt gut entworfen, ist aber stark auf das Debuggen von C# -Makros angewiesen. Ich bin mir nicht sicher warum. Das Beste an Qt ist, dass es Open Source ist. Wenn Sie müssen, können Sie es beheben. Ich habe keine direkten Erfahrungen mit PyQt, aber es gibt es schon eine ganze Weile.

.Net ist .Net und wie üblich mit Microsoft, ein bewegliches Ziel. Sie werden die Geschwindigkeit für eine einfache Codierung opfern. Die IronPython-Gruppe scheint gut zu sein, aber ich bin mir nicht sicher, ob Microsofts Engagement da ist. Visual Studio-Unterstützung ist noch nicht da, obwohl die Pläne gut klingen. Schließlich kümmert sich MS nur darum, ob sie alles besitzen, was bei Python nicht der Fall ist. Was ich wirklich erwarte, ist, dass MS eine dynamische Version von C#, Interpreter und allem erstellen wird und allen Python-Programmierern sagen wird, dass es besser und unterstützt ist und gut mit .Net integriert ist. Sie werden dann durch ihr beträchtliches Gewicht hinter Python wie sie Java getan haben.

Viel Glück. Es ist eine große Entscheidung.

4

Pro mein Spiel mit PyQt (als Schnittstelle zu Qt) und IronPython (als Schnittstelle zu WinForms) ist die Tasche gemischt.

Beide sind im Grunde "Bindungen" für zugrunde liegende Plattformen. PyQt ist praktisch "autogeneriert" von Qt's API und etwas "ausgereifter" als Wrapper wegen des signifikanten Einsatzes unter Linux.

IronPython geht ein wenig tiefer und scheint Systemobjekte mit kleinen Lücken zwischen cPython und .Net-Bibliotheken (gzip, zip, subprocess usw.) "neu zu boxen".

In beiden Fällen müssen Sie Python im Toolkit nachschlagen und sich selbst sagen, ob Ihnen das Toolkit gefällt. Alles, was Python macht, paketiert die API des Toolkits zu den Objekten. Vergessen Sie wieder Python Aspekt. Sehen Sie sich die zugrunde liegende Toolkit-API an und denken Sie an sich selbst, ob Sie damit leben können.

Ich persönlich finde die C++ - Natur von Qt's API zu unpythonisch, um damit zufrieden zu sein. C# und Python sind so ähnlich, dass Sie, wenn Sie Curlies entfernen und eine Deklaration aus C# eingeben, nicht wissen würden, ob es C# oder Python ist. Für einen Python-Programmierer, eine C# -basierte .Net API, Code und Beispiele, wie sie in MSDN und anderswo zur Verfügung gestellt werden, sind sie sofort anwendbar, mit sehr geringen Verbesserungen.

Am Ende wäre ein korrekterer Vergleich zwischen PyQt (Qt-Bindungen für cPython) und Win32py (Windows ABI-Bindungen für cPython). IronPython ist fast eine Neuerfindung derselben Sprache auf einer anderen Plattform, mit all den damit verbundenen Problemen (mangelnde Funktionalität).

Verwandte Themen