Pourquoi toutes les applications ne sont-elles pas "portables"?

45

J'ai récemment essayé d '«installer» beaucoup moins de choses sur ma machine Windows (je déteste les installateurs - j'ai besoin de savoir où les programmes placent des choses ...), en choisissant plutôt d'utiliser des versions portables ou autonomes des applications.

Je les ai tous placés dans un répertoire "Programmes" sur un lecteur distinct de ma partition Windows. Ainsi, chaque fois que je réinstalle toutes mes applications sont disponibles avec un minimum d'effort. Par contre, je bénéficie d'une belle configuration.

Des applications telles que Office et Creative Suite exigent toujours que je passe par un processus d'installation extrêmement long au cours duquel un millier de bibliothèques et d'outils aléatoires sont lancés sur mon système.

Pourquoi les applications Windows ont-elles encore besoin d'être installées? Pourquoi ne pouvons-nous pas simplement faire glisser Photoshop dans un dossier à la OSX et le faire fonctionner? Est-ce que quelqu'un d'autre se concentre sur les applications portables, ou est-ce que je suis simplement OCD?

Tom
la source
3
Les réponses à la question expliquent le "pourquoi" curieux. Cependant, l’exclamation "mais pourquoi" demeure (comme dans "mais pourquoi ne pouvons-nous pas tous nous entendre").
dbkk101
2
Je déteste les installateurs aussi. rien de mal avec vous
Nick
2
Cela ressemble à la mauvaise question. Si vous souhaitez utiliser des applications portables, la bonne question semble être: "Quels programmes sont portables?". Par exemple, vous pouvez penser que vous avez besoin de MS Word, alors que vous avez vraiment besoin d’un programme capable de lire et d’écrire des fichiers de données .doc. Open Office le fera ... et contrairement à MS Word, il est disponible dans un format portable ... j'en ai une copie (et Abiword) sur un lecteur flash qui passe tout son temps branché sur mon ordinateur portable. Il existe de nombreuses applications portables. portablelinuxapps.org en propose 184 pour Linux, tandis que portableapps.com/apps en propose 232 +
Le reste du commentaire de Bill: ... une application de menu pour Windows [sans doute, les deux incluent une bonne sélection d'utilitaires triviaux]). Choisissez celles que vous voulez et abandonnez les programmes non portables dont vous ne pouvez plus vous passer ... la plupart de mes applications vivent sur une clé USB. Ceci simplifiera au minimum la soupe de spaghettis sur votre disque dur.
studiohack
De plus, il me semble que les meilleurs outils sont portables. Je pourrais être partial.
Vlastimil Ovčáčík

Réponses:

35

Les installateurs sont le résultat d'années d'évolution et un peu d'histoire (simplifiée) aide à comprendre pourquoi ils font ce qu'ils font.

Le modèle Windows 3.1 suggérait des fichiers de configuration de style config.ini par application avec des bibliothèques partagées prises en charge dans des dossiers système pour éviter les doublons et le gaspillage d'espace disque.

Windows 95 a introduit le registre permettant à un magasin central de configurer les applications en remplaçant de nombreux fichiers de configuration. Plus important encore, la configuration de Windows était stockée au même endroit.

Le registre est devenu saturé en raison d'applications non nettoyées par eux-mêmes. L'enfer de la DLL s'est produit à la suite de l'écrasement de plusieurs versions des mêmes bibliothèques partagées.

.NET a introduit le concept app.config (les fichiers presque ini marqués 2, cette fois avec un peu plus de structure, ce qui évite aux développeurs de perdre du temps à écrire des analyseurs syntaxiques manuels). Le GAC a été introduit dans les assemblys de version partagée afin d'empêcher DLL Hell.

Dans Windows XP et plus encore dans Vista, Microsoft a tenté de définir l’espace utilisateur en tant qu’emplacement permettant de stocker les données de l’utilisateur et les fichiers de configuration dans un emplacement standard unique, afin de permettre des profils itinérants et une migration aisée (copiez simplement votre profil) avec les applications installées dans Program Files. .

Donc, je suppose que la raison en est que "les applications dans Windows sont conçues pour vivre dans un endroit, leurs dépendances partagées dans un autre et les données spécifiques à l'utilisateur dans un autre", ce qui va plutôt à l'encontre du concept de xcopie d'un seul emplacement.

.. et c'est avant que vous deviez configurer des comptes d'utilisateurs, configurer et garantir des autorisations de sécurité, télécharger des mises à jour et installer des services Windows ...

xcopy est le "cas simple" et n'est certainement pas la meilleure solution pour tout.

David Whitney
la source
1
Belle explication simple!
alex
7
Une autre raison importante pour les installateurs (notamment Office) est qu’aucun utilisateur ne devrait pouvoir affecter un autre utilisateur du même système s’il n’est pas administrateur. Avec Office 2007 pesant environ 500 Mo, si un utilisateur souhaite l’utiliser, il doit disposer de sa propre copie locale. Ce serait 1,5 Go pour 3 utilisateurs sur le même système! Google Chrome s'installe dans votre répertoire d'utilisateurs local. Par conséquent, si vous avez 10 utilisateurs dotés de Chrome, il s'agit de 10 versions différentes qui doivent être mises à jour et gérées. Évidemment, une installation par utilisateur présente des avantages et des inconvénients par rapport à un déploiement central.
Joshua
1
Certaines applications, telles que Photoshop (au moins avant CS4), peuvent être simplement copiées et, une fois démarrées, créeront les magasins de configuration utilisateur et les fichiers nécessaires. De plus, la plupart des applications .NET sont portables de par leur conception, mais les utilisateurs finaux s'attendent à la prochaine installation des installateurs finaux, dont beaucoup ne savent même pas ce qu'est un système de fichiers.
Oskar Duveborn
On peut également noter que, même si les applications sont censées diviser les paramètres / bibliothèques / informations spécifiques à différents endroits, il ne s’agit pas d’une coutume répandue. Je trouve très souvent des paramètres pour différentes applications stockées dans des fichiers dans leurs répertoires de programme, et très très souvent, les bibliothèques pouvant être partagées sont liées statiquement dans le répertoire du programme. Etant donné qu'il n'y a pas de réel avantage à faire les choses d'une manière ou d'une autre pour les programmeurs, l'incitation à respecter les règles est faible et le développement d'applications de Far West se produit :-). Aussi, je suppose que la tradition est forte.
Daniel Andersson
Le GAC n'est que la seconde venue de l'enfer de la DLL. Beau concept, mais dans la vie réelle, vous vous retrouvez avec une confusion totale, car différents exécutables se lient à différentes versions du même fichier et certaines versions de ces fichiers peuvent présenter des failles de sécurité. Si vous avez besoin d'un environnement sécurisé, c'est un gâchis tout-puissant. Maintenant, vous devez corriger différentes versions du même fichier pour corriger la même faille de sécurité. Hourra! Il convient de noter que les stratégies et les redirections obligatoires peuvent aider, mais cela revient à dire qu'une aide de groupe aide à lutter contre les plaies ouvertes.
Stein Åsmul
12

Le déploiement de XCOPY a été annoncé par Microsoft comme la voie du futur il y a quelques années. Toujours rien :)

