Иван Горячев писал(а):
...придётся выполнить какую-нибудь команду для установки. Скрипт во вычищению меню и ресурсов в принципе несложен. Но его же тоже нужно будет вызвать перед удалением
Я за простоту установки/удаления не только для пользователя, но и для разработчика. Согласен, не сложно раз тыкнуть по командеру после копирования для установки и раз перед удалением. Вопрос в том, откуда эти командеры возьмутся:
- для установки (например) будет командер DevCompiler.CompileThis, которым разработчик и так пользуется
- или специально для этого написанная команда (процедура) = лишняя возможность ошибиться.
Иван Горячев писал(а):
В такой форме проблема нерешаема
Мне кажется, что частично она уже решена. Главный лозунг подсистем - "Всё свое ношу с собой" ("Keep all constituents of a component in one place"). Если при этом речь идет о подсистеме, которая:
- использует только стандартные модули/подсистемы;
- не требует правки Config;
- поставляет новые средства через свое меню,
то её достаточно скопировать, скомпилировать (тыкнув командер) и нажать UpdateMenus. Для удаления - удалить папку.
Установка/удаление требует дополнительных действий, если
(1) несколько независимых мелких компонентов (для которых жалко заводить по отдельной подсистеме) объединены в одну подсистему (проде Cpc) (общие Menus, Strings ...)
(2) компоненты подсистемы требуют для функционирования не стандартные компоненты (т.е. установку других подсистем).
Мне кажется, что решение этих вопросов возможно и без серьезных переделок (компилятора и языка). Самая сложная проблема в этом вопросе -- добиться полной децентрализации (избавиться от Config и подобного). (2) решается просто, если нет (1). Может все-таки не такая бредовая идея -- "каждому независимо разрабатываему компоненту по подсистеме"?