Por que nem todos os aplicativos são portáteis?

41

Recentemente, tenho tentado 'instalar' coisas muito menos na minha máquina Windows (ode instaladores - preciso saber onde os programas colocam coisas ...), optando por usar versões portáteis ou autônomas de aplicativos.

Coloquei todos eles em um diretório 'Programas' em uma unidade separada da partição do Windows, portanto, sempre que eu reinstalar, tenho todos os meus aplicativos disponíveis com o mínimo de esforço e, do lado positivo, recebo uma configuração limpa.

Aplicativos como Office e Creative Suite ainda exigem que eu passe por um processo de instalação horrivelmente longo, onde milhares de bibliotecas e ferramentas aleatórias são lançadas em meu sistema.

Por que os aplicativos do Windows ainda precisam ser instalados? Por que não podemos simplesmente arrastar o Photoshop para uma pasta à OSX e simplesmente fazer com que funcione? Alguém mais se concentra em aplicativos portáteis, ou estou apenas sendo OCD sobre a coisa toda?

    
por Tom 22.11.2017 / 09:06

12 respostas

33

Os instaladores são o resultado de anos de evolução e um pouco da história (simplificada) ajuda a entender por que eles fazem o que fazem.

O modelo do windows 3.1 sugeriu arquivos de configuração no estilo config.ini por aplicativo, com suporte a bibliotecas compartilhadas que entram em pastas do sistema para evitar duplicação e desperdício de espaço em disco.

O Windows 95 introduziu o registro, permitindo um armazenamento central para a configuração de aplicativos, substituindo muitos arquivos de configuração. Mais importante, a configuração do Windows foi armazenada no mesmo lugar.

O registro ficou inchado devido a aplicativos que não estavam limpando depois de si mesmos. O inferno da DLL aconteceu como resultado de várias versões das mesmas bibliotecas compartilhadas que se sobrescreveram.

O .NET introduziu o conceito de app.config (quase dois arquivos ini marca 2, desta vez com um pouco mais de estrutura, poupando os desenvolvedores perdendo tempo escrevendo analisadores manuais). O GAC foi introduzido em assemblies compartilhados de versão na tentativa de impedir o Inferno da DLL.

No Windows XP e no Vista, a Microsoft tentou definir o espaço do usuário como um local para armazenar dados do usuário e arquivos de configuração em um único local padrão para permitir perfis móveis e fácil migração (apenas copie seu perfil) com os aplicativos instalados em arquivos de programas.

Então, eu acho que a razão é que "aplicativos no Windows são projetados para viver em um lugar, suas dependências compartilhadas em outro e os dados específicos do usuário em outro", o que praticamente funciona contra o conceito de xcopying em um único local .

.. e isso antes de configurar contas de usuário, configurar e garantir permissões de segurança, baixar atualizações e instalar serviços do Windows ...

xcopy é o "caso simples" e certamente não é o melhor para tudo.

    
por 15.07.2009 / 14:41
12

A implantação do XCOPY foi anunciada pela Microsoft como o caminho do futuro há alguns anos . Ainda nada:)

Entretanto, pode estar interessado na plataforma PortableApps.com.

    
por 07.05.2011 / 19:27
7

Uma ótima pergunta: eu fiz uma pergunta relacionada no Stack Overflow há algum tempo atrás.

A resposta muitas vezes parece ser "porque foi assim que fizemos no passado". Desculpe, mas isso não lava comigo.

Alguns outros disseram que o principal motivo é devido ao registro. Se você está falando sobre um driver de dispositivo ou algum outro componente COM etc, então sim, isso pode ser necessário, mas não para aplicativos de GUI, como processadores de texto ou planilhas.

É bem possível escrever um aplicativo que verifique a inicialização das configurações de registro necessárias e solicite aos usuários / usa os padrões. Ou, como muitos aplicativos protegíveis atualmente, jst informa ao usuário que a integração do sistema operacional está limitada no momento, porque você está executando no modo portátil.

Os instaladores muitas vezes também têm muito "conhecimento" sobre como o aplicativo funciona. Então, quando o aplicativo muda, muitas vezes você precisa atualizar o instalador também. Esta é uma causa clássica de bugs / problemas que eu vi no meu tempo de programação.

É a abordagem do tamanho único.

    
por 23.05.2017 / 14:41
6

Resposta simples e direta: é simplesmente uma questão de quem tem controle. A maioria dos softwares atuais é projetada por gigantes corporativos para o ambiente corporativo ou institucional, onde os usuários são informados sobre o que fazer, em vez de dizer a seus computadores o que fazer por eles.

Sua pergunta é extremamente importante porque levanta uma questão fundamental sobre os direitos e liberdades individuais que estão sendo erodidos cada vez mais, não por tiranos como nas sociedades antigas, mas pela ganância corporativa e pela necessidade de poucos para controlar os muitos. .

Na verdade, parece que esquecemos que exatamente as mesmas pessoas que usaram para denegrir a tirania de gigantes como a IBM se tornaram as IBMs de hoje em dia ... Apenas olhe atentamente para as práticas de negócios da IBM. Microsoft, Apple e Adobe, para citar alguns e me dizer com cara séria que com suas licenças restritivas são mais benignas do que as práticas comerciais da IBM, a mesma IBM que, por sua abertura, realmente liderou o caminho para a revolução da computação pessoal. .

