Comment mettre fin à ma dépendance à .NET? [fermé]

10

Je développe des applications Windows GUI depuis de nombreuses années et suis entré dans .NET au début de 2005. .NET est sans aucun doute une plate-forme remarquable et je l'utilise toujours, mais avec une variété de technologies, je ne veux pas rester dédié à ce camp. Je veux apprendre de nouvelles langues avec lesquelles je peux développer des applications GUI.

J'apprends Ruby et viens d'installer Python. J'ai lu sur WxRuby, un cadre pour développer l'application GUI Windows. en Ruby. Je recherche un framework similaire pour Python.

En dehors de cela, je veux savoir quelle langue est la plus appropriée pour une application GUI au niveau de la production. Je doute que Ruby se concentre davantage sur la plate-forme Web avec son glamour, Ruby on Rails.

Je sais que je n'obtiendrai peut-être pas ces classes .NET riches et cet impressionnant IDE Visual Studio, mais je veux quand même suivre la route moins fréquentée. Je ne veux pas aller avec IronPython et IronRuby, mais quelque temps plus tard, je peux plonger les mains pour les explorer.

RPK
la source
5
Vraiment dommage que Microsoft ait décidé d'abandonner au hasard IronPython et IronRuby. Je ne pense pas qu'ils comprennent vraiment quel genre de message dérangeant ils ont envoyé à l'industrie / à la communauté.
Rei Miyasaka
2
@Mahmoud Ils ont arrêté de dépenser de l'argent dessus; ils laissent juste la communauté la gérer maintenant. Le développeur principal, Jim Hugunin, ne pouvait plus y travailler depuis Microsoft, alors naturellement, il a également quitté l'entreprise: hugunin.net/microsoft_farewell.html
Rei Miyasaka
1
@Thomas: h-online.com/open/news/item/…
Rei Miyasaka
9
@Thomas C'est encore abandonné. Ce n'est pas parce que je laisse tomber ma petite amie qu'elle n'existe plus ou qu'elle n'est plus viable ... quoi que cela puisse signifier.
Rei Miyasaka
2
@Rei, en ce qui vous concerne, elle n'existe plus :) Ditched est un billet aller simple pour ce bar pour célibataires où vous pouvez passer du temps avec MSDOS, FoxPro, VB6, Silverlight, Flight Sim, IronPython et IronRuby et dites contes de combien d'amour vous avez eu dans les vieux jours.
gbjbaanb

Réponses:

14

Vérifiez Qt.

il est sans doute aussi riche que .NET, et l'IDE (QtCreator) est simple mais assez puissant. Bien sûr, il est préférable de l'utiliser sur le C ++ natif, mais la liaison Python est maintenue complète et à jour.

En plus, c'est vraiment une plateforme croisée, et cela inclut aussi les plateformes mobiles :-)

Javier
la source
1
Il est difficile d'appeler Qt un système C ++ natif étant donné qu'il a besoin d'un compilateur séparé avant de construire avec lui. Ce n'est pas un mauvais système cependant.
Billy ONeal
1
pas du tout, son "natif" comme "compile directement en langage machine, pas de bytecode / VM / JIT là", aussi comme: "pas de couche d'émulation de plateforme, le code résultant est spécifique au système d'exploitation". le mocprécompilateur n'est rien d'autre que du sucre de syntaxe pour rendre le code plus simple dans certains coins spécifiques (principalement le traitement du signal); il s'adapte à la chaîne de compilation à peu près au même endroit que le préprocesseur C. C'est principalement un artefact historique de la stabilisation de l'API avant que certaines fonctionnalités C ++ ne se soient stabilisées sur les compilateurs
Javier
Pour être honnête, moc ajoute du dynamisme qui manque encore à C ++ de nos jours.
Tamás Szelei
6

Eh bien, wxRuby est juste une liaison Ruby pour wxWidgets , une boîte à outils GUI multiplateforme impressionnante. Il existe une liaison similaire pour Python appelée wxPython, ainsi que des liaisons pour de nombreux autres langages.

