Existem 2 argumentos para ter bibliotecas compartilhadas:
- Ajuda a reduzir o espaço em disco.
- Quando uma biblioteca compartilhada é atualizada, todos os binários, dependendo dela, recebem a atualização.
Existe principalmente uma desvantagem para bibliotecas compartilhadas:
- Eles (podem) introduzir o inferno da dependência.
Em computadores de mesa, a primeira vantagem não é mais válida. A perda de espaço em disco não é um problema nos dias de hoje.
Ter binários estáticos nos permitiria obter melhores gerenciadores de pacotes - quero dizer, o inferno da dependência seria uma coisa do passado. Adicionar um programa seria apenas adicionar um binário; eventualmente uma pasta para permitir que ele lide com seus arquivos. Excluir um programa seria simplesmente excluir este arquivo. Dependências? Se foi.
A segunda vantagem ainda permanece, mas acho que a vantagem dos binários estáticos em computadores desktop a supera. Quero dizer, mesmo novas linguagens como Go compilam todos os seus binários, apesar das vantagens das bibliotecas compartilhadas, devido à conveniência.
Como uma das principais vantagens das bibliotecas compartilhadas não é mais um grande problema, as bibliotecas estáticas C ainda são desaprovadas? Se sim, por quê?