Existe uma tendência para kits de ferramentas da GUI de plataforma cruzada? [fechadas]

12

Como é a tendência para o uso de estruturas de GUI de plataforma cruzada no momento? Há mais pessoas começando a usar estruturas de plataforma cruzada (como GTK +, Qt e wxWidgets) ou há mais pessoas que usam estruturas de plataforma vinculada (por exemplo, Cocoa ou WPF)? É mais ou menos estagnado? É como uma montanha russa? Como você acha que a tendência será, digamos, daqui a cinco anos?

O cenário do sistema operacional está mudando com menos pessoas usando o Windows (observação pessoal). Isso deve aumentar a demanda por kits de ferramentas de plataforma cruzada, não deveria?

Edit: Além disso, quais kits de ferramentas (multiplataforma) estão crescendo mais, se sim?

Anto
fonte

Respostas:

11

Quase parece que há uma tendência contra os kits de plataforma cruzada. Se as pessoas querem escrever uma vez, executar em qualquer lugar, elas tendem a usar HTML - criar um site. As pessoas só estão usando os kits de ferramentas da plataforma quando uma aparência nativa é altamente exigida, por exemplo, no iPhone. Portanto, se todo o motivo pelo qual você está se incomodando com o aplicativo não da Web é obter uma aparência nativa, não faz muito sentido usar um kit de plataforma cruzada.

Os kits de ferramentas de plataforma cruzada nunca funcionaram tão bem; as plataformas de desktop não são tão parecidas e é difícil realmente abstraí-las. Adicionar telefones e tablets à mistura torna ainda mais difícil. Você acaba com uma abstração muito vazada (consulte http://www.joelonsoftware.com/articles/LeakyAbstractions.html ). Geralmente, é mais fácil separar bem seu "mecanismo" da sua interface do usuário e gravá-la separadamente por plataforma.

A tendência de o Mac ser mais popular pode tornar os kits multiplataforma menos populares do que mais. Acho que muitas vezes as pessoas usavam um kit de plataforma cruzada mais para marcar a caixa de seleção de plataforma cruzada do que para obter resultados genuinamente bons em todas as plataformas. Quando você realmente se importa com várias plataformas ... começa a ver como os kits de plataforma cruzada têm desvantagens.

Aqui está um post de Alex Payne sobre essas desvantagens: http://al3x.net/2011/01/15/user-hostile-platforms.html

Acho que é revelador que muitos aplicativos grandes e populares de plataforma cruzada inventem sua própria abordagem de plataforma cruzada (Firefox, Chrome, Eclipse, OpenOffice.org são exemplos que vêm à mente). Ao possuir a estrutura, eles podem percorrer a abstração quando necessário. Além disso, esses aplicativos tendem a parecer iguais (e não especialmente nativos) em todas as plataformas.

Tudo isso dito, eu não tenho estatísticas reais ou qualquer coisa. Mas eu trabalhei muito no GTK + e tenho alguma familiaridade com bases de código, incluindo Firefox, Chrome e Eclipse. Então, eu já vi os desafios técnicos aqui em primeira mão.

Havoc P
fonte
2
Eu teria formulado isso simplesmente como "A tendência para kits de ferramentas de plataforma cruzada é de falha".
ohmantics
14

De fato, houve uma tendência em direção a um kit de ferramentas de interface do usuário de plataforma cruzada nos últimos anos. Esse kit de ferramentas é HTML / CSS / JavaScript.

É tão simples de desenvolver uma vez e é visto quase idêntico em todos os lugares.

E sim, os desenvolvimentos estão se afastando maciçamente do desktop para a web. Você vê você mesmo.


fonte
+1 Para a Web como uma tendência crescente da interface do usuário, mas acho que isso não resolve a questão do OP.
Concordo totalmente. Desenvolvemos nosso aplicativo IPTV na caixa Settop inteiramente usando HTML5 / CSS3 / JavaScript. Esse é o futuro, mas não o outro, estrutura maciça full-blown C / C ++
Ernelli
1
É bom mencionar, mas estou realmente interessado em kits de ferramentas de desktop para várias plataformas . Ainda votado.
Anto 30/01
@ Anto - pode querer adicionar isso à sua pergunta. Na leitura, não peguei no "desktop". Claro, eu sou um programador web e não reconhecer a maioria dos quadros que você mencionou :)
Marcie
@ Anton, você pode mencionar a área de trabalho em sua pergunta.
precisa saber é o seguinte
7

