D'accord, pour commencer, j'ai de l'expérience en tant que programmeur amateur Obj-C / Cocoa et Ruby w / Rails. Celles-ci sont excellentes, mais elles ne sont pas vraiment utiles pour écrire des applications multiplateformes (espérons que GNUStep sera un jour suffisamment complet pour que la première soit multi-plate-forme, mais ce jour n'est pas aujourd'hui).
Le C ++, d'après ce que je peux comprendre, est extrêmement puissant mais aussi un énorme monstre laid qui peut prendre une demi-décennie ou plus à maîtriser. J'ai également lu que vous pouvez très facilement non seulement vous tirer une balle dans le pied, mais en souffler toute la jambe car la gestion de la mémoire est entièrement manuelle. De toute évidence, tout cela est assez intimidant. Est-ce correct?
Python semble fournir la majeure partie de la puissance de C ++ et est beaucoup plus facile à récupérer au détriment de la vitesse. Quelle est la taille de ce sacrifice? Est-il significatif ou peut-il être ignoré?
Qu'est-ce qui me permettra d'écrire des applications rapides, stables et très fiables dans un délai raisonnable?
En outre, est-il préférable d'utiliser Qt pour votre interface utilisateur ou de conserver des frontaux natifs séparés pour chaque plate-forme?
EDIT: Pour plus de clarté, il y a deux types d'applications que je veux écrire: l'une est une interface de base de données extrêmement conviviale et pratique et l'autre, qui viendra sans doute beaucoup plus tard, est un éditeur de monde 3D.
la source
Réponses:
C / C ++ est rapide. La réalité est que la plupart des applications n'auront pas besoin de cette performance avec l'état des matériels actuels. La manière habituelle est de développer l'application dans un langage de haut niveau, comme python, que d'optimiser en cas de besoin avec des langages de niveau inférieur, comme C / C ++.
Python vous donnera une grande augmentation de la productivité, il est facile à apprendre et raisonnablement rapide. Il existe Cython , que vous pouvez utiliser pour écrire des extensions C à utiliser dans votre application python avec une syntaxe de type python pour accélérer les goulots d'étranglement.
Pour les applications GUI standard, python peut vous donner suffisamment de performances. Et python a quelque chose de très cool appelé Kivy , un framework GUI qui fonctionne sur Mac, Windows, Linux, Android et iOS, et prend en charge le multi-touch. La partie bonus est que les parties critiques pour les performances sont optimisées avec C, en utilisant Cython.
la source
J'irais avec Python, car cela vous donne une grande augmentation de la productivité. Vous pouvez toujours écrire des parties de votre application qui ont besoin de vitesse en C ++, il existe un projet Cython qui permet d'utiliser les bibliothèques C ++ directement en Python. Si vous êtes préoccupé par la sécurité de vos sources, Cython peut également vous aider, vous pouvez l'utiliser pour compiler votre code python normal en code C ++.
Je recommanderais d'intégrer le moteur Chrome et d'utiliser des technologies telles que: HTML5 + CSS3 + Javascript + JQuery + Canvas pour l'interface utilisateur.
Il existe un cadre qui facilite l'intégration du moteur Chrome dans votre application C ++, il s'appelle CEF - Chromium Embedded Framework . Il prend en charge Windows, Linux, Mac OS.
Si vous aimez Python, jetez un œil à CEF Python , c'est un projet qui fournit des liaisons python pour le framework CEF (en utilisant Cython ). Le python CEF ne prend actuellement en charge que Windows, mais il existe des plans pour d'autres systèmes d'exploitation.
Voici une liste des applications qui ont réussi avec CEF (tirées d' ici ):
Jetez également un œil à cette entrée de blog: Construire une application de qualité bureau sur les technologies Web - L'équipe de l'éditeur de supports expliquant comment ils l'ont construite à l'aide du cadre CEF et des technologies Web comme: jQuery , Bootstrap , LESS CSS , requireJS , Jasmine for Unit testing , JSlint .
Avertissement: je suis l'auteur du projet CEF Python.
la source
La manière Qt de C ++ est excellente et propre, alors s'il vous plaît, laissez tomber la partie "laid monstre", je les ai essayés tous les deux, et personnellement je suis beaucoup plus productif / confortable avec Qt / C ++ qu'avec la liaison Qt de Python. C'est mon conseil si vous choisissez d'aller avec Qt. De plus, en plus de l'expérience native fournie par le widget Qt, Qt5 et QtQuick2 avec la technologie QML et la possibilité d'incorporer JavaScript et HTML5 dans votre application, vous offrent une apparence et une convivialité modernes, si vous choisissez de le faire.
Alors, pourquoi je n'aime pas Python dans les applications de bureau et je préfère le conserver pour les scripts ou les choses côté serveur?
Python brise un peu la joie multiplateforme, votre client doit installer Python pour exécuter votre application (en particulier sous Windows), et les différentes versions de Python qui sont sur le site officiel de python rendent maintenant le client confus, lequel télécharger / installer .
Python pour exe , faites de plus grandes applications (en termes de taille).
Applications Python, mangez plus de mémoire.
C'est un point de vue personnel. Le système parent de Qt, les pointeurs intelligents, ne vous laissera pas vous tirer dans le pied, ni les jambes, le C ++ 11 vous donnera encore plus de fonctionnalités.
la source