Por que a Canonical está escolhendo o QT sobre o GTK para a próxima geração do Unity?

32
Muito tem sido escrito que estou meio confuso, mas se não estou enganado, a Canonical está construindo a próxima geração do Unity para dispositivos móveis com o Qt, e no futuro próximo o desktop também será migrado para o qt .

Eu só queria saber as razões técnicas e / ou políticas que motivaram essa decisão e quais consequências poderiam ter para os aplicativos de desktop Ubuntu existentes atualmente.

    
por opensas 13.04.2013 / 20:07

4 respostas

22

Você pode encontrar a resposta na lista de discussão e no blog de Mark Shuttleworth . Esta postagem do blog provavelmente responde melhor:

  

Como parte do nosso planejamento para o Natty + 1, precisaremos encontrar algum espaço no CD para as bibliotecas do Qt, e avaliaremos os aplicativos desenvolvidos com o Qt para inclusão no CD e instalação padrão do Ubuntu.

     

Facilidade de uso e integração efetiva, são valores-chave em nossa experiência do usuário. Nós nos importamos que as aplicações que escolhemos sejam harmoniosas entre si e com o sistema como um todo. Historicamente, isso significa que damos uma preferência muito strong a aplicativos escritos usando o Gtk, porque uma certa quantidade de harmonia vem, por padrão, do uso do mesmo kit de ferramentas do desenvolvedor. Dito isto, com o OpenOffice e o Firefox tendo estado lá desde o início, o Gtk claramente não é um requisito absoluto. O que estou argumentando agora é que são os valores que são importantes e o kit de ferramentas é apenas um meio para isso. Devemos avaliar os aplicativos com base em quão bem eles atendem ao requisito, não os prejudicar com base nas escolhas técnicas feitas pelo desenvolvedor.

     

Ao avaliar um aplicativo para a instalação padrão do Ubuntu, devemos perguntar:

     
  • é software livre?
  •   
  • é o melhor da sua classe?
  •   
  • integra-se às configurações e preferências do sistema?
  •   
  • ele se integra a outros aplicativos?
  •   
  • é acessível a pessoas que não podem usar mouse ou teclado?
  •   
  • parece e é consistente com o resto do sistema?
  •   

É claro que a escolha de Qt pelo desenvolvedor não influencia os dois primeiros. O próprio Qt está disponível sob a GPL há muito tempo e, mais recentemente, tornou-se disponível sob a LGPL. E há muitos softwares best-in-class escritos com o Qt, é um kit de ferramentas muito capaz.

     

As configurações do sistema e as prefs, no entanto, têm sido uma causa de atrito entre o Qt e o Gtk. A integração com as configurações e preferências do sistema é fundamental para o sentido de uma aplicação “pertencente” ao sistema. Ela afeta a capacidade de gerenciar esse aplicativo usando as mesmas ferramentas usadas para gerenciar todos os outros aplicativos e os tipos de experiência de configurações e preferências que os usuários podem ter com o aplicativo. Isso tem sido tradicionalmente um problema com os aplicativos Qt / KDE no Ubuntu, porque todos os aplicativos Gtk usam um repositório de preferências gerenciável centralmente, e os aplicativos do KDE fazem as coisas de maneira diferente.

     

Para resolver isso, a Canonical está conduzindo o desenvolvimento de ligações dconf para o Qt, para que seja possível escrever um aplicativo Qt que use a mesma estrutura de configurações de todo o resto do Ubuntu. Fizemos contrato com Ryan Lortie, que obviamente conhece muito bem o dconf, e ele trabalhará com algumas pessoas da Canonical que têm usado o Qt para o trabalho de desenvolvimento personalizado para os clientes. Temos certeza de que o resultado será natural para os desenvolvedores do Qt e uma expressão completa da semântica e do estilo do dconf.

     

A equipe do Qt tem trabalhado muito bem na ampla comunidade do Ubuntu - temos uma ótima representação Qt na UDS a cada seis meses, a equipe do Kubuntu tem profunda experiência e interesse em embalagem e manutenção do Qt, há muita troca técnica entre Qt upstream e várias partes da comunidade Ubuntu, incluindo a Canonical. Por exemplo, o pessoal da Qt está trabalhando para integrar o uTouch.

     

