Muito do desenvolvimento do software atual consiste em programas relativamente simples incorporarem funções mais e mais complexas, colocando tudo isso num mesmo “pacote” que roda por si só sem depender de outros programas do sistema operacional do usuário. Seu navegador, por exemplo, exceto caso você use um curl da vida, não apenas carrega arquivos de texto e html, como também é capaz de reproduzir arquivos de imagem e vídeo, incluindo até mesmo funções como “melhoramento de qualidade de imagens via IA”, funcionalidades de leitura de áudio e alguns até mesmo dublagem automática.
Cada uma dessas funções poderia ser feita por um programa de computador dedicado. Até mesmo o conceito de abas, poderia ser abstraído do browser e lidado ao nível do sistema operacional ou por um terceiro programa (algo como o “Groupy” gerenciando janelas e criando “abas artificiais” em vez de ser algo implementado a nível do browser). Porém, implementar isso no nível do navegador, tende a facilitar para o usuário com menor conhecimento. Essencialmente você não precisa se preocupar com as outras partes do sistema operacional do seu usuário, porque vai estar tudo no mesmo “pacote”. Porém, para quem já tem aquilo instalado, é um bloat.
Tudo aqui é essencialmente um embate entre a Filosofia Unix, de você ter pequenos programas que fazem uma determinada ação, e de você ter programas mais e mais complexos que implementam funções de outros programas nele. Por exemplo, recentemente o Microsoft Edge passou a implementar um “split mode”, onde você pode abrir uma aba ao lado. Ora, você poderia fazer a mesma coisa num tiling manager, e com modificações no Firefox via alterações no userchrome CSS, para ele ocultar as barras de navegação e menu de abas se janela tivesse, digamos, uma largura menor do que 500px.
Minha impressão é que duma estranha maneira eles incorporaram uma filosofia muito mais próxima ao de “Multiple Document Interface”, e essencialmente abstraíram o sistema operacional, delegando mais e mais funções para o navegador.
Para tornar a situação ainda mais complicada, muitos dos softwares não apenas funcionam como um pacote com recursos extras que você talvez não precise, como também ele é fechado e hostil à modificações, ao ponto de você não poder remover certos recursos e funcionalidades que não utilizar, e nem sequer poder modificar eles. Em outras palavras, sua experiência de uso fica à controle dos desenvolvedores do software.
06/05/2024 – Pensamentos adicionais: Fazendo um pequeno contraponto, como tudo nessa vida, a solução aqui provavelmente se trata de um equilíbrio. Poucas pessoas defenderiam que um browser não deveria, por exemplo, delegar a funcionalidade de abas ao sistema operacional, já que você não sabe qual sistema operacional a pessoa está usando, nem se ela teria como gerenciar abas, janelas, afins, na ponta dela.
E, para não parecer tão tendencioso, esse é um ponto e uma vantagem dum software mais integrado onde os recursos são implementados no nível do navegador: você sabe que o usuário vai ter acesso a tal funcionalidade porque você colocou ela lá.
Acho que o formato ideal seria um browser onde você não precisa implementar as funcionalidades ao nível do OSs, porque o browser é tão poderoso e versátil que você pode implementar funcionalidades através de extensões. E quando você pensa nesse paradigma, o navegador poderia vir com “extensões oficiais”, com funcionalidades que todos iriam querer (abas), e se você desejasse alguma extensão adicionando uma funcionalidade extra você poderia instalar elas (text-to-speech, abas verticais, split mode, etc).
Algo similar as distros e ambientes gráficos de linux funcionam, mas implementados ao nível do browser de forma descentralizada. Um browser modular.
Você precisa fazer login para comentar.