Robert Harvey
la source
Les widgets sont là mais comment s'intègrent-ils parfaitement avec le langage principal? Dans quelle mesure le soutien communautaire est-il actif?
RPK
1
@RPK - Vous aurez une communauté assez petite utilisant n'importe quelle boîte à outils GUI donnée avec Python ou Ruby. Cependant, la communauté wxPython est plus grande que Ruby; La communauté de Ruby est désormais dominée par Rails, mais Python a une diversité plus apparente.
Jeremy
La communauté de @Jeremy Ruby n'est pas dominée par Rails mais elle donne l'impression qu'elle l'est, ce qui est dommage.
alternative
5

Je ne sais pas si votre question se limite à déterminer si Ruby ou Python est meilleur ou si vous demandez quelles autres langues vous voudrez peut-être apprendre pour développer des applications Windows GUI en général. Je suppose que ce dernier.

Il existe également une programmation Java, Delphi ou Win32 native. N'importe lequel d'entre eux convient au développement d'applications GUI sous Windows. Le code natif Win32 peut (doit?) Toujours être écrit via Visual Studio, mais il n'y a pas de dépendance .NET.

Adam Lear
la source
4
+1 pour Delphi. Créez des applications Windows natives 32 bits rapides sans le bagage de .NET. La version 64 bits arrivera probablement dans le
courant de
1
Les interfaces graphiques Java sont lentes? Où est-ce prouvé?
Tim Williscroft
9
@Tim Williscroft - SWT est rapide, mais la plupart des applications Swing sont plutôt lent à très lent. C'est tellement évident que je ne peux même pas imaginer avoir besoin de le prouver.
Jeremy
1
@Jeremy Je m'incline devant vos connaissances supérieures. Je suis tellement gêné, je me trompe depuis des années mais maintenant je sais.
Tim Williscroft
2
Win32 natif est très bien. Pas génial pour un développement rapide, mais ce n'est pas vraiment difficile.
Paul Nathan
5

HTML5 et JavaScript.

Je souhaite que je plaisante, mais je ne le suis pas .

Effrayant de penser que personne n'avait cette réponse il y a six mois.

Triste...

Rei Miyasaka
la source
Il y a environ un an, j'ai déclaré aux programmeurs que Microsoft avait jeté le VB6 avec l'eau du bain et qu'ils pouvaient faire de même avec .NET. Quelqu'un m'a répondu et a écrit que MS ne laisserait jamais tomber .NET. Et bien, surprise, surprise! C'est pourquoi je m'en tiens plutôt aux logiciels de liberté et aux communautés open source. Si .NET était open source, le comportement de MS n'aurait pas eu autant d'importance, car la communauté aurait pu faire avancer le framework.
systemovich
1
Mono a largement rattrapé son retard. Le problème est que la stigmatisation et la politique qui l'entourent empêchent les autres entreprises de l'adopter confortablement. La même histoire s'applique à Java, qui est open source, avec Sun essayant de poursuivre Google. La différence est que Google ne s'attendait pas à ce que Sun les poursuive. Tout le monde s'attend à ce que Microsoft les poursuive, et donc même s'ils ne l'ont pas fait, les gens évitent .NET / Mono / ECMA C #. Vraiment, il ne s'agit pas d'open source contre quoi que ce soit; il s'agit de la SEP ayant complètement perdu la tête. Presque tous les logiciels courent le risque que leurs principaux contributeurs deviennent fous ou ennuyés, ouverts ou non.
Rei Miyasaka
+1 parce que c'est génial de pouvoir porter HTML5 et JS directement depuis le navigateur dans une application de bureau native. Nous avons maintenant le Web, le mobile (en utilisant PhoneGap ) et Windows 8 sous une seule plate-forme open source!
Raynos
1
La fin de l'article que vous avez lié à penser que MS ne va pas abandonner leur énorme base de développeur et / ou les faire tout le code en HTML5 + JS, et que cela est plus d'un PR aurique que toute autre chose.
Scott Whitlock
@ScottWhitlock, c'est juste microsoft qui étend les outils que vous pouvez utiliser sans qu'il ne déprécie ni ne supprime le support des outils existants. C'est un excellent moyen d'attirer plus de développeurs dans l'écosystème Microsoft.
Raynos
4

Rappelez-vous que les personnes non-microsoft hard-core sont dirigées par la ligne de commande, et la conception de l'interface graphique est assez inutile là-bas. Ils vont, dans une certaine mesure, compromettre et créer des interfaces graphiques en HTML, à utiliser par les navigateurs, mais c'est pour leurs clients, pas pour eux-mêmes.

