Чому всі програми не є портативними?
Це питання, яке нарікає на кожного, хто закохався в портативні програми: чому це не так все додатки портативні?
Сьогоднішня сесія запитань та відповідей приходить до нас люб'язно від SuperUser - підрозділу Stack Exchange, групування спільноти веб-сайтів з запитань та відповідей.
Питання
Читач від суперкористувача Том любить портативні програми чистої організації та хоче знати, чому все не є портативним:
Нещодавно я намагався "встановити" матеріал набагато менше на моєму комп'ютері Windows (ненавидять інсталяторів - мені потрібно знати, де є програми…), замість того, щоб використовувати портативні або автономні версії програм,.
Я їх все помістив у папку "Програми" на диску окремо від мого розділу Windows, тому, коли я перевстановлюю, я маю всі доступні програми з мінімальними зусиллями і з позитивного боку..
Програми, такі як Office і Creative Suite, все ще вимагають від мене пройти тривалий процес встановлення, де тисячі випадкових бібліотек і інструментів перекидаються через мою систему.
Чому Windows-додатки все ще потребують інсталяції? Чому ми не можемо просто перетягнути Photoshop в папку OSX і тільки вона працює? Хто-небудь ще зосередитися на портативних додатків, або я просто бути OCD про все це?
Ми, звичайно, любителі портативних додатків, а також хотіли б дістатися до дна речей.
Відповідь
Співробітник SuperUser Девід Уітні пропонує деяке розуміння того, чому багато додатків не є портативними і як система Windows застосовує своєрідну угоду про перенесення:
Інсталятори є результатом багаторічної еволюції, і трохи (спрощеної) історії допомагає зрозуміти, чому вони роблять те, що вони роблять ...
Модель Windows 3.1 запропонувала конфігураційні файли стилю config.ini для кожної програми, підтримуючи спільні бібліотеки, які переходять у системні папки, щоб запобігти дублюванню та втраті дискового простору.
Windows 95 представив реєстр, що дозволяє централізовано зберігати конфігурацію програми, замінюючи багато конфігураційних файлів. Що більш важливо, конфігурація вікон зберігалася в одному місці.
Реєстр став роздутим через застосування не очищення після себе. DLL пекло сталося в результаті множинних версій однієї спільної бібліотеки, перезаписуючи один одного.
.NET представила концепцію app.config (майже ini-файли позначають 2, на цей раз з дещо більшою структурою економії розробників, які витрачають час на написання ручних парсерів). GAC була введена до версій спільних збірок в спробі запобігти DLL Hell.
У Windows XP і більше в Vista, Microsoft спробувала визначити простір користувачів як місце для зберігання даних користувача і конфігураційних файлів в одному стандартному розташуванні, щоб дозволити профайлам переходу та легкої міграції (просто скопіювати ваш профіль) з додатками, встановленими в програмних файлах.
Тому я припускаю, що причиною є те, що «програми в Windows розроблені для того, щоб жити в одному місці, їх спільні залежності в іншому, а конкретні дані користувача в іншій», що дуже погано впливає на концепцію xcopying одного місця.
… І це необхідно для налаштування облікових записів користувачів, налаштування та забезпечення дозволів безпеки, завантаження оновлень і встановлення служб Windows…
xcopy є "простий випадок" і, звичайно, не найкраще підходить для всього.
На жаль, для шанувальників усіх портативних пристроїв багато додатків, особливо великих додатків, таких як Office, залишатимуться міцно закріпленими і поширеними по всій операційній системі.
Маєте щось додати до пояснення? Звучить в коментарях. Хочете прочитати більше відповідей від інших технологічних користувачів Stack Exchange? Перегляньте повний потік обговорення тут.