Hello Stanislav,
On Tue, Jan 15, 2002 at 07:54:36PM +0300, Stanislav Ievlev wrote:
>
> Yury Umanets wrote:
>
> >Stanislav Ievlev wrote:
> >
> >>Привет!
> >>
> >>Теперь я посмотрел инсталлятор несколько более подробнее:
> >>Вот возникло несколько мыслей:
> >>
> >>1) Архитектура очень интересная, особенно касательно плагинов
> >
> >
> >
> >>
> >>2) Но вот на примере плагина welcome - как я понял графика там жестко
> >>прошита. То есть хотелось бы такой же
> >
> >
> >Пока да, но это не недостаток архитектуры. Это мой недосмотр. Это как
> >раз то о чем говорил Жуков. То есть инициализания самого плугина будет
> >отдельно от инициализации самого плугина.
>
> ???
>
> Может быть в описании каждого плугина два символа :
> init_as_text
> init_as_gui
Лучше иметь глобальную корзину с параметрами, в которой и
устанавливать выбранный frontend, уровень вдумчивости настроек и т.п.
> >Вы это имели ввиду? Или вы говорите о том, что было бы неплохо весь
> >внешний вид описать в xml? Тогда лучше уж заюзать мозильное ядро и
> >сделать инсталяху на html :))
Mozilla, конечно, перебор. Но насчет XML стоит подумать. В случае
инсталлятора у нас имеется ограниченный набор управляющих элементов --
статический текст, поля ввода, списки, галки, максимум --
деревья. Несложный набор layout'ных примитивов, хватит одной таблицы
либо даже вертикальных/горизонтальных разбиений. Или даже только
вертикальных отбивок в стиле
.
Для GTK эти описания теоретически можно транслировать в glade с
помощью XSLT. Для ncurses -- придется исхитряться.
> >
> >>легкости ив переключении с тектового на графический интерфейс. Это
> >>понятно сложнее, да и сделать виджеты одинаково для обоих режимов
> >>очень тяжело, но иначе надо как я понял писать две версии интерфейса
> >>для каждого модуля (см. п. 7)
> >
> >
> >Постараемся избежать, но довольно трудно. Кроме того интерфейс это не
> >очень большая часть.
>
> Да, тяжело, посмотрите что мне пришлось накручивать ;))
>
> >
> >
> >>
> >>3) Не совсем я также разобрался зачем нужен extraseg. Я если честно
> >>опасаюсь нестандартностей
> >
> >
> >Он нужен для того, чтобы получить один бинарник и не париться с тем
> >куда положить модули, где их программа должна искать и т.д. Ну это
> >такая тяга к компактности. Записал на дискетку бинарник и все :))
> >
> >А на счет нестандартности, так вроде все нормально. Добавили мы одну
> >секцию в elf ну и что? Это позволительно. Компилятор вон их сколько
> >пихает для всякой чепухи :) В остальном - нормальный lds скрипт, для
> >elf32-x86.
> >Мы ж можем проверять архитектуру и пихать нужный скрипт. В конце
> >концов можно от него отказаться. Его вполне можно заменить dlopen-ом
> >на свой бинарник, но из-за этого инсталяшка линкуется на libdl, что
> >при статической линковке не дает экономию в несколько десятков килобайт.
> >
> >Кроме всего прочего можно эту "фичу" вообще не использовать, если
> >смущает. А можно использовать для чего-нибудь миниатюрного.
>
> Я как понял это замена символов. Может кстати это позволит лучше
> застрипать плагины.
>
> >
> >>
> >>4) Мне показалось, что слишком сильная привязка на gtk. Но может я не
> >>прав.
> >
> >
> >Согласен.
> >
> >Когда я уберу зависимость GUI от кода плугинов зависимость на gtk
> >уменьшится. Ну а вообще, нужно ж на что-то завязываться. Нужно
> >подумать, как завязаться по минимуму
>
>
> >
> >
> >>
> >>5) Инсталлятор будет постоянно усложняться. Может лучше его написать
> >>на C++? Современные инсталляторы от MDK и RH это многие килограммы
> >>кода в которых разбираться не очень просто.
> >
> >
> >Писал на C по нескольким причинам.
> >1. Инициализация быстрее.
> >2. Компиляция быстрее (несущественно)
> >3. был выбран gtk по причине легкости и GPL-ности
> >4. gtk-шная c++-ная реинкарнация не поспевает за c-шной
Насколько я в курсе, за стабильной -- поспевает.
> Мне кажется это вообще изврат - эмуляция C++ через C ;)
Зато ABI libgtk+.so не зависит от версии компилятора, флагов и т.п.
Объектно-ориентированное программирование не обязательно требует
объектно-ориентированного языка :)
>
> >
> >5. многие считают с++ не совсем подходящим языком для таких задач
> >(несуущественно)
>
> C++ идеален для больших проектов (как инсталлятор+конфигуратор). Gnome
> наглядный пример что приходится накручивать для эмуляции возможностей C++.
> Прикрутить обычный gtk к C++ это не проблема.
>
> Можно оставить С на двух первых стадиях, а самую интеллектуальную часть
> сделать на C++.
Тогда лучше был бы Python. И проще, и красивее, и с потенциальными
frontend'ами интегрируется. Даже не сильно накладно могло бы
получиться, особенно если скомпилировать в .pyo и выкинуть исходники.
--
Stay tuned,
MhZ JID: mookid@jabber.org
___________
Going to church does not make a person religious, nor does going to school
make a person educated, any more than going to a garage makes a person a car.