Цитата Сообщение от танкист Посмотреть сообщение
Вот с этим почти соглашусь. Почти - из-за некоторых настроек, которые могут требоваться программе, и которые нужно сделать до запуска. Например, привязать программу к нужному расширению/типу файла.
даже в винде привязка к расширениям делается в меню настроек системы. в инсталляторах это просто "удобняшка", не необходимость.


это тривиальная операция, одинаковая для любых программ. ее достаточно декларировать в манифесте, а не писать в каждом приложении какой-то код, имеющий право произвольно копаться в системных настройках.

если говорить конкретно о расширениях, привязка к обработчиков к расширениям -- следствие концепции "коммунальной" для всего софта "файловой системы", отраженной на уровне пользовательского интерфейса. то есть, к такой практике, когда все данные в системе представлены в виде разрозненных файлов, которые пользователь произвольно "просматривает" и "запускает".

люди давно привыкли к этой дряхлой парадигме, и даже воспринимают ее как единственно-возможную, а она ведь далеко не адекватна реальным потребностям, и создает массу проблем.

пользователь-то, фактически, имеет дело не с файлами и директориями, а с логическими комплексами прикладных данных, которые эти файлы худо-бедно пытаются представлять. с программными пакетами, с медийными или книжными библиотеками, с архивами переписки, с исходниками проектов, базами знаний и т.д.

в IT давно придумано множество более совершенных абстракций для этих задач, но на уровне ОС они до сих пор не поддерживаются. в силу косности разработчиков, массовые ОС в этом плане застряли в 60-х годах.

Цитата Сообщение от танкист Посмотреть сообщение
Или же сказать системе, что теперь у неё <вот такая функция> присутствует. С другой стороны, программе может требоваться дополнительный функционал, который не установлен.
любой функционал, потребный программе, или предоставляемый самой программой, декларируется в манифесте (простого тектового формата). "даю/беру": название API, номер версии. все, ничего лишнего.