En attendant, vous pourriez être intéressé par la plate-forme PortableApps.com.

Piotr Dobrogost
la source
7

Excellente question, j'ai déjà posé une question connexe sur Stack Overflow.

La réponse semble souvent être "parce que c'est comme cela que nous l'avons fait par le passé". Désolé mais ça ne me lave pas.

Quelques autres ont dit que la raison principale était due au registre. Si vous parlez d'un pilote de périphérique ou d'un autre composant COM, etc., cela peut être nécessaire, mais pas pour les applications à interface graphique telles que les logiciels de traitement de texte ou les feuilles de calcul.

Il est tout à fait possible d'écrire une application qui vérifie au démarrage les paramètres de registre requis et les invite à les utiliser / utilise les valeurs par défaut. Ou, comme le font actuellement de nombreuses applications protables, jst informe l'utilisateur que l'intégration du système d'exploitation est actuellement limitée car vous utilisez le mode portable.

Les installateurs ont souvent beaucoup de "connaissances" sur le fonctionnement de l'application. Ensuite, lorsque l'application change, vous devez souvent mettre à jour le programme d'installation. C'est une cause classique de bugs / problèmes que j'ai vus dans ma programmation temporelle.

C'est la solution idéale pour tous.

Ash
la source
6

Réponse simple et directe: il s'agit simplement de savoir qui contrôle. De nos jours, la plupart des logiciels sont conçus par des géants d'entreprise pour l'environnement d'entreprise ou institutionnel, dans lequel les utilisateurs doivent dire quoi faire au lieu de dire à leur ordinateur quoi faire pour eux.

