APIs para C++

Iniciado por ded3p, 18 de Março de 2012, 23:59

tópico anterior - próximo tópico

ded3p

Bom, eu estou estudando C++ há um tempinho, mas apenas a parte mais simples da programação e tal, e decidi começar a fazer testes com APIs, para aprender a mexer melhor melhor as janelas e para começar a criar programas um pouco mais complexos, para ficar mais fácil de estudar o C++.

Porém, fiquei um pouco em dúvida em relação de qual API escolher. Eu sei que já existem vários tópicos sobre isso, mas alguns são muito antigos e citam pontos que não são mais válidos hoje em dia e por isso, continuo na dúvida entre as APIs.

As que eu encontrei como principais são: GTK, QT e wxWidgets, com uma vantagem para as duas primeiras...
Então, queria saber quais são os pontos fortes e pontos fracos de cada API (qual possibilita mais interação com o programa que será criado, qual possui mais interação com outras libs, qual é mais simples de rodas em múltiplos SOs, etc...). Pois em alguns locais, encontrei informações de que GTK é mais rápido que QT e em outros diziam que eram igualmente velozes e tal, então não sei qual é a melhor escolha.

Outra coisa que me deixa em dúvida, é a questão do GTK, se é melhor usar GTK+ ou gtkmm para C++, pois o GTK+ é escrito em C e o gtkmm é escrito em C++, porém algumas pessoas dizem que mesmo em C++, o GTK+ leva vantagem sobre o gtkmm.

Darcamo

Já brinquei um pouco com GTKmm e com Qt. Escolhi a GTKmm no início já que uso Ubuntu (e portanto Gnome). QT já foi sim mais pesada do que a GTK e o visual de programas feitos em QT também não era tão bom em ambientes que usam GTK como o Gnome.

Mas depois que a QT4 foi lançada acho que a coisa mudou. Hoje em dia programas em QT ficam bons mesmo quando executados em ambientes GTK. Além disso, acho que não dá mais para dizer com certeza se uma das duas é mais rápida que a outra. Hoje em dia prefiro a QT4, mas essa é a opinião de quem apenas brincou com essas bibliotecas. Nada muito sério ou complexo.

GTK e QT têm algumas diferenças filosóficas em seu design. GTK tenta se limitar ao toolkit gráfico enquanto que a QT também implementa outras coisas úteis. Por exemplo, em GTKmm você certamente usará std::string enquanto que em QT você usa a QString, só para dar um exemplo simples. Cada abordagem tem vantagens e desvantagens, mas acho que no final das contas fica um pouco mais fácil trabalhar com a QT (já que ela já implementa tudo do que você precisa).

Quanto a diferença entre GTK e GTKmm, GTKmm é apenas um "binding" da GTK para C++. É impossível portanto GTKmm ser mais rápida que a GTK já que é apenas uma camada de API para C++. Mas também não acho que seja mais lenta e prefiro trabalhar com uma API C++ do que uma API em C.

irtigor

Antigamente também tinha a questão da licença. Hoje, considerando o desenvolvimento de aplicativos tradicionais pra desktop, as duas estão em pé de igualdade. Teste e fique com a que mais gostar.

ded3p

Hmm...
E alguém tem alguma lista de programas feitos com GTK+ ou gtkmm?
Eu encontrei uma lista do QT: http://en.wikipedia.org/wiki/Category:Software_that_uses_Qt e uma lista do wxWidgets: http://en.wikipedia.org/wiki/Category:Software_that_uses_wxWidgets, mas não encontrei nenhuma lista referente ao GTK...