Wie beende ich meine Abhängigkeit von .NET? [geschlossen]

10

Ich entwickle seit vielen Jahren Windows-GUI-Anwendungen und bin Anfang 2005 in .NET eingestiegen. .NET ist zweifellos eine bemerkenswerte Plattform und ich verwende sie immer noch, aber mit einer Vielzahl von Technologien möchte ich nicht bleiben diesem Lager gewidmet. Ich möchte neue Sprachen lernen, mit denen ich GUI-Anwendungen entwickeln kann.

Ich lerne Ruby und habe gerade Python installiert. Ich habe über WxRuby gelesen, ein Framework für die Entwicklung einer Windows-GUI-App. in Ruby. Ich suche nach einem ähnlichen Framework für Python.

Abgesehen davon möchte ich wissen, welche Sprache für eine GUI-App auf Produktionsebene besser geeignet ist. Ich bezweifle, dass Ruby sich mehr auf die Webplattform mit ihrem Glamour Ruby on Rails konzentriert.

Ich weiß, dass ich diese umfangreichen .NET-Klassen und diese beeindruckende Visual Studio-IDE möglicherweise nicht bekomme, aber ich möchte trotzdem der weniger befahrenen Straße folgen. Ich möchte nicht mit IronPython und IronRuby arbeiten, aber einige Zeit später kann ich die Hände eintauchen, um sie zu erkunden.

RPK
quelle
5
Wirklich schade, dass Microsoft beschlossen hat, IronPython und IronRuby zufällig wegzulassen. Ich glaube nicht, dass sie wirklich verstehen, welche Art von störender Botschaft sie dabei an die Industrie / Community gesendet haben.
Rei Miyasaka
2
@ Mahmoud Sie haben aufgehört, Geld dafür auszugeben; Sie lassen die Community es jetzt einfach laufen. Der Hauptentwickler, Jim Hugunin, konnte von Microsoft nicht mehr daran arbeiten, daher verließ er natürlich auch das Unternehmen: hugunin.net/microsoft_farewell.html
Rei Miyasaka
1
@ Thomas: h-online.com/open/news/item/…
Rei Miyasaka
9
@ Thomas Es ist immer noch im Stich gelassen. Nur weil ich meine Freundin im Stich lasse, heißt das nicht, dass sie nicht mehr existiert oder nicht mehr lebensfähig ist ... was auch immer letzteres bedeuten mag.
Rei Miyasaka
2
@Rei, soweit es dich betrifft, existiert sie nicht mehr :) Ditched ist ein One-Way-Ticket für diese Single-Bar, in der du mit MSDOS, FoxPro, VB6, Silverlight, Flugsimulator, IronPython und IronRuby abhängen und erzählen kannst Geschichten darüber, wie viel Liebe du in den alten Tagen bekommen hast.
Gbjbaanb

Antworten:

14

Überprüfen Sie Qt.

Es ist wohl so reichhaltig wie .NET und die IDE (QtCreator) ist einfach, aber ziemlich leistungsfähig. Natürlich wird es besser in nativem C ++ verwendet, aber die Python-Bindung bleibt vollständig und aktuell.

Darüber hinaus ist es wirklich plattformübergreifend, und dazu gehören jetzt auch mobile Plattformen :-)

Javier
quelle
1
Es ist schwierig, Qt als natives C ++ - System zu bezeichnen, da es vor dem Erstellen einen separaten Compiler benötigt. Es ist jedoch kein schlechtes System.
Billy ONeal
1
überhaupt nicht, sein "natives" als "Kompiliert direkt in die Maschinensprache, kein Bytecode / VM / JIT dort", auch als: "Keine Plattformemulationsschicht, der resultierende Code ist betriebssystemspezifisch". Der mocPrecompiler ist nichts anderes als ein Syntaxzucker, um in bestimmten Ecken einfacher aussehenden Code zu erstellen (meistens Signalverarbeitung). Es passt in die Kompilierungskette ungefähr an der gleichen Stelle wie der C-Präprozessor. Es ist größtenteils ein historisches Artefakt der API-Stabilisierung, bevor sich bestimmte C ++ - Funktionen über Compiler hinweg stabilisiert hatten
Javier
Um fair zu sein, moc fügt Dynamik hinzu, die C ++ selbst heutzutage fehlt.
Tamás Szelei
6

Nun, wxRuby ist nur eine Ruby-Bindung für wxWidgets , ein fantastisches plattformübergreifendes GUI-Toolkit. Es gibt eine ähnliche Bindung für Python namens wxPython sowie Bindungen für viele andere Sprachen.

