Sim, existe uma necessidade real.
Houve uma necessidade real de algo assim desde a primeira vez que um software dependeu de outro.
Vamos deixar isso claro:
O gerenciamento de dependências é difícil .
Existe uma razão pela qual é chamado de dependência . Sistemas de empacotamento como RPM e Debian foram criados com a intenção de evitar o inferno da dependência. No entanto, alguém deve pagar o custo:
- No Windows, onde os programas agrupam suas dependências, o usuário precisa cuidar dos upgrades (e de todos os problemas de segurança por falta deles). Se eu o dev quiser a versão X de alguma coisa para o meu aplicativo, simples: eu forneço o aplicativo para ele. Agora, como faço para lidar com atualizações?
- Na maioria das distribuições Linux (seguindo Debian ou Red Hat), onde um programa pode depender de software do repositório, um programa do repositório deve depender do software do repositório. Se eu quero a versão X de alguma coisa para meu aplicativo, e a distro fornece X, simples: eu dependo dela. E se a distro não? Então: ???
- Adicionar várias versões à distro aumenta a carga no mantenedor
- Perder a capacidade de usar a versão de escolha de dependências aumenta a carga do desenvolvedor
- Perder a capacidade de usar a versão de escolha de aplicativos frustra o usuário
Existe uma perda considerável de liberdade em ambos os métodos.
E é aí que os snaps aparecem: eles permitem que o desenvolvedor inclua a versão X e deixe o sistema de empacotamento gerenciar as atualizações. Quem paga o custo? O usuário:
- , exigindo mais espaço.
- colocando-os em risco devido ao fato de um desenvolvedor descuidado não ter reconstruído seus snaps quando uma dependência é corrigida.
Que benefícios eu recebo em troca?
- Além da segurança por meio de atualizações (que, francamente, não são suficientes para as pessoas se importarem), o usuário não precisa se preocupar com dependências com snaps. A palavra geralmente perde significado.
- Além das atualizações de segurança, o desenvolvedor de software não precisa se preocupar em fazer com que os usuários instalem as dependências corretas.