Tenho usado muitos aplicativos portáteis autônomos ao longo dos anos e, sem exceção, eles provaram ser os mais eficazes, os mais rápidos e os menores em termos de recursos e recursos e, por último, mas não menos importante, não apenas são superiores às suas contrapartes de bloatware, mas na maioria das vezes, elas são gratuitas também.

Já é hora de uma segunda revolução no computador pessoal. Aprimorar a portabilidade reduzindo o inchaço e esclarecendo onde as configurações são armazenadas, em uma pasta distinta em um local físico distinto em um meio físico tangível, é um passo na direção certa.

    
por 13.10.2009 / 22:47
5

Uma combinação do registro e do armazenamento por usuário. O registro é uma peça crítica, especialmente se seu aplicativo for COM com base (que requer registro, o que acontece no registro). O armazenamento por usuário (de configuração, etc.) também é um componente importante. A única boa maneira de fazer isso é armazená-lo em alguns diretórios especialmente projetados (consulte Isolated Armazenamento ).

    
por 15.07.2009 / 14:34
4

Principalmente por causa do registro do Windows - mesmo que seus programas estejam em um determinado diretório, as configurações são frequentemente armazenadas no registro.

Também pode ser porque o programa coloca arquivos em outros diretórios no seu computador que não sejam o diretório de instalação (system32, por exemplo)

    
por 15.07.2009 / 14:20
3

Uma grande vantagem para os instaladores sobre o tipo de instalação Xcopy / portátil é a auto-reparação.

Um aplicativo que usa o sistema Windows Installer corretamente terá todos os tipos de informações sobre ele salvos no banco de dados do Windows Installer em sua máquina, bem como, com bastante frequência, um cache de partes importantes dos arquivos de configuração.

Se o aplicativo quebrar por algum motivo (algo mais exclui / substitui um arquivo, o registro é corrompido, problemas de disco, atalhos de exclusões do usuário, etc.), então se for um "atalho anunciado", o Instalador verifica arquivos e chaves de chave toda vez inicia e substitui se eles não estão presentes, ou você pode ir em Adicionar / Remover Programas e clique em Reparar no aplicativo.

    
por 09.09.2009 / 14:52
2

Acho que isso tem a ver com a grande quantidade de aplicativos que as janelas do Windows precisam. Por exemplo, chaves do Registro, dados do usuário (/ Users // AppData). Talvez o OSX apenas lide com isso de maneira melhor / diferente.

Então, novamente, não é impossível criar aplicativos que você pode extrair de um arquivo - estou sempre feliz quando este é o caso.

    
por 15.07.2009 / 14:19
2

O .Net Framework é a plataforma para habilitar esse tipo de funcionalidade e, principalmente, os instaladores são usados apenas porque é a isso que os usuários normais estão acostumados. Da mesma forma que os usuários de Mac estão acostumados a copiar arquivos para a pasta Aplicativos.

A maioria dos instaladores simplesmente expande os arquivos para a pasta Arquivos de programas e cria um atalho. É mais um caso do que os usuários sabem, e muitas vezes é mais simples manter o processo o mesmo, mesmo que o aplicativo seja portátil.

    
por 15.07.2009 / 14:22
2

Alguns programas exigem que o local de instalação esteja no registro, outros podem ter seus locais codificados no programa (esse era o caso do perl.exe).

Basicamente, o principal motivo é o fato de os programadores terem optado pelo caminho mais fácil e embutido em código nos programas, seja nas chaves do Registro ou nos caminhos reais codificados.

    
por 15.07.2009 / 19:36
2

Muitos aplicativos do Windows devem usar ambientes ou serviços de sistema, como o SQL Server, IIS, WMI, domínios de segurança, Active Directory e muitos outros. Um usuário típico pode não ter ideia de como configurá-los ou pode nem ter acesso a eles.

Aplicativos como o Microsoft Office não são arquivos únicos; eles contêm dezenas de arquivos, executáveis, utilitários, serviços, modelos, plug-ins, drivers e assim por diante. Quando você instala um aplicativo, você não pode simplesmente sobrescrever tudo que o novo aplicativo usa, ele precisa se encaixar no que já está lá. Os instaladores do Windows fazem mais do que apenas copiar arquivos, podem consultar o ambiente do sistema, executar scripts e instalar serviços e configurar a máquina como se fossem um administrador.

dbkk101 pergunta por que os aplicativos do Windows "não podem se dar bem". Eles podem, é para isso que os instaladores são.

    
por 12.09.2009 / 04:44
2

Concedida com alguns programas, a instalação é tola, mas há muito mais do que apenas "arrastar um arquivo para o diretório de programas".

No mínimo, um instalador decente com descompactar o arquivo de instalação e configurar os atalhos apropriados e facilitar a remoção do programa quando não for mais desejado. Eu acho que a descompressão e a cópia é provavelmente o que leva mais tempo.

Depois, há arquivos compartilhados - isso é especialmente verdadeiro no mundo do Linux, embora não tanto no Windows IMO.

Mais importante ainda, alguns programas precisam ser configurados para a máquina e alguns (presumo, pelo menos) tentam otimizar com base na máquina ou pelo menos isso é o que o diálogo da adobe me leva a acreditar.

Além disso, nunca vi um motivo para instalar em uma partição separada. Você tende a perder todos os seus valores de registro e configurações. Além disso, eu realmente prefiro essa perda porque reduz o inchaço do Windows.

    
por 14.08.2010 / 10:46