Eu faria uma distinção entre "Qt" e "KDE" nos lugares óbvios. Um aplicativo do KDE não sabe nada sobre a configuração do sistema dconf e, como resultado, não pode se integrar facilmente ao desktop do Ubuntu. Portanto, não proporemos o Amarok para substituir o Banshee em breve! Mas eu acho que é totalmente plausível que o dconf, uma vez que tenha ótimas ligações Qt, seja considerado pela comunidade KDE. Há pessoas melhores para conduzir essa conversa, se quiserem, por isso não vou aprofundar a ideia aqui. No entanto, se um aplicativo do KDE aprender a falar com o dconf além dos mecanismos padrão do KDE, que devem ser diretos, ele seria um candidato para a instalação padrão do Ubuntu.

     

A decisão de estar aberto ao Qt não é de forma alguma uma crítica ao GNOME. É uma celebração da diversidade e complexidade do software livre. Esses valores de facilidade de uso e integração permanecem valores compartilhados com o GNOME, e uma ótima base para colaboração com os desenvolvedores e membros do projeto do GNOME. Talvez o próprio GNOME abraça o Qt, talvez não, mas se isso acontecer, nossa disposição de abrir caminho será uma contribuição na liderança. É muito mais fácil criar um ecossistema vibrante se você aceitar uma certa divergência do modo canônico, por assim dizer. Nosso trabalho em design é centrado no GNOME, com configurações e preferências sendo o foco atual à medida que nos movemos para o GNOME 3.0 e gtk3.

     

É claro que essa é uma oportunidade perfeita para aqueles que zombam desse relacionamento, mas, na minha opinião, o que mais importa é o sólido relacionamento que temos com pessoas que realmente escrevem aplicativos sob o banner do GNOME. Queremos ser a melhor maneira de fazer o trabalho duro daqueles desenvolvedores de software livre importarem , o que queremos dizer, a melhor maneira de garantir que faça uma diferença real em milhões de vidas todos os dias, e a melhor maneira de conectá-los a seus usuários.

     

Para os bons amigos da Trolltech, agora Nokia, que fizeram da Qt um ótimo kit de ferramentas - obrigado. Para desenvolvedores que desejam usá-lo e fazer parte da experiência do Ubuntu - seja bem-vindo.

    
por Rinzwind 13.04.2013 / 20:54
14

O GTK + não oferece suporte à independência de resolução. Os dispositivos móveis modernos têm densidades de pixels muito altas. Se você executar um aplicativo GTK + em uma tela móvel, todos os elementos da interface do usuário serão tão pequenos que ficarão inutilizáveis.

Isso foi um bug aberto no GTK + desde 2008 até o fechamento em 2014 com "nós tem suporte a escala de hi-dpi agora - não é exatamente a mesma coisa, mas perto o suficiente para tornar este bug obsoleto "comentário.

Quando o GTK + 3 foi lançado, o projeto teve a oportunidade perfeita para adicionar independência de resolução, porque eles estavam quebrando a compatibilidade de qualquer maneira. Eles escolheram não fazer isso, e agora é muito tarde para eles.

No Roteiro GTK + , a independência da resolução está prevista para o lançamento após a versão 4.0, para que eles divulguem 4.0 e depois o maior liberação depois disso terá. Se eles seguirem esse plano, até mesmo o desktop GNU / Linux terá que abandonar o GTK +, pois monitores de desktop e monitores de laptop de alta DPI já estão disponíveis e estão prestes a se tornar o novo normal.

    
por trampster 02.07.2013 / 03:34
2

Minha opinião sobre os motivos técnicos / pragmáticos: a Nokia comprou a Trolltech e investiu muito em QT. É leve e tem anos de otimização para a plataforma móvel. Independentemente das suas opiniões atuais da Nokia, o N900 estava anos à frente do seu tempo ... e era baseado no debian / QT ... mas caro. No entanto, não tenho conhecimento real das decisões.

    
por mike stewart 13.04.2013 / 20:21
1
​​O blog de Matt Zimmerman também é informativo:

  

