Desenvolvimento

4 dez, 2018

Compatibilidade na Web – Importante até que ponto?

Publicidade

No mundo da tecnologia e da Web, as mudanças acontecem muito rapidamente e de forma muito brusca. A versão de um software, framework ou linguagem de hoje pode não ser a mesma amanhã, tornando algum dos recursos utilizados incompatíveis com as novidades implementadas.

Em um mundo ideal, um site não tem restrição de acesso por requisitos mínimos, ele está aberto para todo e qualquer dispositivo que consiga se conectar a internet.

Dispositivos novos devem acessar aplicações web antigas e dispositivos antigos devem conseguir acessar aplicações web novas. Mas, no mundo real as coisas não são assim e nem tem como ser.

Quando falamos de Web, não há garantias de se usar uma das linguagens e recursos aplicáveis para essa área de forma única, funcional e compatível com todas as plataformas, navegadores e dispositivos que foram feitos.

Sempre haverá algum estilo, propriedade ou método que em determinado navegador e em certa versão não será suportado. Ou seja, alguém que tentar acessar seu conteúdo não terá resultado.

Você perdeu um usuário!

No entanto, existem algumas técnicas que podem ser utilizadas para minimizar ou até impedir esse impacto. Seja para tags HTML, propriedades CSS, operações ou funções nativas em JavaScript de determinada variante do ECMAScript. A técnica de Polyfill implementa pedaços de códigos substitutos de determinadas características que não sejam suportadas na versão da tecnologia cliente.

Isso nos ajuda a não nos preocupar tanto com algumas funcionalidades de versão no momento de codificarmos nossas aplicações Web.

Claro que outras alternativas também podem ser utilizadas. A própria biblioteca jQuery foi elaborada como forma ultra compatível para determinados recursos do JavaScript – muitos deles hoje já bem implementados nas versões nativas mais recentes da linguagem, mas ainda assim, sem tanta simplicidade nas abordagens com alguns métodos e seletores como o jQuery proporciona para que trabalhemos mais rápido e com mais intuição.

Quando usamos recursos como, por exemplo, a linguagem TypeScript ou como a interpolação de strings com template literals, uma feature da versão 6 do ECMAScript, se não usarmos os transpiladores e conversores de versão para esses códigos, navegadores mais antigos que não tenham suporte a essa tecnologia apresentarão falhas ao lerem esses pedaços do projeto.

Com isso em mente, o que recai sobre esse tipo de situação é a analise da necessidade da preocupação com esses quesitos no dia a dia do time de codificação.

Será necessário, em todos casos, se atentar à versão de cada método, tipo de variável e funcionalidade dos códigos dos nossos projetos?

Tecnologicamente, quase tudo é possível, e ter todo esse mapeamento de suporte às funcionalidades de forma natural no desenvolvimento é incrível, mas a decisão sobre o fato de valer a pena ou não esse esforço e essa atenção a todo momento na codificação de determinado recurso é responsabilidade da análise do modelo de negócios.

Se a coordenação requisitar que sejam feitos grandes esforços de desenvolvimento e testes de qualidade para determinada e inovadora aplicação com efeitos touch, animações 3D e carregamento off-line super-rápido rodar também no Internet Explorer 5, por exemplo, o trabalho terá que ser feito.

Agora, se for analisado que nenhum impacto será causado aos usuários e ao negócio, se for interrompido o suporte aos projetos nesse navegador, ótimo! Menos trabalho desnecessário para a equipe.

Em uma quantidade tão variada e evoluída de dispositivos e sistemas, sempre deve haver a consideração que determinadas características podem não ser reconhecidas ou suportadas por certas tecnologias mais antigas ou de infraestruturas diferentes.

Existem certas aplicações que mesmo sendo compatíveis com determinadas tecnologias, só serão utilizadas instintivamente por alguns grupos seletos de clientes, e para saber se determinada característica deve ou não ser produzida pensando em ser compatível e funcionar em toda a plataforma que seja necessária para os usuários e para a instituição, tomando tempo e esforço de desenvolvimento, uma análise e uma decisão inteiramente de negócios deve ser feita.