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

45

Recentemente, tentei 'instalar' muito menos coisas na minha máquina Windows (eu odeio instaladores - preciso saber onde os programas colocam coisas ...), optando por usar versões portáteis ou independentes de aplicativos.

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

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

Por que os aplicativos do Windows ainda precisam ser instalados? Por que não podemos simplesmente arrastar o Photoshop para uma pasta no OSX e fazê-lo funcionar? Alguém mais se concentra em aplicativos portáteis, ou estou apenas sendo obsessivo com a coisa toda?

Tom
fonte
3
As respostas à pergunta explicam o inquisitivo "por que". No entanto, o exclamatório "mas por que" ainda permanece (como em "mas por que não podemos todos nos dar bem").
Dbkk101 15/07/2009
2
Eu também odeio instaladores. errado nada com você
Nick
2
Parece a pergunta errada. Se você deseja usar aplicativos portáteis, a pergunta correta parece ser: "Quais programas são portáteis?". Por exemplo, você pode pensar que precisa do MS Word, quando realmente precisa de um programa que possa ler e gravar arquivos de dados .doc. O Open Office fará isso ... e, ao contrário do MS Word, está disponível em um formato portátil ... Eu tenho uma cópia (e Abiword) em uma unidade flash que passa o tempo todo conectada ao meu laptop. Existem alguns aplicativos portáteis. portablelinuxapps.org oferece 184 para Linux, enquanto portableapps.com/apps ofertas 232 +
O restante do comentário de Bill: ... um aplicativo de menu para Windows [sem dúvida, ambos incluem uma boa seleção de utilitários triviais]). Escolha os que você deseja e descarte os programas não portáteis que você pode prescindir ... a maioria dos meus aplicativos vive em uma chave USB. Isso, no mínimo, simplificará a sopa de espaguete de arquivos no seu HD.
studiohack
Também me parece que as melhores ferramentas são portáteis. Eu posso ser tendencioso.
Vlastimil Ovčáčík

Respostas:

35

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 nas 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 do aplicativo, substituindo muitos arquivos de configuração. Mais importante, a configuração do Windows foi armazenada no mesmo local.

O registro ficou inchado devido a aplicativos que não foram limpos após eles mesmos. O inferno da DLL aconteceu como resultado de várias versões das mesmas bibliotecas compartilhadas se substituindo.

O .NET introduziu o conceito de app.config (arquivos quase ini marcam 2, desta vez com um pouco mais de estrutura, economizando tempo para os desenvolvedores perdendo tempo escrevendo analisadores manuais). O GAC foi apresentado aos assemblies compartilhados de versão na tentativa de impedir o DLL Hell.

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

Então, acho que o motivo é que "os 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 copiar um único local para xcopying.

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

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

DavidWhitney
fonte
1
Boa explicação simples!
Alex
7
Outro grande motivo para os instaladores (especialmente o Office) é que nenhum usuário poderá afetar outro usuário no mesmo sistema se não for um administrador. Com o Office 2007 pesando em torno de 500 MB, se um usuário quiser usá-lo, ele precisará ter sua própria cópia local. Seriam 1,5 GB para 3 usuários no mesmo sistema! O Google Chrome é instalado no diretório de usuários local; portanto, se você tem 10 usuários, todos com Chrome, são 10 versões diferentes que precisam ser atualizadas e mantidas. Obviamente, existem prós e contras na instalação por usuário versus uma implantação central.
Joshua
1
Alguns aplicativos, como o Photoshop (pelo menos pré-CS4), podem simplesmente ser copiados e, quando iniciados - criarão os arquivos e arquivos de configuração do usuário necessários. Além disso, a maioria dos aplicativos .NET é portátil por design, mas os usuários esperam os próximos instaladores finais - muitos que nem sabem o que é um sistema de arquivos.
Oskar Duveborn
Também é possível observar que, embora os aplicativos tenham como objetivo dividir configurações / bibliotecas / especificidades em locais diferentes, não é um costume bem difundido. Costumo encontrar configurações para diferentes aplicativos armazenados em arquivos em seus diretórios de programas, e muitas vezes as bibliotecas que podem ser compartilhadas são vinculadas estaticamente no diretório do programa. Como não há benefícios reais de fazer as coisas de uma maneira ou de outra para os programadores, o incentivo para aderir às regras é fraco e ocorre o desenvolvimento de aplicativos no oeste selvagem :-). Além disso, acho que a tradição é forte.
Daniel Andersson
O GAC é apenas a segunda vinda do inferno da DLL. Bom conceito, mas na vida real você acaba confuso, pois diferentes executáveis ​​se ligam a diferentes versões do mesmo arquivo, e algumas versões desses arquivos podem ter falhas de segurança. É uma bagunça todo-poderosa para lidar se você precisar de um ambiente seguro. Agora você realmente precisa corrigir versões diferentes do mesmo arquivo para corrigir a mesma falha de segurança. Viva! Deve-se notar que políticas e redirecionamentos obrigatórios podem ajudar, mas é como dizer que um band-aid ajuda contra feridas abertas.
Stein Åsmul
12

A implantação do XCOPY foi anunciada pela Microsoft como o caminho do futuro alguns anos atrás. Nada ainda :)