É nesse espírito que venho pensando sobre o Qt recentemente. Nós   quer tornar mais rápido, fácil e indolor desenvolver aplicações para   Ubuntu e Qt é uma opção que vale a pena explorar para aplicação   desenvolvedores. Pensando nisso, percebi que há bastante   um pouco de semelhança entre os pontos strongs do Qt e alguns dos novos   direções no Ubuntu:

     
  • O Qt tem um longo histórico de uso no ARM, bem como no x86 , em virtude de ser popular em dispositivos incorporados. Produtos de consumo foram construídos   usando o Qt no ARM por mais de 10 anos. Nós temos feito produtos Ubuntu   disponível para ARM há quase dois anos, e 10.10 suporta mais   Placas ARM do que nunca, incluindo placas de referência da Freescale,   Marvell e TI. Qt está adicionando otimizações do ARMv7 para beneficiar as últimas   Chips ARM. Fazemos isso para oferecer aos OEMs uma escolha de hardware,   sem sacrificar a escolha do software. Qt preserva essa mesma escolha para   desenvolvedores de aplicativos.
  •   
  • O Qt é uma estrutura de aplicativo entre plataformas , com portas oficiais para Windows, MacOS e mais, e portas comunitárias experimentais para   Android, o iPhone e o WebOS. O suporte strong de plataforma cruzada era um   dos princípios originais do Qt, e isso mostra na maturidade do   portos oficiais. Com o Ubuntu Light sendo instalado em computadores com   Windows, e Ubuntu One pouso no Android e no iPhone, precisamos   interoperabilidade com outras plataformas. Há também um grande   população de desenvolvedores que já sabem como segmentar o Windows, que   pode alcançar os usuários do Ubuntu, escolhendo Qt.
  •   
  • A Qt tem um sistema de entrada de toque bastante maduro, que agora tem suporte para multitoque e gestos (incluindo QML), embora seja apenas   completo no Windows 7 e no Mac OS X 10.6. Enquanto isso, a Canonical tem sido   trabalhando com a comunidade para desenvolver um multi-touch de baixo nível   framework para Linux e X11, para o benefício do Qt e outros kits de ferramentas.   Esses esforços acabarão por se encontrar no meio.
  •   

No geral, acho que o Qt tem muito a oferecer às pessoas que querem desenvolver   aplicações para (e no) Ubuntu, particularmente agora. Já poderes   aplicações multiplataforma populares como o VLC, para não mencionar o   distribuição inteira do Kubuntu. Eu perdi quando isso aconteceu no ano passado,   mas o Qt está agora disponível sob a LGPL 2.1 ou a GPL 3.0,   o que deve torná-lo adequado para praticamente qualquer aplicativo do Ubuntu. isto   tem strong apoio comercial, bem como uma grande comunidade de desenvolvedores.   Nenhuma solução única atenderá às necessidades de todos os desenvolvedores, é claro, e   O Ubuntu suporta múltiplos toolkits e frameworks por este motivo, mas   O Qt parece ser uma ótima ferramenta para ter em nossa caixa de ferramentas o caminho a seguir.

Um Artigo do Ars Technica discutindo esta postagem no blog fornece algumas ideias:

  

O Qt pode trazer desenvolvedores de terceiros para o Linux

     

Embora o Gtk + ainda tenha valor e haja várias razões para   continuar a usá-lo para construir software Linux nativo, o Qt é agora o   escolha óbvia para ISVs que estão segmentando várias plataformas. Qt   torna excepcionalmente fácil a conformidade com a aparência nativa da   a plataforma subjacente ou construir uma interface de usuário totalmente personalizada que   é ideal para um dispositivo de destino ou fator de forma.

     

Como a Nokia e a Intel levam o MeeGo a uma ampla gama de dispositivos,   para atrair alguns dos principais fornecedores de software comercial. Seria   relativamente fácil para essas empresas de software para trazer seus móveis Qt   aplicativos para o desktop Linux usando o mesmo código que eles usam em   MeeGo O Qt é especificamente projetado para tornar isso fácil. Isso seria um   grande vitória para desktop Linux porque traria a terceiros   aplicações que de outra forma não estariam disponíveis.

     

É importante notar que alguns fornecedores de software móvel proeminentes são   já ansiosamente abraçando Qt devido ao apoio da Nokia para o kit de ferramentas.   A empresa de streaming de vídeo móvel Qik, por exemplo, está trabalhando em um   porta experimental baseada em Qt de sua aplicação popular com o objetivo de   trazendo para o MeeGo.

O autor do artigo é o criador do aplicativo Gwibber IM, então ele tem alguma experiência no desenvolvimento de GUIs para Linux.

    
por muru 17.11.2015 / 13:21