Votre question est extrêmement importante car elle soulève une question fondamentale concernant les droits et libertés individuels qui sont de plus en plus érodés, non pas par les tyrans comme dans les sociétés anciennes, mais par la cupidité des entreprises et le besoin de quelques-uns de contrôler la majorité.

En fait, nous semblons avoir oublié que les mêmes personnes qui décriaient autrefois la tyrannie de géants tels que IBM sont devenues les IBM de nos jours ... Il suffit de regarder de près les pratiques commerciales de Microsoft, Apple et Adobe pour en nommer quelques-uns et me faire comprendre que leurs licences restrictives sont plus bénignes que ne l'étaient les pratiques commerciales d'IBM, le même IBM qui, par son ouverture, a réellement ouvert la voie à la révolution de l'informatique personnelle ...

J'ai utilisé de nombreuses applications autonomes et portables au fil des ans et sans exception, elles se sont avérées être les plus efficaces, les plus rapides et les plus petites en termes d'encombrement et de ressources, et surtout, elles sont non seulement supérieures à leur bloatware. leurs homologues, mais la plupart du temps, ils sont également libres.

Il est grand temps de procéder à une deuxième révolution informatique. Améliorer la portabilité en réduisant le volume et en précisant le lieu de stockage des paramètres, dans un dossier distinct sur un emplacement physique distinct sur un support physique tangible, est un pas dans la bonne direction.

Vieux fidèle
la source
5

Une combinaison du registre et du stockage par utilisateur. Le registre est un élément essentiel, en particulier si votre application est basée sur COM (ce qui nécessite une inscription, ce qui se produit dans le registre). Le stockage par utilisateur (de configuration, etc.) est également un élément important. Le seul bon moyen de le faire est de le stocker dans des répertoires spécialement conçus (voir Stockage isolé ).

Traverser
la source
Exactement. Comment le système d'exploitation peut-il trouver le fichier EXE ou DLL à charger sans emplacement fixe? "Set oExcelApp = CreateObject (" EXCEL.APPLICATION ")" doit fonctionner d'une manière ou d'une autre.
Zan Lynx
4

Principalement à cause du registre Windows - même si vos programmes sont dans un certain répertoire, les paramètres sont souvent stockés dans le registre.

Cela peut également être dû au fait que le programme place des fichiers dans d’autres répertoires de votre ordinateur autres que le répertoire d’installation (system32 par exemple).

Eric Petroelje
la source
3

L'autoréparation est un gros avantage pour les installateurs par rapport au type d'installation Xcopy / portable.

Une application qui utilise correctement le système Windows Installer aura toutes sortes d'informations à ce sujet enregistrées dans la base de données Windows Installer de votre ordinateur, ainsi qu'un cache de parties importantes des fichiers d'installation.

