Quelles sont les langages de programmation répondent à ces critères pour le développement d'applications GUI? [fermé]

StackOverflow https://stackoverflow.com/questions/1793300

Question

Je suis en train de trouver un langage de programmation, je me sens vraiment à l'aise d'apprentissage et à l'aide pour le développement d'applications de bureau / GUI. Je me rends compte qu'il est peu probable que toute langue répond à tous ces critères, mais je voudrais trouver celui qui répond le plus grand nombre possible. J'ai énuméré les caractéristiques suivantes dans l'ordre de APPROXIMATIVEMENT plus souhaitable / important au moins.

Idéal Langue Caractéristiques:

  • Code de Style: C / Java comme
  • GUI développement: facile, élégante et plate-forme native style
  • Communauté: Largement documenté, le développement actif, sympathique et serviable, l'unité de mise au point
  • orientée objet
  • Collecte des ordures, pas de se soucier de pointeurs, etc
  • compilation native, NO runtimes 3 parties comme GTK ou .NET
  • Multi-plateforme (peut être compilé sur * nix, Windows, Mac)
  • rapide Raisonnablement
  • Saisie mixte (soft typé, ou les deux et Soft- stricte typé - à savoir Pike)

Contexte:

Plus important encore, je besoin de quelque chose qui est foward et raisonnablement familier, et quelque chose qui ne va pas exiger directement une compréhension profonde des API spécifiques à la plateforme. Je ne peux pas se permettre de passer beaucoup de temps à apprendre à développer des applications Win32 en C ++ par exemple. Je l'ai utilisé wxWidgets, et aimé l'utilisation de base, mais je suis vraiment vouloir utiliser une langue avec la collecte des ordures, typage dynamique, et ainsi de suite.

Ma frustration avec Java, C #, et d'autres est la nécessité d'une exécution 3ème partie. Je ne veux pas que les utilisateurs finaux d'avoir à vous soucier de l'installation et le maintien d'une plate-forme séparée.

Maintenant. Idées ??

Était-ce utile?

La solution 14

Mise à jour:

.NET devient enfin une open-source, solution multi-plateforme. .NET de base permet la compilation native de plusieurs périphériques.

La nouvelle expérience .NET est exactement ce que je cherchais quand j'ai posé cette question il y a plusieurs années.


Original:

Beaucoup de bonnes suggestions, en dépit d'être salée avec la négativité tout au long.

Je pense que je vais aller avec C # et Mono. J'aime C # assez syntaxiquement (je l'ai été souvent accusé d'être peu profonde, mais la syntaxe d'une langue est tout aussi important pour moi que ses caractéristiques, parce que je passe beaucoup de temps à écrire dans cette syntaxe particulière). Bien que similaire à Java, il a quelques caractéristiques uniques que j'apprécie, et je pense que la communauté semble plus ouverte.

Ma plus grande plainte au sujet de Java en plus des performances, franchement, est la communauté. Il semble infecté par un excès d'arrogance, et il semble aussi être très fragmenté en termes de soutien et de développement sur les différentes bibliothèques qui se chevauchent, des outils, et ainsi de suite. La communauté environnante Mono semble beaucoup plus organisée.

En fait, si elle-même ne .NET, pour cette question. Sun est une grande entreprise d'entreprise qui semble tout aussi confus au sujet de ce qu'elle est et ce qu'il fait comme Microsoft ou IBM, mais ils semblent faire un travail encore pire de diriger et d'organiser leur plate-forme de Microsoft, ce qui est assez tragique.

Autres conseils

Haha, en raison des contraintes que vous vous êtes imposées maintenant à gauche avec HTML et javascript. Bonne chance:)

La réponse à votre question est simplement: Aucun. Vous excluez toutes les langues et les plates-formes souhaitables dans votre question.

Je vous suggère de jeter votre aversion pour .NET et aller avec Delphi Prism. Ce n'est pas C #, il est compatible multi-plateforme (tout est officiellement pris en charge sur Mono) et vous pouvez créer des applications qui apportent le moteur d'exécution avec eux (Mono dans le cadre de l'application).

Je vous suggère Groovy et Griffon . Groovy est un langage dynamique (comme Ruby / Python) qui fonctionne sur la machine virtuelle Java et intègre avec des millions de bibliothèques Java là facilement. Griffon est un cadre RAILS semblable à haute productivité pour le développement des interfaces graphiques. Groovy a été autour depuis 5 ans et a une communauté solide et est pris en charge par SpringSource (maintenant division de VMWare). Griffon est un peu plus jeune, mais il a aussi une communauté assez robuste.

Ceux-ci semblent répondre à vos critères.

Je sais que je suis passé de Java à Grails (framework web écrit en Groovy qui est semblable à Rails), et ne l'ai pas regardé en arrière.

Avez-vous regardé QT? Il est une bibliothèque graphique vraiment super et il y a des liaisons pour à peu près toutes les langues d'usage courant. Il y a une tonne de documentation et une large communauté. Vous mentionnez que vous voulez faire quelque chose dans une langue à la collecte des ordures et le typage dynamique, mais écarter Python et Ruby, qui sont les 2 langues les plus populaires qui correspondent à ce critère (, ils ont tous deux aussi grandes liaisons QT, j'utilise pyqt4 et il est tout simplement génial). Ils ne sont vraiment pas loin de ce que vous faites en Java / C, vous venez de finir d'écrire beaucoup moins.

Wow vous limitez vraiment vos choix. Je vais sauter dans le train en marche de l'intervalle QT et de recommander C ++.

La plupart des objets dans l'intervalle QT hériter d'une autre objet que sorte de fait sa propre collecte des ordures.

Il y a une documentation incroyable là-bas pour cela.