Robert Harvey
quelle
Die Widgets sind da, aber wie nahtlos integrieren sie sich in die Kernsprache? Wie aktiv ist die Community-Unterstützung?
RPK
1
@RPK - Sie haben eine relativ kleine Community, die ein bestimmtes GUI-Toolkit mit Python oder Ruby verwendet. Die wxPython-Community ist jedoch größer als Ruby. Rubys Community wird jetzt von Rails dominiert, aber Python hat eine offensichtlichere Vielfalt.
Jeremy
@ Jeremy Rubys Community wird nicht von Rails dominiert, aber es gibt die Wahrnehmung, dass es so ist, was eine Schande ist.
Alternative
5

Ich bin mir nicht sicher, ob sich Ihre Frage darauf beschränkt, festzustellen, ob Ruby oder Python besser ist, oder ob Sie sich fragen, welche anderen Sprachen Sie möglicherweise lernen möchten, um Windows-GUI-Apps im Allgemeinen zu entwickeln. Ich gehe von letzterem aus.

Es gibt auch Java-, Delphi- oder native Win32-Programmierung. Alle diese sind für die Entwicklung von GUI-Apps unter Windows geeignet. Nativer Win32-Code kann (muss?) Noch über Visual Studio geschrieben werden, es besteht jedoch keine .NET-Abhängigkeit.

Adam Lear
quelle
4
+1 für Delphi. Erstellen Sie schnelle, native 32-Bit-Windows-Apps ohne das Gepäck von .NET. 64-Bit-Version wahrscheinlich irgendwann im Jahr 2011.
Tcrosley
1
Java GUIs sind langsam? Wo ist das bewiesen?
Tim Williscroft
9
@ Tim Williscroft - SWT ist schnell, aber die meisten Swing-Apps sind etwas bis sehr träge. Es ist so offensichtlich, dass ich mir nicht vorstellen kann, es beweisen zu müssen.
Jeremy
1
@ Jeremy Ich verneige mich vor deinem überlegenen Wissen. Ich bin so verlegen, ich mache es seit Jahren falsch, aber jetzt weiß ich es.
Tim Williscroft
2
Native Win32 ist in Ordnung. Nicht gut für eine schnelle Entwicklung, aber es ist nicht sehr schwer.
Paul Nathan
5

HTML5 und JavaScript.

Ich wünschte, ich mache Witze, aber ich bin es nicht .

Es ist beängstigend zu glauben, dass vor einem halben Jahr niemand diese Antwort hatte.

Traurig...

Rei Miyasaka
quelle
Vor ungefähr einem Jahr habe ich Programmierern kommentiert, dass Microsoft VB6 mit dem Badewasser rausgeworfen hat und dass sie dasselbe mit .NET tun könnten. Jemand antwortete mir und schrieb, dass MS .NET niemals fallen lassen würde. Nun, Überraschung, Überraschung! Deshalb bleibe ich lieber bei der Freiheitssoftware und den Open-Source-Communities. Wenn .NET Open Source wäre, wäre das Verhalten von MS nicht so wichtig gewesen, da die Community das Framework hätte vorantreiben können.
Systemovich
1
Mono hat weitgehend aufgeholt. Das Problem ist, dass das Stigma und die Politik es anderen Unternehmen unmöglich machen, es bequem zu übernehmen. Die gleiche Geschichte gilt für Java, die ist Open Source, mit Sun versucht Google zu verklagen. Der Unterschied besteht darin, dass Google nicht erwartet hat, dass Sun sie verklagt. Jeder erwartet, dass Microsoft sie verklagt, und obwohl sie sich geschworen haben, dies nicht zu tun, meiden die Leute .NET / Mono / ECMA C #. Wirklich, hier geht es nicht um Open Source gegen irgendetwas; Es geht darum, dass MS völlig den Kopf verloren hat. Fast jede Software läuft Gefahr, dass ihre Hauptverantwortlichen verrückt oder gelangweilt werden, offen oder nicht.
Rei Miyasaka
+1, weil es großartig ist, HTML5 und JS direkt vom Browser in eine native Desktop-Anwendung portieren zu können. Jetzt haben wir Web, Mobile (mit PhoneGap ) und Windows 8 unter einer Open Source-Plattform!
Raynos
1
Das Ende des Artikels, auf den Sie verlinkt haben, deutet darauf hin, dass MS ihre riesige Entwicklerbasis nicht aufgeben und / oder sie alle in HTML5 + JS codieren wird, und dass dies eher ein PR-Gaff als alles andere ist.
Scott Whitlock
@ScottWhitlock Es ist nur Microsoft, das die Tools erweitert, die Sie verwenden können, ohne dass die Unterstützung für vorhandene Tools beeinträchtigt oder eingestellt wird. Dies ist eine großartige Möglichkeit, mehr Entwickler für das Microsoft-Ökosystem zu gewinnen.
Raynos
4