Enquanto isso, você pode estar interessado na plataforma PortableApps.com.

Piotr Dobrogost
fonte
7

Ótima pergunta, fiz uma pergunta relacionada no Stack Overflow há um tempo atrás.

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

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

É bem possível escrever um aplicativo que verifique na inicialização as configurações de registro necessárias e solicite ao usuário / use os padrões. Ou, como muitos aplicativos protegidos atualmente, jst informa ao usuário que a integração do SO é atualmente limitada porque você está executando no modo portátil.

Os instaladores também costumam ter muito "conhecimento" sobre como o aplicativo funciona. Então, quando o aplicativo for alterado, você também precisará atualizar o instalador. Esta é uma causa clássica de bugs / problemas que eu já vi na minha programação de tempo.

É a única abordagem de tamanho único.

Ash
fonte
6

Resposta simples e direta: é simplesmente uma questão de quem tem controle. Atualmente, a maioria dos softwares é projetada por gigantes corporativos para o ambiente corporativo ou institucional em que os usuários são instruídos sobre o que fazer, em vez de dizer aos 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 corroídos cada vez mais, não por tiranos como em sociedades antigas, mas pela ganância corporativa e pela necessidade de poucos de controlar os muitos.

De fato, parece que esquecemos que as mesmas pessoas que costumavam criticar a tirania de gigantes como a IBM se tornaram as IBMs dos dias de hoje ... Basta olhar atentamente para as práticas comerciais da Microsoft, Apple e a Adobe, para citar alguns e dizer-me com franqueza que, com suas licenças restritivas, são mais benignas do que as práticas de negócios da IBM, a mesma IBM que, por sua abertura, realmente liderou o caminho para a revolução da computação pessoal ...

Eu tenho usado muitos aplicativos portáteis e independentes ao longo dos anos e, sem exceção, eles provaram ser os mais eficazes, os mais rápidos e os menores em termos de espaço e recursos e, por último, mas não menos importante, além de serem superiores ao seu bloatware contrapartes, mas na maioria das vezes, eles também são gratuitos.

Já é tempo de uma segunda revolução nos computadores pessoais. 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.

Velho fiel
fonte
5

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

Cruz
fonte
Exatamente. Como o sistema operacional pode encontrar o EXE ou DLL para carregar sem um local fixo? "Definir oExcelApp = CreateObject (" EXCEL.APPLICATION ")" precisa funcionar de alguma forma.
Zan Lynx
4

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

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

Eric Petroelje
fonte
3

Uma grande vantagem para os instaladores em relação ao tipo de instalação portátil Xcopy é o auto-reparo.

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, além de um cache de partes importantes dos arquivos de instalação.

Se o aplicativo for interrompido por algum motivo (outra coisa excluir / substituir um arquivo, o registro for corrompido, problemas no disco, o usuário excluirá o atalho, etc.), se for um "atalho anunciado", o Instalador verificará os arquivos e as chaves sempre que iniciar e substitui se não estiverem presentes, ou você pode acessar Adicionar / remover programas e clicar em Reparar no aplicativo.

GAThrawn
fonte
Por que a única coisa em que consigo pensar ao ler este é o ícone da área de trabalho do Adobe Reader? Isso é tão insanamente auto-reparação que confunde a mente ^^
Oskar Duveborn
2

Eu acho que isso tem a ver, em parte, com as grandes quantidades de aplicativos que o Windows precisa. Por exemplo, chaves do Registro, dados do usuário (/ Users // AppData). Talvez o OSX lide com isso melhor / de maneira diferente.

Por outro lado, não é impossível criar aplicativos que você possa extrair de um arquivo - sempre fico feliz quando esse é o caso.

Ross
fonte
2

O .Net Framework é a plataforma para habilitar esse tipo de funcionalidade, e a maioria dos instaladores é usada apenas porque é para 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 arquivos para a pasta Arquivos de Programa e cria um atalho. É mais um caso do que os usuários sabem, e geralmente é mais simples manter o processo igual, mesmo que o aplicativo seja portátil.

BinaryMisfit
fonte
2

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

Basicamente, o principal motivo são os programadores que tomaram o caminho mais fácil e codificaram algo nos programas, chaves de registro ou caminhos reais codificados.

Brad Gilbert
fonte
2

Muitos aplicativos Windows devem fazer uso de ambientes ou serviços do sistema, como SQL Server, IIS, WMI, domínios de segurança, Active Directory e muitos outros. Um usuário típico pode não ter idéia de como configurá-los, ou talvez nem tenha 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, não pode simplesmente substituir tudo o 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, eles podem consultar o ambiente do sistema, executar scripts e instalar serviços e configurar a máquina como se fossem um administrador.

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

Arco Alto de Dour
fonte
2

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

No mínimo, um instalador decente descompacta o arquivo de instalação, configura os atalhos apropriados e facilita a remoção do programa quando não é mais desejado. Acho que a descompressão e cópia é provavelmente o que leva mais tempo.

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

Mais importante ainda, alguns programas precisam ser configurados para a máquina e alguns (presumo que pelo menos) tentam otimizar com base na máquina ou pelo menos é nisso que o diálogo do 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, pois reduz o inchaço do Windows.

wag2639
fonte