Si l'application est interrompue pour une raison quelconque (quelque chose d'autre supprime / remplace un fichier, le registre est corrompu, des problèmes de disque, l'utilisateur supprime le raccourci, etc.), le programme d'installation vérifie les fichiers et les clés chaque fois qu'il démarre. remplace s'ils ne sont pas présents, ou vous pouvez aller dans Ajout / Suppression de programmes et cliquer sur Réparer dans l'application.

GAThrawn
la source
Pourquoi est-ce la seule chose à laquelle je puisse penser en lisant l'icône du bureau Adobe Reader? Celui-là est si incroyablement auto-réparateur qu'il est
ahurissant
2

Je pense que cela est en partie dû au grand nombre d'applications cruelles dont Windows a besoin. Par exemple, clés de registre, données utilisateur (/ Users // AppData). Peut-être que OSX gère cela mieux / différemment.

Là encore, il n'est pas impossible de créer des applications que vous pouvez simplement extraire d'une archive - je suis toujours heureux quand c'est le cas.

Ross
la source
2

Le .NET Framework est la plate-forme pour activer ce type de fonctionnalité, et la plupart des installateurs sont simplement utilisés car c’est ce à quoi les utilisateurs normaux sont habitués. De la même manière que les utilisateurs de Mac sont habitués à copier des fichiers dans le dossier Applications.

La majorité des installateurs développent simplement des fichiers dans le dossier Program Files et crée un raccourci. Il s’agit plus de savoir ce que les utilisateurs savent et il est souvent trop simple de garder le même processus même si l’application est portable.

BinaryMisfit
la source
2

Certains programmes exigent que l'emplacement d'installation soit dans le registre, d'autres peuvent avoir leur emplacement codé en dur dans le programme (c'était le cas pour perl.exe).

La raison principale en est que les programmeurs ont opté pour la solution de facilité, et ont codé en dur quelque chose dans les programmes, qu'il s'agisse de clés de registre ou de chemins réels.

Brad Gilbert
la source
2

De nombreuses applications Windows doivent utiliser des environnements ou des services système, tels que SQL Server, IIS, WMI, les domaines de sécurité, Active Directory, etc. Un utilisateur typique peut ne pas avoir la moindre idée de la façon de les configurer ou même ne pas y avoir accès.

Les applications telles que Microsoft Office ne sont pas des fichiers uniques; ils contiennent des dizaines de fichiers, exécutables, utilitaires, services, modèles, plug-ins, pilotes, etc. Lorsque vous installez une application, vous ne pouvez pas simplement écraser tout ce que la nouvelle application utilise, elle doit correspondre à ce qui existe déjà. Les installateurs Windows font plus que copier des fichiers, ils peuvent interroger l'environnement système, exécuter des scripts et installer des services, et configurer la machine comme s'il s'agissait d'un administrateur.

dbkk101 demande pourquoi les applications Windows "ne peuvent pas toutes s'entendre". Ils peuvent, c'est ce que les installateurs sont pour.

Arche haute de Dour
la source
2

Avec certains programmes, l’installation est ridicule, mais il ne suffit pas de "faire glisser un fichier dans le répertoire des programmes".

À tout le moins, un bon installateur avec décompresse le fichier d’installation, configure les raccourcis appropriés et facilite la suppression du programme dès qu’on ne le souhaite plus. Je pense que la décompression et la copie est probablement la plus longue.

Ensuite, il y a les fichiers partagés - ceci est particulièrement vrai dans le monde Linux bien que ce ne soit pas vraiment le cas dans Windows IMO.

Plus important encore, certains programmes doivent être configurés pour la machine et certains (je présume au moins) tentent d’optimiser en fonction de la machine ou du moins, ce que le dialogue d’adobe me fait croire.

De plus, je n’ai jamais vu de raison d’installer sur une partition séparée. Vous avez tendance à perdre toutes vos valeurs de registre et vos paramètres de configuration. De plus, je préfère réellement cette perte, car elle réduit le volume de Windows.

wag2639
la source