Voici un scénario de la vie réelle: j'ai besoin de sélectionner une croix-plate-forme de développement de l'environnement de bureau application de l'interface utilisateur pour une petite équipe - à savoir une à deux personnes. Ce n'est pas pour une application spécifique - mais un tas de petits utilitaires pour la plupart de l'éducation, de sorte qu'ils doivent être en mesure de se connecter à des services web, jouer à certains médias, etc. Ma sœur et ma femme sont tous les deux professeurs, et les besoins de certaines applications, qui fonctionne à la fois sur Windows et Mac.
Après des recherches sur ce sujet pendant un certain temps je veux utiliser un Débordement de Pile de la communauté, comme une caisse de résonance. J'essaie d'être objectif dans ma sélection ( surtout depuis que mon choix numéro un - n'est pas que bon). Aussi j'ai personnellement développé en Ruby, PHP, Python, C++ et un peu en Java & VB.NET, donc mon avis est influencé par cela, mais je suis tout à fait pour l'apprentissage d'une nouvelle langue, si les outils adapte le besoin. Voici une liste des exigences - à peu près tous d'entre eux sont non-négociables. Rappelez-vous ceci est pour un une-deux personne de l'équipe, de développer des petits projets personnels - par conséquent, certains exigences.
Langue:
- Croix plate-forme / indépendant de la plateforme (au moins Windows et MacOSX soutien, Linux souhaitable)
- Bien documenté ( les points de bonus si il a un livre)
- Un bon soutien de la communauté ou d'un soutien commercial
- Raisonnablement rapide ( encore une fois ce n'est pas pour un MMORPG ou de stock-application de négociation, de sorte qu'il n'a pas à être incroyablement rapide)
- Raisonnable de la courbe d'apprentissage ( pas de Montage)
- Relativement rapide développement
Cadre
- La croix-Plate-forme Moderne natif de look & feel (tcl/tk est définitivement out), ce point est d'une importance capitale, l'utilisateur ne se soucie pas de ce qui est à l'intérieur, ils se soucient de la façon dont il ressemble et comment il fonctionne. Mais regarde est ce que vend l'application. Je sais que c'est pas si important que cela pour les développeurs, mais la plupart des utilisateurs ne fonctionnera pas dans un laid app - ils sont trop exigeants maintenant - après voir tous les eye-candy qui est sur Mac et un peu sur Windows.
- Bien documenté
- Un grand nombre de plugins / libs pour les tâches courantes (PDF, CSV/XLS, sons-mp3/ogg, etc)
- Raisonnable, facilité d'installation / utilisation
- Facilité de déploiement
- Prise en charge de certains ou de tous les grands DBs: MySQL, SQLite, PostgreSQL, MSSQL, Oracle, DB/2
- Un bon support pour les technologies de réseau: REST ou SOAP, ftp, ssh, etc
Voici mes réflexions sur tous les grands joueurs sans ordre particulier:
Ruby:
J'ai regardé wxWidgets, qtruby, fxruby, titane, tcl/tk, bouline, gtk+
Pour:
- bonne croix-plate-forme de soutien
- beaucoup de pierres précieuses
- le développement rapide de
- bonne communauté
Inconvénients:
- impossible de compiler dans un binaire
- pas de kits graphiques prend en charge native de regarder à travers le conseil d'administration
- la plupart de l'absence d'une documentation appropriée
Python:
J'ai regardé wxWidgets, qtruby, fxruby, titane, tcl/tk, gtk+ (et divers python permutations de celles-ci)
Pour:
- bonne croix-plate-forme de soutien
- beaucoup de libs
- le développement rapide de
- bonne communauté
- relativement facile à installer et à créer un fichier binaire
Inconvénients:
- pas de kits graphiques prend en charge native de regarder à travers le conseil d'administration
Realbasic:
Pour:
- bonne croix-plate-forme de soutien
- bon support commercial
- le développement rapide de
- très facile à installer et créer un fichier binaire
- presque une interface native (quelques problèmes avec cocoa sur mac)
Inconvénients:
- la plupart des plugins additionnels sont commerciales
- la réputation de mauvais code de pratiques (la nature de la bête je suppose)
- la communauté des utilisateurs est en manque un peu
Java:
Pour:
- bonne croix-plate-forme de soutien
- bon support commercial
- ÉTENDUE de la richesse de la documentation et des bibliothèques
- rapide et fiable
Inconvénients:
- plus difficile à déployer
- pas de GUI toolkit prend en charge native de regarder à travers le conseil d'administration
- plus raide de la courbe d'apprentissage.
- complexe dev environmnet
C++:
Pour:
- bonne croix-plate-forme de soutien
- bonne communauté
- ÉTENDUE de la richesse de la documentation et des bibliothèques
- très vite
Inconvénients:
- plus difficile à développer
- plus raide de la courbe d'apprentissage.
- complexe environnement de dev
- pas bon outil graphique kit natif de look & feel.
C#:
À peu près la seule solution est Mono Projet
Pour:
- bonne croix-plate-forme de soutien
- bon support commercial
- presque une interface native (possible de le lier à l'interface graphique native api par la plate-forme de base)
- ÉTENDUE de la richesse de la documentation et des bibliothèques
- très vite
Inconvénients:
- plus difficile à développer
- plus raide de la courbe d'apprentissage.
- complexe environnement de dev
S'il vous plaît laissez-moi savoir ce que vous en pensez. Ai-je raté quelque chose? Pouvez-vous suggérer d'autres solutions. Il y a également une option JavaScript - utilisation de Titane SDK - alors que c'est moderne, c'est du JavaScript, et il n'est pas natif de la Recherche.
RÉPONSES:
- Explique un peu plus sur l'objectif pour les applications par demande ci-dessous.
- Sur le sujet de wxWidgets, GTK, etc - je le répète: l'exigence primordiale est originaire de REGARDER et de se SENTIR à la fois sur Windows et Mac et FACILITÉ D'UTILISATION
- J'ai peut-être tort à propos de Qt, mais je ne l'ai essayé avec Ruby - et je n'arrivais pas à compiler dans un bon paquet qui semble être un problème pour beaucoup de gens, mais c'est un Rubis problème, pas de Qt - j'ai eu tort de le rejeter.
- Je vous remercie pour C++ vs C# gaffe, je pensais à C#, mais tapé C++ sans réfléchir. Mis à jour.