Em 2018, a Canonical lançou o Ubuntu 18.04, uma versão da distribuição que depois de muitos anos se despediu do Unity e passou para o GNOME como um ambiente de desktop padrão. Essa decisão trouxe elogios e reclamações. Em relação à parte negativa da mudança, muitos consideram que o Gnome Shell é muito lento e pesado.
Recentemente, Daniel Van Vugt, membro da equipe de desenvolvimento de desktops Ubuntu da Canonical, deu uma explicação muito detalhada para a comunidade sobre o status do Gnome Shell no Ubuntu, como exatamente ele funciona e o que eles estão fazendo para melhorar o desempenho. De suas palavras, há coisas bastante interessantes para aprender.
A falha não era JavaScript
Van Vugt explica que muitos dos problemas apresentados com o Gnome Shell foram surpreendentes, e parte da surpresa é que muitos não sabem exatamente o que é o Gnome Shell, um ambiente de desktop escrito em C e JavaScript em cima do Mutter, gerente e compositor de janelas.
O Gnome Shell é composto quase igualmente por código escrito em C e código em JavaScript, uma linguagem frequentemente criticada em várias frentes por causar problemas difíceis de prever e pior desempenho.
Embora o Gnome Shell aceite todas as críticas, Van Vugt explica que a maior parte da lógica é tratada pelo Mutter, e o Mutter é composto principalmente de arquivos escritos em C. O Gnome Shell é menor e adiciona itens como o painel da área de trabalho e o iniciador do aplicativos, da mesma maneira que o Unity funciona no Compiz.
Ubuntu planeja corrigir lentidão do GNOME Shell. Se não era o JavaScript, de quem era a culpa?
Portanto, enquanto muitos criticam que o Gnome Shell usa JavaScript e o culpam por seu baixo desempenho, a realidade é outra. Assim, quando você considera o Mutter, 90% do código do Gnome Shell é escrito em C e apenas 10% de todo o ambiente em JavaScript.
Na maioria das vezes, se você está interagindo apenas com um aplicativo, o Gnome Shell está executando o código nativo escrito em C.
A lição que a equipe do Ubuntu aprendeu disso é que acusar o JavaScript de ser mais lento que tudo o que está escrito em C, é um erro. E supor que o JavaScript esteja em uso, é outro engano.
Um Gnome adequado para computadores antigos com poucos recursos
Desde o lançamento do Ubuntu 18.04, a Canonical trabalha para que o Gnome Shell não pareça mais lento e mais pesado que o Unity ou outros desktops. Porém, até o Ubuntu 19.04 eles só conseguiram adicionar pequenas melhorias no desempenho.
No entanto, com a chegada do Ubuntu 19.10, essas melhorias se tornaram substanciais. O objetivo do Ubuntu 20.04 será fazer com que o Gnome Shell tenha o melhor desempenho em máquinas modernas e poderosas. Então, para o Ubuntu 20.10 eles esperam que o Gnome Shell funcione rapidamente, mesmo em computadores antigos com hardware modesto.
A idéia é que o Gnome Shell seja “mais rápido”, mantendo a qualidade. Para fazer isso, eles precisam trabalhar principalmente no Mutter. Além disso, devem reescrever partes de seu código para evitar a perda de quadros e concluir a renderização multimonitorada de alto desempenho no Wayland.
Isso é algo em que a própria equipe do Gnome já está trabalhando. Ainda há muito a fazer. Portanto, o primeiro passo é garantir que o Gnome Shell seja rápido nos computadores mais poderosos e faça o mesmo com os mais modestos. Nestes, é quase impossível de usar.
Fonte: Genbeta