5G mudará a forma de desenvolver software?

December 23, 2020

Em breve teremos uma novidade na era digital que promete mudar a forma como interagimos com a internet, estou falando da tecnologia 5G, que embora ainda não esteja presente em nosso cotidiano já gera grandes impactos pela especulação. Esta tecnologia irá possibilitar a interação entre homem e máquina e entre máquinas em tempo real, com isso novos designs de software serão inventados e outros ficarão obsoletos.

Se levarmos em consideração o contexto histórico do uso da internet iremos relembrar os anos em que a web era algo voltado às páginas estáticas onde a única interação com o usuário veio com o advento da invenção do e-mail, daí o surgimento das salas de bate papo, sites com conteúdo dinâmico e o SAS (Software as a Service ou Software como um serviço). Com toda essa rápida transformação do mercado digital foram inventados novas técnicas e algoritmos que buscam entender o engajamento dos usuários com o que está sendo anunciado (sim, em sua grande maioria as inovações tecnológicas foram e são em detrimento de anúncios direcionados), desta forma é possível traçar os perfis e agrupá-los baseado em interesses em comum, gerando mais anúncios, mais vendas e assim infinitamente em uma progressão geométrica. Vale lembrar que as compras não limitam-se à produtos físicos reais, mas principalmente à contratação de serviços virtuais (como músicas, filmes, séries e etc.).

Com o aprimoramento prometido pela tecnologia 5G será possível realizar monitoramento em tempo real com menos latência (delta do tempo de resposta entre cliente e servidor) do que as tecnologias atuais, o que afetará também a agilidade na troca de mensagens entre sistemas, sendo possível providenciar respostas para milhares de usuários em tempo real.

Os novos designs de desenvolvimento de software deverão atender às demandas de execução em tempo real e de processamento ininterrupto na infraestrutura da nuvem, bem como a interoperabilidade entre dispositivos físicos e serviços de stream na web. Se nós desenvolvedores de software já sentíamos a pressão da busca do algoritmo perfeito em prol da otimização, esta pressão só tende a triplicar com a necessidade do processamento em tempo real e de forma minuciosa. Os custos aplicados a serviços na nuvem é calculado baseado no consumo de disco, memória, processador e rede, a busca por um melhor proveito de tais recursos será ainda mais acirrada, o que trará consigo a necessidade de utilizar linguagens de programação de alta performance, como é o caso do uso massivo de linguagens como Golang.

Nesta nova era digital alguns atributos não funcionais da arquitetura de software irão compor a lista de itens básicos até então exclusivos de determinados contextos, como é o exemplo da disponibilidade. Para atender às demandas em tempo real os sistemas deverão possuir alta disponibilidade, a modelagem de dados de forma distribuída é uma das melhores formas de garantir serviços ininterruptos. Com isso virá a necessidade de distribuir serviços em diferentes regiões, dividindo software em pequenos serviços para cada região global (seja utilizando técnicas do micro serviços ou DDD), formando assim uma cadeia de mudanças antes não necessárias ao desenvolver sistemas menos dinâmicos.

A nova era da comunicação será um divisor de águas para todos os tipos de profissionais, profissionais que não possuem muita preparação serão naturalmente forçados a aprender a programar de forma pragmática, já os profissionais com bastante experiência e dinamismo ganharão um forte aliado no impulsionamento de novas áreas de conhecimento e possibilidades, o espaço para o meio termo se fechou.