[devel] Re: Torque Installer - первый взгляд

Mikhail Zabaluev =?iso-8859-1?q?mhz_=CE=C1_alt-linux=2Eorg?=
Ср Янв 16 02:11:19 MSK 2002


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'ных примитивов, хватит одной таблицы
либо даже вертикальных/горизонтальных разбиений. Или даже только
вертикальных отбивок в стиле <hr>.
Для 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.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 232 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20020116/a367ab16/attachment-0001.bin>


Подробная информация о списке рассылки Devel