Costumo usar kits de ferramentas de plataforma cruzada porque eles têm um design melhor, não porque estou tentando ser de plataforma cruzada. Por exemplo, trabalho em projetos escritos em C ++ direcionados apenas à plataforma Windows. Eu uso o win32 ou o MFC, praticamente as ÚNICAS opções disponíveis para o kit de ferramentas nativo?

Santo fsck não! Eles são praticamente os piores montes de lixo de espaguete que eu já vi! O acoplamento direto do sistema de eventos ao sistema de "mensagens" do SO subjacente é incrivelmente pouco intuitivo e carece de expressividade necessária para criar rapidamente programas de interface do usuário. Abstrações de nível superior, atualmente fornecidas apenas por kits de ferramentas de plataforma cruzada, são absolutamente essenciais para a tarefa.

Esse é apenas um exemplo também. Eu poderia recitar e listar as coisas que são melhores feitas pelos kits de ferramentas de plataforma cruzada. O fato é que as interfaces gráficas são mais semelhantes entre si do que distintas. Há muito pouco diferente entre um programa de janelas no Windows e outro no Linux, por exemplo. O tipo de ação que você faz ao criar programas de interface do usuário é quase sempre exatamente o mesmo, independentemente do sistema operacional que você está alvejando ... e apenas pequenas diferenças entre arquiteturas como telefone / palm e desktop. O campo simplesmente se concentrou em metodologias de plataforma cruzada porque: a) é necessário para muitas pessoas eb) é tudo a mesma coisa!

Edward Strange
fonte
0

Um argumento contra a produção de uma estrutura de plataforma cruzada é que ela sempre será direcionada para o menor denominador comum - os clientes da estrutura desejam escrever código apenas uma vez e rodar 'em todos os lugares' suportados. Portanto, uma incrível plataforma de hardware se pareceria com qualquer outra plataforma que execute essa estrutura, pois você não pode aproveitar os recursos específicos da plataforma.

Com o tempo, infelizmente, isso resulta em estruturas inclinadas para a plataforma mais popular e no suporte de hackers para outras plataformas, ou apenas cortando-as quando o orçamento / popularidade acaba.

Uma maneira de capitalizar as habilidades específicas da plataforma é ter algo como uma #if PLATFORM_FEATURE_Xconstrução em torno de todas as verificações específicas de código ou tempo de execução equivalente, o que resulta em inchaço do código. Isso fica entediante rapidamente, pois as variantes da mesma plataforma precisarão de tratamento específico. Por exemplo, alguns XBox v1 não tinham disco rígido, portanto, jogos usando ferramentas de plataforma cruzada não podiam usá-lo para cache, em comparação com uma versão para PC onde você pode garantir um disco rígido.

Para aplicativos de Desktop / Produtividade, a aparência da plataforma parece ser importante, mas muitos aplicativos têm seu próprio estilo; portanto, não há problema em ter a mesma aparência em todas as plataformas, por exemplo, aplicativos criados com o AIR.

Os fornecedores de hardware como Apple, Sony, Nintendo e Toshiba desejam garantir que seus produtos façam algo para se diferenciar da concorrência, por exemplo, toque, acelerômetros / gryoscopes, Blu-Ray, exibição em 3D. É improvável que alguma vez exista uma plataforma com todos os recursos de todos os concorrentes reunidos em um (devido ao custo e à complexidade), para que um deles vença.

JBRWilkinson
fonte