Índice:
- O que é o Bit Rot, exatamente?
- Primeiro, alguns outliers
- Erosão de software
- Entropia de software
- Software Bloat
- Então, o que tudo isso significa e o que posso fazer sobre isso?
- Questões?
Os computadores são como as pessoas - à medida que envelhecem, tendem a ficar um pouco mais lentos e as falhas são mais fáceis de ver.
Nossos telefones são computadores reduzidos para serem do tamanho de um bolso e fáceis de transportar. E isso significa que, com o passar do tempo, as coisas não estão acontecendo tão rapidamente quanto costumavam ou as coisas podem ficar um pouco ruins. Isso é universal; isso acontece com os telefones Galaxy, LG, Pixel e iPhones e todos os outros telefones que fazem mais do que fazer chamadas e enviar textos. Algumas pessoas dizem que não vêem isso acontecer, e é por isso que acontece e a maneira como o software é escrito para todos os telefones diferentes na natureza. Mas ainda está acontecendo no seu telefone agora, e sempre será.
Vamos dar uma olhada no que é comumente conhecido como "Bit Rot" e ver se não conseguimos entender as coisas um pouco melhor.
O que é o Bit Rot, exatamente?
É um termo muito discutido por pessoas que estão no computador e basicamente significa que o software é "antigo" e se tornou mais lento do que costumava ser. Há três coisas em jogo, e elas estão bem documentadas, mesmo que não sejam muito fáceis de entender: Erosão de Software, Entropia de Software e Software Bloat.
Primeiro, alguns outliers
Às vezes, pode haver outros fatores também. A degradação de dados e a fluência de recursos podem causar lentidão nos programas e aplicativos, mas são mais fáceis de explicar e são um pouco diferentes do que chamamos de Rotação de Bit. Degradação de dados é uma palavra sofisticada que significa que sua memória - a RAM, o armazenamento ou ambos - está ficando antiga. A RAM e a mídia de estado sólido exigem uma carga elétrica e, com o tempo, podem se dispersar mais do que foram projetadas. Isso significa que alguns dos bits armazenados (bits de software) podem ser alterados. Quando alguns bits estão errados, muitos programas podem compensar, mas isso leva tempo e os programas são um pouco mais lentos. Quando muitos bits estão errados, as coisas param de funcionar conforme o esperado.
A degradação dos dados e a fluência dos recursos também podem tornar o telefone mais lento, mas são diferentes do Bit Rot.
O recurso Creep é fácil de entender. Seu telefone foi construído com um conjunto específico de software em mente. Quando você recebe uma atualização que adiciona mais recursos, o hardware precisa trabalhar mais e as coisas ficam mais lentas. Os fóruns on-line estão cheios de pessoas que odiavam uma atualização recente em seu telefone Galaxy e pessoas com iPhones mais antigos que odeiam a versão mais recente do iOS. Isso ocorre porque o software foi escrito com o hardware mais novo e mais capaz em mente, assim como o software fornecido com o telefone. Todos nós gostamos de novos recursos e atualizações, mas o velho ditado "cuidado com o que você deseja" está certo aqui.
Esses problemas certamente podem ter efeito, mas são diferentes do Bit Rot e provavelmente não estão contribuindo muito para a lentidão de nossos telefones, porque não os mantemos por tempo suficiente para vê-los em ação.
Erosão de software
Erosão de software é a lenta mas constante deterioração do desempenho que pode acontecer com qualquer software, seja algo que usamos muito ou apenas um pouco. Ou mesmo nunca. Isso acontece porque usamos o software e todos os aplicativos mudam quando são usados - adicionamos dados do usuário à base para que o software faça o que queremos. Observe que isso é diferente do software ficar lento ou com bugs enquanto o usamos muito, mas volta ao normal com uma reinicialização. Isso geralmente ocorre devido a pequenos erros acumulados ao longo do tempo ou a um vazamento de memória. Você não pode corrigir a erosão de software fechando e reabrindo um aplicativo ou reiniciando o telefone.
Todo software possui bugs e ele precisa de manutenção regular que nunca recebe.
Existem dois tipos diferentes de erosão de software, inativos e ativos. A erosão inativa do software ocorre quando um programa ou partes de um programa que você não usa para de funcionar bem porque outras coisas mudaram, e a erosão ativa ocorre devido a alterações enquanto você o utiliza. Ambos os tipos acontecem por algumas razões diferentes.
- O código não utilizado ou o restante pode (e geralmente contém) erros que não são capturados.
Todo software possui bugs, não importa o que um desenvolvedor ou usuário diga. Quando uma empresa altera algum código, há uma chance muito boa de que parte do código original nunca seja usado, mas ainda está embutido no produto final. Os erros aqui não são tão propensos a serem pegos e podem ter um efeito imediato ou um que demora um pouco para aparecer.
- As alterações porque o software não é fácil de usar acontecem muito.
Um desenvolvedor cria software com uma idéia específica de como o usaremos, mas, uma vez que ele chega às nossas mãos, geralmente não o usamos dessa maneira! Às vezes, isso não é culpa nossa e o software possui uma interface mal implementada, por isso fazemos as coisas que um desenvolvedor nunca pensou que faria. Outras vezes, a culpa é nossa e fazemos coisas como criar várias contas ou executar várias instâncias de um aplicativo ou função que não foram projetadas para serem executadas dessa maneira. Isso pode deixar os dados do usuário ou os dados em cache mais difíceis para o processamento de um aplicativo.
- Falta de atualizações e manutenção são ruins.
Qualquer desenvolvedor lhe dirá que o trabalho não será concluído depois que o programa for publicado e o software precisará ser mantido. Isso significa corrigir erros encontrados pelos usuários, mas também atualizações frequentes para funcionar bem com outros softwares. A falta de manutenção regular é a maior causa de erosão do software.
O "Android" executado no seu telefone é na verdade um grande grupo de programas e serviços em execução independente que precisam se comunicar constantemente. Um exemplo: o Facebook faz outra alteração em seus servidores e atualiza o aplicativo no Google Play. Seu aplicativo de contatos está vinculado ao Facebook, por isso pode precisar de uma atualização. Ou sua câmera recebe uma atualização, mas o aplicativo da galeria vinculado a ela não. Todas as partes do sistema precisam trabalhar com todas as outras partes, e isso significa manutenção regular.
A boa notícia aqui é que muitos problemas de erosão de software são corrigidos com uma redefinição de fábrica, na qual todos os dados do usuário são limpos. A má notícia é que tudo volta eventualmente.
Entropia de software
Todo software que não podemos alterar possui bugs e código não utilizado (veja acima). Esses bugs provavelmente permanecerão inalterados ao longo do tempo, mas podem piorar à medida que a complexidade do software que podemos alterar aumenta. Isso se chama Entropia de Software.
O software que você altera afeta o software que não pode ser alterado porque o próprio sistema fica mais complexo.
A maior parte do software do seu telefone está em um sistema fechado. Você pode atualizar o teclado ou o aplicativo da câmera na Play Store, mas a maior parte do sistema operacional está instalada na fábrica e só foi alterada com uma atualização completa do sistema. Isso é muito diferente de todos os aplicativos, aplicativos de usuário instalados de fábrica e aplicativos que você instalou. O software que você pode alterar se torna mais complexo com o tempo e o software que você não pode alterar precisa lidar com isso.
As pessoas que escreveram o software no seu telefone são bastante inteligentes quando se trata de tudo isso. Mas ninguém sabe o que faremos, o que os novos aplicativos poderão fazer e como os aplicativos projetados para um conjunto de APIs (interfaces de programação de aplicativos), por exemplo, as APIs da Samsung de seu kit de desenvolvimento de software, funcionarão com aplicativos projetado para outro conjunto de APIs, como as do Google que fazem parte do Android. Os desenvolvedores precisam fazer o possível para adivinhar e criar o software de uma maneira que não se rompa e espere o melhor.
Há duas maneiras de combater a Entropia de Software - manutenção regular do software por meio de atualizações oportunas ou redefinição do software do usuário para o estado de fábrica.
Software Bloat
Não é isso que o nome sugere, embora aplicativos extras de bloatware possam e causem lentidão nas coisas. Inchaço do software ao falar sobre o Bit Rot significa software preenchido com recursos extras ou não utilizados.
Quanto mais recursos forem adicionados a qualquer programa, mais complexo ele será. A complexidade torna os aplicativos mais lentos.
Recursos "extras" são impossíveis de definir. Os aplicativos ou partes de aplicativos que eu não uso são estranhos para mim, mas você pode usá-los e amá-los. Do ponto de vista de um computador, o único aplicativo bom é aquele que faz apenas uma coisa e depois se fecha quando termina. Isso é impraticável do ponto de vista do usuário; imagine um aplicativo de teclado fechado após a digitação de cada letra. As empresas que fabricam os telefones que amamos precisam encontrar um meio termo entre recursos e desempenho usando o hardware certo ou reduzindo os recursos nos aplicativos. Isso pode significar adicionar mais RAM e usar um processador mais rápido ou recursos de corte de um aplicativo, ou ambos.
Outra parte dos recursos "extras" é um software que precisa ser capaz de lidar com vários padrões (e geralmente concorrentes). Seus aplicativos de email são um ótimo exemplo disso. Se você usa o Gmail e usa o aplicativo Gmail, as coisas são muito mais simplificadas do que seriam se você estivesse usando o outro aplicativo de email com uma conta do Gmail, uma conta do Exchange ou algo como um Yahoo! Conta POP3. O aplicativo E-mail deve ser capaz de fazer o que o aplicativo Gmail não pode e lidar com os diferentes tipos de dados que criamos. Isso leva tempo para processar e, à medida que adicionamos mais dados, leva mais tempo.
Talvez o melhor exemplo de recursos "extras" e como eles afetem o desempenho esteja comparando o Evernote e o Google Keep. Se você usar o aplicativo apenas para fazer anotações, todos os extras do Evernote significam que leva muito mais tempo para adicioná-los ou lê-los. Se você gosta desses recursos extras, rapidamente descobrirá que o Google Keep simplesmente não pode fazer a maioria deles. Não há certo ou errado aqui, mas isso tem um grande impacto no desempenho.
Os recursos "restantes" não utilizados ainda podem ser executados e causar problemas, e nossos telefones são preenchidos com eles.
Os recursos não utilizados são mais frustrantes porque não sabemos que eles estão lá e não poderíamos fazer nada para mudar as coisas, se o fizéssemos. Quando uma empresa como a LG (nós escolhemos eles aqui, mas isso se aplica a todas as empresas que fabricam telefones, até o Google) cria um telefone com seus próprios aplicativos duplicados de aplicativos Android "padrão", como o discador ou o calendário, existe muito código restante que não está sendo usado. Parte do código ainda é executado quando você inicia o telefone também. Falamos sobre como isso significa que os bugs serão mais difíceis de encontrar nessa parte do código, mas também pode ter um grande impacto no desempenho. E quando o Software Entropy é levado em consideração, vemos como esses bugs podem piorar com o tempo.
Quando você vê argumentos tolos nos comentários sobre como um telefone como o Moto G5 é mais rápido que um Galaxy S8 com metade do poder do hardware, é o Software Bloat.
Então, o que tudo isso significa e o que posso fazer sobre isso?
Essa é uma pergunta fácil - significa que alguns telefones são mais lentos que outros e alguns ficam mais lentos com o tempo, enquanto outros são menos afetados. E não há realmente nada que possamos fazer sobre isso.
Mais recursos significam software mais lento e mais oportunidades para o Bit Rot acontecer. É um comércio que muitos fazem de bom grado.
Conversa real - um telefone como o Note 8 é notavelmente mais lento (e o mostra quando conectado a ferramentas que monitoram o desempenho) do que um Pixel 2. O Note 8 fica ainda mais lento em seis meses ou mais. Mas o Pixel 2 nunca será capaz de fazer algumas das coisas que a Nota 8 faz, não importando quantos aplicativos instalamos ou como o cortamos. Posso anotar uma captura de tela com a S Pen imediatamente após capturá-la na Nota 8, mas no Pixel 2, tenho que compartilhar a captura de tela com outro dispositivo para anotá-la com o mesmo nível de recursos e detalhes.
Como o argumento Evernote vs. Google Keep acima, o melhor é em grande parte uma questão de recursos que você gosta. A nota 8 possui todos os recursos. Isso significa que existem todos os bugs e erros de software que tornam o Bit Rot mais perceptível. Isso pode ser um problema para você, mas para outros, não é porque não há outra maneira de obter o conjunto de recursos. É por isso que existem mais telefones Android do que apenas um Pixel e Pixel Plus e o que todos querem dizer quando dizem que o Android oferece uma opção.
E quando o Bit Rot se tornar um problema suficiente para que você precise fazer algo a respeito, basta redefinir o telefone de fábrica e levar algumas horas para configurar tudo de volta.
Questões?
Som desligado nos comentários abaixo!