On Mon, Jul 07, 2003 at 01:48:21PM +0200, Sergey V. Spiridonov wrote: > Oleg Gritsinevich wrote: > >On Fri, Jul 04, 2003 at 12:35:20PM +0200, Sergey V. Spiridonov wrote: > >[skip] > > > >>4. При всём при этом, остаётся возможность выбора бакэнда(формата) и > >>возможность сетевого взаимодействия, без необходимости что-либо > >>специально для этого программировать или изменять в приложении. > > > > Как в концепцию gconf-а вписывается конфиг sendmail-а > >(представляющий собой исходник на сноболе)? > > Да хоть на фортране. Какая разница? В чём Вы здесь видите проблему? > > Концепция жконфа вписывается так же, как TCP/IP вписывается в python, к > примеру. > > Есть библиотека sockets, и есть к ней API на питоне. Точно так же есть > библиотека gconf а для остальных языков пишется соответствующее API. > > Или я Вас не понял? Речь идёт не о биндингах к API gconf-a другого языка, а о другом. В данном случае _сам_ _конфиг_ (sendmail.cf) представляет собой программу на некотором языке, которую интерпретирует другая программа (в данном случае sendmail). Данный конфиг не вписывается в концепцию name-value pair и ни в какой другой "общий формат" описания конфига тоже не вписывается. Единственное, чем sendmail может воспользоваться в API gconf-a, IMHO нотификация об изменении конфига, и чем это лучше обычного kill -HUP? Завязывание программы на gconf автоматически сужает её область применения/распространения, по крайней мере системные вещи на него завязываться не должны и скорее всего не будут. Не совсем понятна цель создания gcnof-a: - избавить программистов от рутинной писанины парсеров конфигов? В сложных случаях, как в примере с sendmail-ом, это невозможно. - предоставить средства редактирования конфигов с валидацией синтаксиса и введённых значений? Ну синтаксис ещё можно кое-как отслеживать. Так большинство существующих программ и так не запустятся с ошибкой конфиге. Проверка семантики? Она тоже возможна только в самом примитивном виде (проверка принадлежности значения к.-л. м-ву), а как н.п. проверить не попутал ли пользователь наружный интерфейс с внутренним в конфиге iptables? Конфигурирование сложных приложений gconf упростить не сможет, а в простых случаях ничего упрощать и не надо. IMHO работать оно будет только в простых случаях, а для простых случаев достаточно иметь библиотеку парсилки конфига (н.п. вида name-value pairs): на входе имя файла, на выходе представление конфига в виде списка/дерева и т.п., подсовываешь библиотеке ключ -- получаешь значение параметра. Семантической проверкой вообще никак не заниматься -- пользователь перед началом конфигурирования должен внимателььно прочесть док-цию и иметь ясное представление о том, чего он хочет добиться в конечном итоге.
-- With best regards, Oleg Gritsinevich