Denken Sie daran, dass die Hardcore-Nicht-Microsoft-Nicht-Apple-Benutzer befehlszeilengesteuert sind und das GUI-Design dort ziemlich nutzlos ist. Sie werden bis zu einem gewissen Grad Kompromisse eingehen und GUIs in HTML erstellen, die von Browsern verwendet werden, aber das ist für ihre Kunden, nicht für sich selbst.

Wenn Sie in der GUI-Welt bleiben möchten, sollten Sie sich Apple ansehen oder bei .NET unter Windows bleiben.

Macht Sinn?

HTH

Christopher Mahan
quelle
4
Dies ist nicht unbedingt richtig. In der * nix-Welt haben und verwenden wir GUIs ziemlich häufig.
Greyfade
@ Christopher: Ich weiß und bin mir dessen absolut bewusst. Nehmen wir zum Beispiel Oracle. Sie kamen mit HTML GUI heraus, die sehr langsam ist. Ich sehe nicht nur Negative aus, wahrscheinlich kann Oracle sehr gut über die Kommandozeile verwaltet werden.
RPK
@RPK: IIRC, Oracle 9i hatte ein wunderbares Verwaltungstool, eine GUI-Desktop-App. Ich habe es der Befehlszeilenverwaltung vorgezogen. Oracle 10g implementierte das als Webseite, was bei weitem nicht so schön war.
David Thornley
1
GTK ist auf Linux-Desktops sehr beliebt, und es gibt andere GUI-Toolkits. Ich denke, es ist überhaupt nicht üblich, einen Desktop ohne GUI auszuführen, selbst wenn Sie das Terminal für viele Aufgaben verwenden. obwohl * nix Server würden Sie normalerweise alles über eine Befehlszeile tun.
Jeremy
2
+1, weil ich dieser Bemerkung ähnele. Normalerweise hängt die von mir durchgeführte GUI-Programmierung mit der Web-App zusammen. Ich bemühe mich bewusst, diesen Designgrad in die Tat umzusetzen, indem ich ihn intuitiv, einfach und offensichtlich mache, aber meine eigene Computererfahrung ist ungefähr 80% Emacs, 15% Browser, 6% andere (mit einer Fehlerquote von 1%). .
Inaimathi
3

Ich würde Java in Ihrer Situation empfehlen.

Gründe dafür:

  • Wenn Sie .NET kennen, sind Sie mit Java relativ vertraut (C # wurde weitgehend von Java inspiriert und viele der Konventionen und sogar Bibliotheksnamen sind sehr ähnlich).
  • Java verfügt über einige beeindruckende GUI-Funktionen (auch wenn diese nicht so allgemein anerkannt sind). Die besten plattformübergreifenden GUI-Toolkits sind meiner Meinung nach Swing (das völlig plattformübergreifend ist und ein einheitliches Erscheinungsbild aufweist) und SWT (das auch native Komponenten nutzt, wie sie beispielsweise von Eclipse verwendet werden). JavaFX 2.0 sieht auch für die Zukunft vielversprechend aus.
  • Für beide gibt es zahlreiche Tools vom Typ "GUI Builder" (allgemein als IDE-Plug-Ins für z. B. Netbeans oder Eclipse verfügbar).
  • Es ist wahrscheinlich eine Frage der persönlichen Präferenz, aber ich würde argumentieren, dass Netbeans oder Eclipse insgesamt bessere IDEs als Visual Studio sind und sicherlich leistungsfähiger als Sie es für andere Sprachen oder Plattformen sehen.
  • Die Java-Plattform / das Java-Ökosystem ist im Allgemeinen ein großartiger Ort - eine große Auswahl an Bibliotheken und Tools, insbesondere wenn Sie Open Source mögen.

Alternativ können Sie eine der neuen innovativen JVM-Sprachen wie Scala oder Clojure ausprobieren, wenn Sie sich abenteuerlustig fühlen.

mikera
quelle
3
Auch Java-Entwickler sind in der Regel besser auf dem richtigen Weg, um Software zu schreiben, während viel mehr .NET-Leute nur Code schleudern, ohne Designmuster, SOLID usw. anzuwenden
Wayne Molina
-1

Python funktioniert gut für die GUI. Sie können sich PyQt, PyGTK, WxPython usw. ansehen. Diese werden aktiv für die GUI-Entwicklung (unter Linux) verwendet und gelten als plattformübergreifend.

Sinn ergeben
quelle
-4

Schauen Sie sich andere Programmiersprachen an, die mit der .Net-Laufzeit arbeiten, wie IronRuby und IronPython. Schauen Sie sich als nächstes das Mono-Projekt an .

Mit diesen Schritten verlassen Sie Ihre .Net-Komfortzone und entwickeln sich unter Linux. Von dort aus ist es ein kleiner Sprung zur vollständigen Entwicklung im UNIX-Stil.

Chris McCall
quelle
5
-1 weil er in der Frage "Ich will nicht mit IronPython und IronRuby gehen"
sagt