QT est extrêmement puissant et a la plupart des éléments que vous le souhaitez, et est extensible si vous souhaitez modifier vous-même des éléments.

Si vous faites une accumulation d'électricité statique pour votre libération construire les personnes que vous donnez l'application à distribuer ne sera pas besoin d'autres bibliothèques comme ils seront tous intégrés dans le fichier .exe.

La prochaine itération de Delphes est dite multi-plateforme (Windows, Mac, Linux). Je pense qu'il répond à toutes vos exigences, sauf la collecte des ordures.

Aucune langue répond à toutes ces restrictions. Techniquement, il semble que vous vous demandez quelque chose de presque identique à Java mais désavouer explicitement Java pour des raisons non précisées. Conceptuellement, il semble que vous cherchez Python ou Ruby mais les désavouer pour utiliser la syntaxe légèrement différente.

Compte tenu de l'ordre des priorités, je pense que le plus proche, vous trouverez dans les langues existantes pourraient être C avec le GC Boehm et GTK + pour l'interface graphique (et GLib pour le système d'objets). Vous dites « Non GTK » sous « Pas de temps d'exécution tiers requise », mais je ne suis pas sûr de ce que « l'exécution » vous parlez ici, depuis IIRC il est juste un tas de bibliothèques C.

Compte tenu de la spécificité des besoins, je pense que le mieux est d'écrire votre propre langue. Compilateurs ne sont vraiment pas si difficile d'écrire plus. Il existe des outils impromptu pour aider à l'analyse et la génération de code et les mathématiques et le traitement de texte et GC et ainsi de suite. Une fois que vous avez commencé, vous trouverez probablement des gens prêts à aider à le porter. De nombreuses bibliothèques de l'interface graphique multi-plateformes existantes (comme wxWidgets) utilisent C / C ++, donc si vous avez un IFT décent vous pouvez l'utiliser aussi. Vous voulez « soutien » et « documenté », mais si vous êtes l'auteur principal, vous comprendrez mieux que quiconque. La partie la plus difficile d'une langue est la conception, et il semble que vous avez une image dans votre tête exactement ce que la langue doit être déjà.

Il y a quelques si vous pouvez accepter soit wxwindows ou GTK ou QT comme une boîte à outils.

Dans l'ordre de ma préférence personnelle serait:

  1. Studio Eiffel
  2. D avec la liaison D-GTK
  3. F #

javascript?

est peut-être pas le plus rapide et ne répond pas pleinement à tous vos besoins, mais bon ... son partout et facile à apprendre


n'a pas lu après la liste, mais avec prisme Vous pouvez probablement atteindre la plupart de vos objectifs.

Vous pouvez également essayer Qt et c ++ autopointers

Silverlight pourrait réellement vous donner assez disponibilité multiplateforme pour utiliser C # /. NET, mais je ne suis pas sûr qu'il répond à toutes vos exigences.

On dirait Action Script 3 va vous rendre heureux. Mais il est plus orienté web, mais vous pouvez essayer de faire un projecteur ou une application Air. Je pense qu'il est une bonne solution parce que vous pouvez faire quoi que ce soit avec AS3 (image, vidéo, texte, clavier texte sonore vidéo et la souris, poire poire et 3D depuis le flash 10, ...) et il est multi-plateforme et vous pouvez l'utiliser sur le web ou votre bureau:)

Si vous êtes un codeur pur racine (en ligne de commande vim et uniquement pour ex), vous pouvez rendre votre application entière sans utiliser le ide flash, en écrivant simplement votre sous forme de fichiers et de les compiler avec mxmlc (qui vient avec le flex gratuit SDK).

Je suggère Python. Bien qu'il ne correspond pas à votre première exigence de style de codage, mais il répond à toutes vos autres exigences!

  • GUI développement: facile, élégante et plate-forme native style -> Oui Je suggère que vous essayez wxPython (wxWidgets pour Python). Il en est ainsi « natif », Python, environ 90% de tous les exemples de code wxWidgets sur Internet sont pour Python! J'ai personnellement utilisé TkInter, Gtk et wxPython. Tous sont bien pris en charge sur Python. Mon choix personnel est WX.
  • Communauté: Largement documenté, le développement actif, sympathique et serviable, l'unité de mise au point -> YES
  • orientée objet -> Oui
  • Collecte des ordures, pas de se soucier de pointeurs, etc -> Oui
  • compilation native, NO runtimes 3 parties comme GTK ou .NET -> Oui - Vous pouvez eiter.:
    • emballer un dll avec votre code - ou
    • py2exe qui est capable de créer un seul exécutable de votre projet
  • Multi-plateforme (peut être compilé sur * nix, Windows, Mac) -.> Oui
  • Raisonnablement rapide -.> Oui Eh bien, ce n'est pas le plus rapide là-bas, mais assez près que certains projets sérieux se font uniquement en Python.
  • Saisie mixte (soft typé, ou les deux et Soft- stricte typé - à savoir Pike) -.> Oui

En ce qui concerne votre première exigence, je dirais que vous devriez donner Python au moins un essai. Il ne nécessite que très peu d'efforts pour commencer. Il y a un tutoriel 2 heures qui vous donne une introduction sérieuse. Il y a une Basic tutoriel avancé où j'avais presque garantis que vous allez écrire votre première application sur le deuxième jour.

Je me sens aussi votre douleur Brian. La plupart du temps quand je pose des questions sur le bureau, la seule réponse des interfaces graphiques que je reçois est: « Faites-Web ». Vous avez vraiment cloués, puisque votre question reste ouverte malgré quelques réponses vraiment non constructives ...

Je regarde de près JavaFX 2 , il permet de résoudre certains des problèmes de swing et semble très prometteur . Cela peut être la seule chose que Oracle a fait droit depuis l'obtention Java de Sun.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top