Tudo bem, para começar, tenho experiência como programador amador de Obj-C / Cocoa e Ruby w / Rails. Eles são ótimos, mas não são realmente úteis para escrever aplicativos de plataforma cruzada (espero que o GNUStep seja um dia completo o suficiente para que o primeiro seja multiplataforma, mas esse dia não é hoje).
C ++, pelo que sei, é extremamente poderoso, mas também um gigante enorme e feio que pode levar meia década ou mais para dominar. Também li que você pode facilmente, não apenas dar um tiro no próprio pé, mas também estourar sua perna inteira, pois o gerenciamento de memória é totalmente manual. Obviamente, tudo isso é bastante intimidador. Está correto?
O Python parece fornecer a maior parte do poder do C ++ e é muito mais fácil entender o custo da velocidade. Quão grande é esse sacrifício? É significativo ou pode ser ignorado?
O que me fará escrever aplicativos rápidos, estáveis e altamente confiáveis em um período de tempo razoável?
Além disso, é melhor usar o Qt para sua interface do usuário ou manter front-ends nativos separados para cada plataforma?
EDIT: Para maior clareza, existem dois tipos de aplicativos que quero escrever: um é um frontend de banco de dados extremamente amigável e conveniente e o outro, que sem dúvida virá muito mais tarde, é um editor mundial 3D.
fonte
Respostas:
C / C ++ é rápido. A realidade é que a maioria dos aplicativos não precisará desse desempenho com o estado dos hardwares atuais. A maneira usual é desenvolver o aplicativo em uma linguagem de alto nível, como python, e otimizar quando necessário com linguagens de nível inferior, como C / C ++.
O Python oferece um grande aumento de produtividade, é fácil de aprender e razoavelmente rápido. Existe o Cython , que você pode usar para escrever extensões C para usar em seu aplicativo python com sintaxe semelhante a python para acelerar gargalos.
Para aplicativos GUI padrão, o python pode fornecer desempenho suficiente. E python tem algo muito legal chamado Kivy , uma estrutura de interface gráfica do usuário que roda em Mac, Windows, Linux, Android e iOS, e suporta multi-touch. A parte do bônus é que as partes críticas de desempenho são otimizadas com C, usando o Cython.
fonte
Eu iria com o Python, pois oferece um grande aumento de produtividade. Você ainda pode escrever partes do seu aplicativo que precisam de velocidade em C ++; existe um projeto Cython que permite usar bibliotecas C ++ diretamente em Python. Se você está preocupado com a segurança de suas fontes, o Cython também pode ajudar com isso, você pode usá-lo para compilar seu código python normal em código C ++.
Eu recomendaria incorporar o mecanismo Chrome e usar tecnologias como: HTML5 + CSS3 + Javascript + JQuery + Canvas para a interface do usuário.
Existe uma estrutura que facilita a incorporação do mecanismo Chrome no seu aplicativo C ++, chamado CEF - Chromium Embedded Framework . Ele suporta Windows, Linux, Mac OS.
Se você gosta de Python, dê uma olhada no CEF Python , é um projeto que fornece ligações python para a estrutura CEF (usando Cython ). Atualmente, o python CEF suporta apenas o Windows, mas há planos para outros SOs.
Aqui está uma lista de aplicativos que foram bem-sucedidos usando o CEF (extraído daqui ):
Também dê uma olhada nesta entrada do blog: Construindo um aplicativo com qualidade de desktop em tecnologias da Web - Equipe de editores de colchetes, explicando como eles foram criados usando a estrutura CEF e tecnologias da web como: jQuery , Bootstrap , MENOS CSS , requireJS , Jasmine for Unit testing , JSlint .
Disclaimer: Eu sou o autor do projeto CEF Python.
fonte
O modo Qt do C ++ é ótimo e limpo; portanto, abandone a parte "feio gigante", experimentei os dois e, pessoalmente, sou muito mais produtivo / confortável com o Qt / C ++ do que com a ligação Qt do Python. Esse é o meu conselho se você optar por usar o Qt. Além da experiência nativa que o widget Qt fornece, o Qt5 e o QtQuick2 com tecnologia QML e a capacidade de incorporar JavaScript e HTML5 no seu aplicativo, oferece uma aparência moderna da Web, se você optar por fazê-lo.
Então, por que não gosto de Python em aplicativos de desktop e prefiro mantê-lo para scripts ou coisas do lado do servidor?
O Python quebra um pouco a alegria de plataforma cruzada, seu cliente precisa instalar o Python para executar seu aplicativo (especialmente no Windows), e as diferentes versões do Python que estão no site oficial do python agora deixam o cliente confuso, qual baixar / instalar .
Python para executar, criar aplicativos maiores (em termos de tamanho).
Aplicativos Python, consomem mais memória.
Esse é um ponto de vista pessoal. O sistema pai do Qt, ponteiros inteligentes, não permite que você atire no pé nem nas pernas, o C ++ 11 oferece ainda mais recursos.
fonte