Si vous souhaitez rester dans le monde de l'interface graphique, je suppose que vous voudrez peut-être regarder Apple ou rester avec .NET sur Windows.

Logique?

HTH

Christopher Mahan
la source
4
Ce n'est pas strictement vrai. Dans le monde * nix, nous avons et utilisons des interfaces graphiques assez largement.
greyfade
@Christopher: Je le sais et je le sais absolument. Prenons par exemple Oracle. Ils sont sortis avec une interface graphique HTML, qui est très lente. Je ne regarde pas seulement les négatifs, probablement Oracle peut très bien être géré via la ligne de commande.
RPK
@RPK: IIRC, Oracle 9i avait un merveilleux outil d'administration, qui était une application de bureau GUI. Je l'ai beaucoup préféré à l'administration en ligne de commande. Oracle 10g l'a implémenté comme une page Web, ce qui n'était pas aussi agréable.
David Thornley
1
GTK est assez populaire sur les bureaux Linux, et il existe d'autres boîtes à outils GUI. Je ne pense pas du tout qu'il soit courant d'exécuter un bureau sans interface graphique, même si vous utilisez un terminal pour de nombreuses tâches; bien que les serveurs * nix vous fassiez généralement tout via une ligne de commande.
Jeremy
2
+1 parce que je ressemble à cette remarque. En règle générale, la programmation GUI que je fais est liée à une application Web. Je fais un effort conscient pour que ce degré de conception fonctionne en le rendant intuitif, simple et évident, mais ma propre expérience informatique est quelque chose comme 80% Emacs, 15% navigateur, 6% autre (avec une marge d'erreur de 1%) .
Inaimathi
3

Je recommanderais Java dans votre situation.

Les raisons:

  • Si vous connaissez .NET, vous serez relativement à l'aise avec Java (C # a été largement inspiré par Java et de nombreuses conventions et même les noms de bibliothèques sont très similaires)
  • Java a des capacités GUI impressionnantes (même si elles ne sont pas si largement reconnues). Les meilleures boîtes à outils GUI multiplateformes sont à mon avis Swing (qui est totalement multiplateforme, avec une apparence cohérente) et SWT (qui exploite également des composants natifs, tels qu'utilisés par exemple par Eclipse). JavaFX 2.0 semble également prometteur pour l'avenir.
  • Il existe de nombreux outils de type "GUI builder" pour les deux (généralement disponibles sous forme de plug-ins IDE pour Netbeans ou Eclipse, par exemple)
  • C'est probablement une question de préférence personnelle, mais je dirais que Netbeans ou Eclipse sont, dans l'ensemble, de meilleurs IDE que Visual Studio, et certainement plus capables que vous ne le voyez pour d'autres langages ou plates-formes.
  • La plate-forme / l'écosystème Java est un endroit idéal pour être en général - une grande variété de bibliothèques et d'outils, en particulier si vous aimez l'open source.

Alternativement, vous pouvez essayer l'un des nouveaux langages JVM innovants comme Scala ou Clojure si vous vous sentez aventureux .....

mikera
la source
3
Les développeurs Java ont également tendance à être plus à jour sur la bonne façon d'écrire des logiciels, tandis que beaucoup plus de gars .NET se contentent d'élinguer du code sans appliquer de modèles de conception, SOLID, etc.
Wayne Molina
-1

Python fonctionne bien pour l'interface graphique. Vous pouvez jeter un œil à PyQt, PyGTK, WxPython, etc. Ceux-ci sont activement utilisés pour le développement d'interfaces graphiques (sous Linux) et considérés comme multiplates-formes.

make_sense
la source
-4

Regardez dans d'autres langages de programmation qui fonctionnent avec le runtime .Net, comme IronRuby et IronPython. Ensuite, découvrez le projet mono .

Ces étapes vous permettront de sortir de votre zone de confort .Net et de développer sur Linux. À partir de là, c'est un petit pas vers un développement complet de style UNIX.

Chris McCall
la source
5
-1 parce qu'il déclare dans la question "Je ne veux pas aller avec IronPython et IronRuby"
Inaimathi