Muy bien, para empezar, tengo experiencia como programador aficionado de Obj-C / Cocoa y Ruby w / Rails. Estos son geniales, pero no son realmente útiles para escribir aplicaciones multiplataforma (es de esperar que GNUStep algún día sea lo suficientemente completo para que el primero sea multiplataforma, pero ese día no es hoy).
C ++, por lo que puedo deducir, es extremadamente poderoso pero también un enorme y feo gigante que puede tomar media década o más para dominarlo. También he leído que puedes no solo dispararte muy fácilmente en el pie, sino volar toda la pierna con él, ya que la gestión de la memoria es todo manual. Obviamente, todo esto es bastante intimidante. ¿Es correcto?
Python parece proporcionar la mayor parte del poder de C ++ y es mucho más fácil de aprender a costa de la velocidad. ¿Qué tan grande es este sacrificio? ¿Tiene sentido o puede ser ignorado?
¿Qué me hará escribir aplicaciones rápidas, estables y altamente confiables en un tiempo razonable?
Además, ¿es mejor usar Qt para su interfaz de usuario o, en cambio, mantener front-end nativos separados para cada plataforma?
EDITAR: para mayor claridad, hay dos tipos de aplicaciones que quiero escribir: una es una interfaz de base de datos extremadamente amigable y conveniente y la otra, que sin duda vendrá mucho más tarde, es un editor mundial en 3D.
fuente
Respuestas:
C / C ++ es rápido. La realidad es que la mayoría de las aplicaciones no necesitarán ese rendimiento con el estado de los hardwares actuales. La forma habitual es desarrollar la aplicación en un lenguaje de alto nivel, como python, que optimizar cuando sea necesario con lenguajes de nivel inferior, como C / C ++.
Python le dará un gran impulso de productividad, es fácil de aprender y razonablemente rápido. Existe Cython , que puede usar para escribir extensiones C para usar en su aplicación python con una sintaxis similar a la de Python para acelerar los cuellos de botella.
Para las aplicaciones GUI estándar, Python puede brindarle un rendimiento suficiente. Y Python tiene algo muy bueno llamado Kivy , un marco de GUI que se ejecuta en Mac, Windows, Linux, Android e iOS, y admite multitáctil. La parte adicional es que las partes críticas de rendimiento están optimizadas con C, usando Cython.
fuente
Me gustaría ir con Python, ya que te da un gran impulso de productividad. Todavía puede escribir partes de su aplicación que necesiten velocidad en C ++, hay un proyecto de Cython que permite usar bibliotecas de C ++ directamente en Python. Si le preocupa la seguridad de sus fuentes, Cython también puede ayudarlo con eso, puede usarlo para compilar su código normal de Python en código C ++.
Recomendaría incrustar el motor Chrome y usar tecnologías como: HTML5 + CSS3 + Javascript + JQuery + Canvas para la interfaz de usuario.
Hay un marco que facilita la integración del motor Chrome en su aplicación C ++, se llama CEF - Chromium Embedded Framework . Es compatible con Windows, Linux, Mac OS.
Si le gusta Python, eche un vistazo a CEF Python , es un proyecto que proporciona enlaces de python para el marco CEF (mediante el uso de Cython ). CEF python actualmente solo admite Windows, pero hay planes para otros sistemas operativos.
Aquí hay una lista de aplicaciones que han sido exitosas usando CEF (tomado de aquí ):
También eche un vistazo a esta entrada del blog: Creación de una aplicación de calidad de escritorio en tecnologías web : equipo del editor de corchetes que explica cómo lo crearon utilizando el marco CEF y tecnologías web como: jQuery , Bootstrap , LESS CSS , requireJS , Jasmine for Unit testing , JSlint .
Descargo de responsabilidad: soy el autor del proyecto CEF Python.
fuente
La forma Qt de C ++ es excelente y limpia, así que por favor, suelte la parte del "monstruo feo", los he probado a ambos, y personalmente soy mucho más productivo / cómodo con Qt / C ++ que con la unión Qt de Python. Ese es mi consejo si eliges ir con Qt. Además, y además de la experiencia nativa que proporciona el widget Qt, Qt5 y QtQuick2 con tecnología QML y la capacidad de incrustar JavaScript y HTML5 dentro de su aplicación, le brindan un aspecto moderno similar a la web, si así lo desea.
Entonces, ¿por qué no me gusta Python en las aplicaciones de escritorio y prefiero mantenerlo para las secuencias de comandos o las cosas del servidor?
Python rompe un poco la alegría multiplataforma, su cliente tiene que instalar Python para ejecutar su aplicación (especialmente en Windows), y las diferentes versiones de Python que se encuentran en el sitio web oficial de Python ahora confunden al cliente, ¿cuál descargar / instalar? .
Python a exe , crea aplicaciones más grandes (en términos de tamaño).
Aplicaciones de Python, comen más memoria.
Ese es un punto de vista personal. El sistema principal de Qt, los punteros inteligentes, no te permitirán dispararte en el pie, ni en las piernas, el C ++ 11 te dará aún más funciones.
fuente