Здравствуйте, Кодёнок, Вы писали:
Кё>Чтобы написать ХОРОШИЙ инсталлятор, обязательно придется перемолотить тонны документации. Не по инсталлятору, так по операционной системе, её API и Knowledge Base. Такой, что в случае ошибки не оставляет мусора, не забывает удалять ВСЕ файлы и спрашивать об удалении неизвестных (например, конфигов). "Простая" инсталляция, которую ты предлагаешь (и которая также используется в NSIS), в стиле "function install(): copy file1; copy file2;" и "function uninstall(): delete file1; delete file2;" приводит к инсталляторам, которые такими багами изобилируют. В результате приходится отлаживать инсталлятор также.
Да, мне я этим занимаюсь, но не надо мне говорить: у тебя не получится, всё равно будет хуже, ... Корявость программной части моего инсталлятора не вписывается в этот то.
T>>а то, что при декомпиляции придётся ввести этот серийник — это ерунда?
Кё>А ты не в курсе, что хакеры покупают один серийник, распаковывают, затем запаковывают опять сломанные файлы в инсталлятор БЕЗ СЕРИЙНИКА . Твоя 100%-ная защита может сойти только за рекламный ход, на самом деле защищают программы по-другому (не в инсталляторе).
Итак. Моя программа — "Small Installer для программ, распространяемых через интернет."
Например тебе нужна прога типа PDFtoHTMLconverter. Вот приспичило. Куда ты пойдёшь за прогой
на PDFtoHTMLconverter.com
или на warez.com, где прога с выдранным серийником и загаженная SpyWarezom.
А насчёт защиты "по-другому", так согласен. Никто не обязывает защищать прогу серийником в инсталляторе.
Mam>>>Какие элементы? Если их тысячи и один кривее другого? T>>Это можно расценивать как оскорбление? Я понимаю, что каждый кулик своё болото хвалит, но не на столько же!
Кё>Да ты покажи уже свои менюшки! Все CSS/HTML-эмуляции контролов, которые я видел, были кривыми.
T>>Пополз...
Кё>Выложи, посмотрим... А фильтры, кстати, работают в XP SP2?
"в XP SP2"
Там работают, только если прописан правильный w3.org и только в листах стилей. http://menubuilder.fasthtm.com/?download — программа корявая, но некоторые шаблонные менбшки очень даже ничего.
T>>Хотя вряд-ли стили отключает даже хотя-бы каждый десятитысячный потребитель Кё>В Firefox есть пункт меню "Use default style", который я очень часто использую при просмотре какой-нибудь страницы с черным фоном и ярким текстом. Если я пользовался IE и это было близко и только для текущего окна... (начались несбыточные мечты) — тоже бы пользовался.
Вот именно. Большинство тех, кто умеет отключать стили ставит настройки ИЕ по-умолчанию и пользуется другим нормальным браузером.
Кё>Вот и тебе и ответ на все сразу. Тут 99% пишут не кряки и кейгены, а зарабатывают выпуском коммерческого софта, а многие и сами продают. А ты — кряки, кейгены.
Ладно, про кряки я загнул. Это про интерфейс, а не про инсталлер.
Вот 10 последних программ в download.ru
Paragon CD-ROM Emulator
Paragon Partition Manager
7-Zip
Reg Organizer
Supervisor Контроль и администрирование ОС
CPU Grave
Work With Registry
fitW (fine tuning of Windows)
Каждая из них занимает окола мегабайта места.
Install Shield запакует их в ~1.5mb — Уже есть вероятность, что программу просто не станут качать из-за размера.
Мой инсталлер запакует в 0.3-0.9mb, что уже лучше.
Кё>Вывод: MSHTML, конечно, работает. Разве кто-то говорил, что он не работает? И его можно использовать. И его используют. Но по-хорошему он не катит. Потому что квадратный. Поэтому альтернативные проекты не просто имеют право на жизнь, а местами даже блещут на фоне IE. Точно такой же шаблон можно сделать на htmlayout, прикрутить скрипт, если нужен (даже компилируемый), и получить нечто гораздо более контролируемое. Но если лень почитать немного, чтобы перенести пару функций (COM все равно тебе нужен, если собираешься работать с IE), то это недостижимая вершина, конечно.
Да не подходит HTMLlayout для инсталлятора, потому как он ЖИРНЫЙ. Зачем ради какой-то мнимой выгоды HTMLlayout перед IE убивать главное преимущество моего инсталлера?
T>>DomAPI> M>Это просто показывает, что кто-то решил создать стандартизированную библиотеку элементов на JavaScript. HTML почти не имеет к этому отношения.
Хех... Вот, пожалуйста. Только загрузил первый контрол — кнопку, как обнаружил, что двойной щелчок на ней выделяет текст в Мозилле и вообще не вызывает повторного нажатия в IE. Симуляция 3D-приподнятости, как и везде, корявая.
Все следующее относится к IE со стандартными настройками:
— ComboBox просто уродский. Причем если навести курсор на границу его кнопки, он превращается в руку. Щелчок вне контрола при выпавшем списке не закрывает список.
— DateTimePicker — похоже просто недоделан, я видел и лучше, так что молчу.
— Grid, HeaderBar — тоже позволяет выделение текста.
— ListBox — нажать на элементе и увести за контрол оставляет артефакты.
— Menu — покажите его, затем средней кнопкой вне его. Оно останется. А если еще и попап был показан, так тот останется даже при скрытии и повторном показе основного меню.
— MenuBar — щелчок вне меню не закрывает попап.
— PageControl — про Ctrl+Tab забыли (если это возможно?).
— Slider — выделите текст "onchange = Basin number 6", затем ухватите выделенный thumb на слайдере и перетащите его на текст "Positioning Test". Увидите глюк с mousecapture.
— SpinEdit — про изменение значения колесиком забыли. Как и зачем-то отключили двойной щелчок на стрелках. Нажмите в нем буквенную клавишу, и увидите, что проверка производится по таймеру или еще как-то так
— Tree — клава не работает...
Я проверял только стандартные Common Controls. Причем просто пощелкал там-сям, не копался скурпулезно в каждой комбинации щелчков и клавиш, как наш тестер . Симуляция 3D-приподнятости неправильная, еще раз повторю. Про поддержку скинов (не цветовых тем) тут и речи быть не может.
На вебсайтах такие контролы уже не удивляют. В программах этот интерфейс только для какой-нибудь поделки годится, вроде кейгенов Им еще фон вставить, музыку добавить, цветовую гамму оранжевую и отличный оригинальный интерфейс получится
T>А насчёт защиты "по-другому", так согласен. Никто не обязывает защищать прогу серийником в инсталляторе.
А зачем тогда сказал? Все в кучу собрал — и новое направление, и инсталлятор свой, и еще какие-то пункты достоинств неизвестно чего приписал...
T>http://menubuilder.fasthtm.com/?download — программа корявая, но некоторые шаблонные менбшки очень даже ничего.
— да уж, под Win98 у меня упорно вызывает креш И какое-то ДОС-окно проскакивает перед запуском.
— менюшка пропадает при уведении из нее мышки. Сильно бесит, если случайно курсор дернулся, а я уже зашел глубоко в дебри вложенных меню.
— если интерфейс этой программы ты считаешь нормальным, то неудивительно твоё воодушевление по поводу возможностей HTML+CSS+JS
— шаблон ms эмулирует неправильно, дергается при наведении на javascript2 и у него ничего не выпадает.
— ни один шаблон не нравится, даже если бы я стал использовать фешси-шменси в своей программе Для сайта — сколько угодно. Хотя куча сайтов живет без меню и им это только большой плюс.
— некоторые шаблоны игнорируют настройку "большие шрифты", некоторые нет, у некоторых игнорирует только попап, а само меню нет. Вот это все мелочи, мелочи, которые будут один за другой обнаруживаться каждый месяц, и каждый месяц их будешь фиксить, фиксить...
— оказалось, что сама программа на Delphi, а жаль Отключить бы JS & ActiveX — это нормальная мера, которую сисадмины принимают ради спокойствия юзеров — и посмотреть на интерфейс...
— на будущее — она пишет ярлык в прямо в start menu — бить ногами . Даже M$ перестала себе это позволять.
Ну вот опять не нашлось нормального контрола на HTML . Удастся ли когда-нибудь увидеть нормальные контролы на html?
T>Install Shield запакует их в ~1.5mb — Уже есть вероятность, что программу просто не станут качать из-за размера. T>Мой инсталлер запакует в 0.3-0.9mb, что уже лучше.
NSIS? Даже Inno Setup, писанный на Дельфи, прибавляет всего 300к — это всем известная цифра, размер VCL . А качать из-за размера не станут русские, но русские почти и не покупают . Да и у нас у многих уже давно не 33.6-модемы.
T>Да не подходит HTMLlayout для инсталлятора, потому как он ЖИРНЫЙ. Зачем ради какой-то мнимой выгоды HTMLlayout перед IE убивать главное преимущество моего инсталлера?
Да для инсталлятора вообще никакой layout не подходит, потому что нафиг не нужен . Выгода будет при использования его для интерфейса! Диалогов, главного окна и т.д.
Я прочитал все ваши посты и вижу, что все преимущества ваших вариантов мифичны.
Итак, давайте начнём сначала.
Предположим есть html-IE шаблон проги на 20кб.
Предположим есть необходимость написать МАЛЕНЬКУЮ программу например инсталлер.
Например этот инсталлер только для программ, распространяемых через интернет и попадающих на компьютер пользователя путём скачивания.
Ладно не буду, спорить. В ваших инсталляторах есть многие возможности, но большая часть из них бесполезна для такого типа программ.
1)Welcome
Будет реализован на html лучше или так-же.
2)Licensed Agreement
Он будет не в memo1, а на всю ширину инсталлятора и кнопка next будет не выключена, а просто внизу страницы. Пользователю всё равно придётся промотать всю страницу, чтобы продолжить установки. Также возможен стандартный вариант.
3)Серийный номер.
Как было сказано не мной, таким способом программы не защищаются. Программы ShareWare и имеют собственный механизм регистрации.
Итог: Не нужен.
4)Выбор компонент.
Как будто человек скачает программу с инета и будет ещё чего-то выбирать экономя пару килобайт на винте.
Итог: Не нужен.
5)Выбор StartMenu
Будет реализован не через ListBox, высотой в 10 пунктов, а через одиночные checkbox, или же более гибко, благодаря редактируемости html
6)Installing
ProgressBar может бвть переделан как человеку вздумается. Хоть превращением одних картинок в другие, сборкой мозаики или же обычной полоской.
Все преимущества Install Shield не нужны для десятков тысяч программ, распространяемых через инет. Не нужен Repair, Serial, Выбор компонент и все другие возможностями, которыми всё-равно никто не пользуется.
Итак, если кто будет отвечать на этот месаг, то напишите по строчкам преимущества InstallShield,.. для маленьких программ, распространяемых через инет. И к каждому преимуществу пример, где и как это может быть использовано.
tiberius пишет:
> Итак, давайте начнём сначала. > Предположим есть html-IE шаблон проги на 20кб.
Минимальный MSI-файл занимает около 10 килобайт.
> Предположим есть необходимость написать МАЛЕНЬКУЮ программу например > инсталлер. > Например этот инсталлер только для программ, распространяемых через > интернет и попадающих на компьютер пользователя путём скачивания.
Инсталляторы писать под Винду давно не нужно, так как есть нормальный MSI.
> 1)Welcome > Будет реализован на html лучше или так-же.
Стандартный диалог в MSI (причем локализованный примерно для 50 языков).
> 2)Licensed Agreement > Он будет не в memo1, а на всю ширину инсталлятора и кнопка next будет > не выключена, а просто внизу страницы. Пользователю всё равно придётся > промотать всю страницу, чтобы продолжить установки. Также возможен > стандартный вариант.
Стандартный диалог в MSI, локализованный. Требуется только указать
RTF-файл с лицензией.
> 3)Серийный номер. > Как было сказано не мной, таким способом программы не защищаются. > Программы ShareWare и имеют собственный механизм регистрации. > Итог: Не нужен.
Есть в MSI, локализовано.
> 4)Выбор компонент. > Как будто человек скачает программу с инета и будет ещё чего-то > выбирать экономя пару килобайт на винте. > Итог: Не нужен.
Есть в MSI, локализовано.
> 5)Выбор StartMenu > Будет реализован не через ListBox, высотой в 10 пунктов, а через > одиночные checkbox, или же более гибко, благодаря редактируемости html
Есть в MSI, локализовано, в диалоге выбора компонент.
> 6)Installing > ProgressBar может бвть переделан как человеку вздумается. Хоть > превращением одних картинок в другие, сборкой мозаики или же обычной > полоской.
Можно сделать в MSI.
> Итог > InstallShield — Большая серая инсталляция.
И при этом _работающая_.
> Мой инсталлер — Маленькая стильная инсталляция.
Но неработающая. Она добавляет программу в список установленных
программ? Позволяет автоматически устанавливать недостающие DLL'и
(msvcrt71.dll, например)? Обрабатывает счетчики ссылок на DLL? А ведь
это все нужные, даже необходимые для любого инсталлера вещи.
А как насчет автоматического отката при ошибке установки, оценки
требуемого места, автоматической инсталляции/деинсталляции?
Ась?
> Все преимущества Install Shield не нужны для десятков тысяч программ, > распространяемых через инет. Не нужен Repair, Serial, Выбор компонент > и все другие возможностями, которыми всё-равно никто не пользуется.
Да? Я бы сказал, что пора ДАВИТЬ производителей таких мелких
инсталлеров, и использовать нормальный MSI. Для NSIS/InnoSetup можно
сделать исключение — они тщательно тестируются на совместимость с Виндой.
T>Предположим есть html-IE шаблон проги на 20кб. T>Предположим есть необходимость написать МАЛЕНЬКУЮ программу например инсталлер. T>Например этот инсталлер только для программ, распространяемых через интернет и попадающих на компьютер пользователя путём скачивания.
Ну маленькие проги кое-кто и на асме пишет. И как вообще только не извращаются. Маленькие программы оставим кейгенам. Тут ведь люди прямо или косвенно зарабатывают на жизнь выпуском коммерческого софта, про него тут все и думают...
А взять хотя бы типичную шареварную программку с дистрибутивом 2-5 метров, с достаточно богатым интерфейсом — так ни шаблон с IE-движком, ни наколенный инсталлер им не нужен. Про большие программы и речи нет.
P.S. MS сначала попыталась внедрить html-диалоги, так мгновенно же от них и отказалась. Угадай почему И например там где в Win2000, Outlook, MSN Messenger был IE, теперь в новых версиях стоит что-то другое, например, .Net-контролы или DirectUI (какая-то приватная их технология, duser.dll которая отображает xml-файлы диалогов, записанные в ресурсы).
> Все преимущества Install Shield не нужны для десятков тысяч программ, > распространяемых через инет. Не нужен Repair, Serial, Выбор компонент > и все другие возможностями, которыми всё-равно никто не пользуется.
Выбор компонент можно просто скрыть за опцией Advanced, как это часто делается. А самописные маленькие инсталляторы несут с собой тучу багов. Такие как NSIS или Inno _годами_ тестируются. Посмотри им в ChangeLog, чтобы узнать, сколько тебе мелочей придется протестить и отработать. В самые неожиданные моменты у тебя будут вылезать несовместимости с антивирусами, с защитными фишками Win2000/XP/далее, с перемещенными Program/Common files и профилями, сетевыми дисками и т.д. и т.п.
Повторюсь, для "маленьких программ", коих куча на download.ru, которые в большинстве своем бесплатные, что отражает серьезность, с которой они разрабатывались, и которые активно используют немногие ибо в большинстве своем они не очень нужные, недоработанные, глючные, и т.д., можно использовать все что угодно, вплоть до ZIP/RAR sfx или распространения без инсталлятора вообще.
T>3)Серийный номер. T>Как было сказано не мной, таким способом программы не защищаются. Программы ShareWare и имеют собственный механизм регистрации. T>Итог: Не нужен.
А вот реализация ввода серийного номера нужна. С курсором, автоматом переходящим на следующее поле, например.
T>4)Выбор компонент. T>Как будто человек скачает программу с инета и будет ещё чего-то выбирать экономя пару килобайт на винте. T>Итог: Не нужен.
Ты инсталятор Winamp'а видел? Там помимо прочего еще дополнительная функциональность сразу настраивается — ставить ли шорткаты, регистрировать ли расширения, ставить ли AOL, подсоединяться ли к интернету и еще вагон чего.
А Winamp — реально маленькая программа и распространяется по инету. И весит больше 4-х мегабайтов. На их фоне 300кб VCL от InnoSteup или 850кб от HTML-Layout вообще незаметны будут.
T>5)Выбор StartMenu T>Будет реализован не через ListBox, высотой в 10 пунктов, а через одиночные checkbox, или же более гибко, благодаря редактируемости html
Какой-такой редактируемости HTML?
T>6)Installing T>ProgressBar может бвть переделан как человеку вздумается. Хоть превращением одних картинок в другие, сборкой мозаики или же обычной полоской.
То есть, реализация самого важного в инсталяторе — индикатора состояния — будет реализовываться через одно место? Нет уж, увольте. Где там нежно любимый мною NSIS?...
T>Итог T>InstallShield — Большая серая инсталляция. T>Мой инсталлер — Маленькая стильная инсталляция.
Zend Optimizer 2.5.7 Windows — 2.89 мегабайта, скачивается с www.zend.com. Упакован InstallShield визардом. 3 мегабайта — это весьма маленькая программа. Причем инсталятор умеет определять уже установленные версии программы, сносить их по мере надобности, совершать rollback и uninstall.
Далее. Такая инсталяция не серая, а стандартная. Мне, да и 99.9% юзверей тоже, не нужна стильная инсталяция. Им нужна привычная функциональная инсталяция, что InstallShield, например, да и NSIS тоже, предоставляют.
T>Все преимущества Install Shield не нужны для десятков тысяч программ, распространяемых через инет. Не нужен Repair, Serial, Выбор компонент и все другие возможностями, которыми всё-равно никто не пользуется.
Repair, может, никем и не используется.
Serial — нужен для TrialWare и ShareWare.
Выбор компонент — см. Winamp. Выбор компонент не всегда обозначает выбор устанавоиваемых програмных компонент.
А вот rollback (очистка при прерванной инсталляции), грамотная регистрация в системе и корректный uninstall нужен в любом случае.
T>Итак, если кто будет отвечать на этот месаг, то напишите по строчкам преимущества InstallShield,.. для маленьких программ, распространяемых через инет. И к каждому преимуществу пример, где и как это может быть использовано.
см. выше.
Ну и в догонку. Пользователю нужна во-первых, функциональность, во-вторых, узнаваемость, в третьих, стандартное поведение, в-четвертых прибамбасы.
T>Все преимущества Install Shield не нужны для десятков тысяч программ, распространяемых через инет. Не нужен Repair, Serial, Выбор компонент и все другие возможностями, которыми всё-равно никто не пользуется.
T>Итак, если кто будет отвечать на этот месаг, то напишите по строчкам преимущества InstallShield,.. для маленьких программ, распространяемых через инет. И к каждому преимуществу пример, где и как это может быть использовано.
Основное преимущество настоящих инсталляторов — это возможность потом корректно снести твою программу. Все эти супергениальные изобретатели инсталлеров всегда делают одни и те же ошибки. Навскидку:
1. Некорректное поведение при запуске из-под ограниченного пользователя
2. Неумение откатиться назад при сбое инсталляции
3. Неумение корректно удалиться, когда пользователь убедится, что опять скачал полный суксь
4. Неумение взаимодействовать с апплетом контрольной панели Add/Remove programs
5. Неумение корректно удаляться при использовании shared DLL.
5. Неумение работать в тихом режиме (без взаимодействия с десктопом)
6. Прописывание ярлыков куда попало (Start menu/Desktop/Quick launch) без спросу
7. Неумение работать с нестандартными расположениями стандартных фолдеров (%windir%, %programfiles%, %userprofile%)
8. Неумение корректно детектировать наличие пре-реквизитов (сторонних программ, от которых зависит работа устанавливаемой).
Про умение поддерживать административную инсталляцию, умение регистрировать так называемые advertisements, т.е. функции, инсталлируемые при первом обращении, и прочую муть типа автоапдейтов через интернет, я даже не говорю. Потому, что мы говорим о маленькой программе. Тем не менее, инсталляция современного софта — это целая наука.
Интерфейс инсталлятора маленькой программы должен быть прост как угол дома. Иначе он в любом случае будет весить лишнего, а мы тут считаем каждый IP-пакет даунлоада.
Для маленьких программ, распространяемых через инет, существует ровно один вариант (для Windows). Это msi. Потому, что все вышеупомянутые умения встроены в специальную программу, которая таки есть на каждой win-машине. Но ты не угадал — это не IE, а Microsoft Installer. Я тебя уверяю — наколеночный инсталлятор маленькой программы ты ни в жизни не сделаешь меньше, чем .msi. При этом функционал, который я написал выше, ты запаришься реализовывать. Даже простейшее удаление залоченного файла требует определенных навыков и умений.
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Кё>Повторюсь, для "маленьких программ", коих куча на download.ru, которые в большинстве своем бесплатные, что отражает серьезность, с которой они разрабатывались, и которые активно используют немногие ибо в большинстве своем они не очень нужные, недоработанные, глючные, и т.д., можно использовать все что угодно, вплоть до ZIP/RAR sfx или распространения без инсталлятора вообще.
В истории того же NSIS написано, что они распространяли Winamp, как sfx zip, по-моему. Потом возникли вопросы с лицензией и им пришлось писать свой собственный инсталятор. Кстати, для маленьких программ весьма неплохой
... << RSDN@Home 1.1.4 beta 4 rev. 0>> ... <<Winamp is playing "Что играет? Где играет? Где ВинАмп, я вас спрашиваю?">> ...
A>>... За что я люблю Зе Мышь и Оперу — шустрая, компактная, удобная и никаких приблуд вроде хтмлей всяких. В отличие от того же IE, Outlook, Thunderbird и Mozilla.
R3>В IE есть приблубы?
У Microsoft везде есть приблуды
R3>И сдается мне, что Thunderbird и Mozilla у тебя элементарно не настроены, вот и тормозят. Например, ты знаешь, что при сворачивании окна Thunderbird, он освобождает занимаемую память (свопит), а при разворачивании обратно считывает? И это настраивается.
Своп — это конечно здорово, но это — лишь лечение "симптома", но не самой "болезни". А вообще, я описался, извиняюсь, — Netscape 7.1, что в общем то же самое, что и Mozilla 1.4. И я так подозреваю, картина в Mozilla та же (XUL — все-таки штука серьезная). А компьютер у меня по нынешним меркам не особо мощный — P4-1600, 256 ОП.
Так уж устроен человек, что к хорошему он быстро привыкает и так же быстро перестает это замечать (ценить). А вот плохое (даже не очень сильно плохое) всегда на виду и от него человек стремится как можно быстрей избавиться. Вот Netscape сделал красивый интерфейс и я это оценил. Но слижком уж много этот интерфейс кушает. И кушает не один раз, а постоянно. И это я тоже "оценил". С другой стороны, у Opera тоже скины, но они не столь требовательны к ресурсам. И даже 100-150 открытых окон (да, именно так, но так надо!) не засатавляют серьезно задуматься процессор, в отличие от Netscape. Да, XUL — мощное и довольно универсальное средство. А универсальность всегда требует жертв. Только вот кому это надо? Мне лично — нет.
Вообще, вам, как программистам, должа казаться странной идея этого "html-движка". Потому что любой нормальный программист стремится максимально возможно все оптимизировать. Сами подумайте — вы один(!!!) раз пишите этот html-интерфейс, а потом, если повезет (т.е. если программа получит распространение), тысячи, сотни тысяч раз этот интерфейс будет воссоздаваться из html в окна, элементы и т.п. Сотни тысяч раз эта двига будет разбирать текст, вычислять позиции элементов и делать кучу другой, в общем-то ненужной, работы. Миллиарды процессорных тактов будут потрачены просто зря! И ежу понятно, что эффективней будет все это дело просчитать один раз, во время разработки. Да и само программирование от этого усложнится, если брать за основу IE. Да и вообще, html — это язык разметки гипертекстов. Не стоит его пихать везде, где только можно. Microsoft это уже делала (всякие глупости вроде Active Desktop), а толку... Если уж так хочется красоту навести, то даже самый дубовый способ — нарисовать весь дизайн, вывести его в окно и обрабатывать mousedown/mouseup в различных областях (кнопки, например), будет довольно эффективен и прост в реализации. В любом случае, не уже ли нельзя сделать напрямую то, что можно сделать в html? Ну напишешь ты дизайн не за 15 минут, а за день-два, ну три, да хоть неделю! По сравнению с тем временем, что ушло на разработку самой функциональности, это — ничто. Конечно, если таковая имеется, а иначе, даже со всякими рюшечками, этот "продукт народного творчества" и даром никому не будет нужен. Верно и обратное — если программа полезна, то она будет пользоваться спросом вне зависимости, переливается ли у нее в окошке радуга, падают ли снежинки и пр. дрянь (что, кстати, наоборот раздражает), или нет. Достаточно сделать просто нормальный (а главное — функционально простой) дизайн, да хоть как в Word.
Что касается "революционного инсталлятора" от tiberius, то у него есть два пути: либо он как очередная поделка затеряется в просторах Сети, либо, если получит какое-то признание, разовьется до той же функциональности, что и промышленные, но только в бОльших размерах (из-за того самого mshtml), из-за чего все равно рухнет. Мне так кажется, что первый вариант куда более реален. Просто парень пока наивен и полагает, что он изобрел то, до чего другие почему-то никак не додумались. И у меня такое было. Но это пройдет
A>Вот Netscape сделал красивый интерфейс и я это оценил. Но слижком уж много этот интерфейс кушает. И кушает не один раз, а постоянно. И это я тоже "оценил". С другой стороны, у Opera тоже скины, но они не столь требовательны к ресурсам. И даже 100-150 открытых окон (да, именно так, но так надо!) не засатавляют серьезно задуматься процессор, в отличие от Netscape.
Да, это факт Так что новые layout-движки не за горами.
A>Сами подумайте — вы один(!!!) раз пишите этот html-интерфейс, а потом, если повезет (т.е. если программа получит распространение), тысячи, сотни тысяч раз этот интерфейс будет воссоздаваться из html в окна, элементы и т.п. Сотни тысяч раз эта двига будет разбирать текст, вычислять позиции элементов и делать кучу другой, в общем-то ненужной, работы. Миллиарды процессорных тактов будут потрачены просто зря!
Да... Почти везде все эти XML+CSS и JavaScript можно преобразовать в простой C++ код. Кстати, что касается транслируемости JS, то .Net со своим рефлекшеном эту проблему на 90% решает
A>Если уж так хочется красоту навести, то даже самый дубовый способ — нарисовать весь дизайн, вывести его в окно и обрабатывать mousedown/mouseup в различных областях (кнопки, например), будет довольно эффективен и прост в реализации.
Увы, это только в простейшем случае.
1) Если программа локализуется, то в одном языке кнопка будет "Вперед!" в другом — "Агтыдымканашмытукатыгыдымбаран!" и как тым быть? Ты думал, radiobutton будет всегда однострочной, а окажется — нет...
2) Поддержка текста, в котором смешаны RTL и LTR, уже требует кое-каких усилий. Благо есть Uniscribe в последних версиях IE (и винды), но и с ним работы куда больше, чем простой DrawText раньше.
3) В случае, когда контролы/панели каким-нибудь сложным образом выравниваются по правому краю, укладываются в стопки и т.п. добавление нового контрола потребует опять браться за голову двумя руками и все это пересчитывать (все свои руками сделанные алгоритмы layout-а). Так что от XML никуда, просто надо сделать его компилируемым.
A>В любом случае, не уже ли нельзя сделать напрямую то, что можно сделать в html? Ну напишешь ты дизайн не за 15 минут, а за день-два, ну три, да хоть неделю!
Проблема в том, что дизайн можешь делать не ты, а дизайнеры, а они будут согласовывать, переделывать... Им хочется — просто добавить промежуток в 3 пикселя, а тебе это выльется в переписывание своего алгоритма layout-a. Зато многие из них знакомы с HTML+CSS, так что им можно было бы и XUL доверить (наверное).
Re: Новое направление программирования - Просто, красиво, уд
От:
Аноним
Дата:
16.03.05 01:20
Оценка:
Здравствуйте, tiberius, Вы писали:
T>Всё это решается одним махом. Одним простым шаблоном программы.
Подобная штука уже давным-давно написана.
И написана она скандально известным Bill SerGio,
и называется она VSkins.
Он как раз и учудил сделать из IE универсальное приложение =)
Получилось из этого довольно странная и бесполезная штука.
Re: Новое направление программирования - Просто, красиво, уд
От:
Аноним
Дата:
23.01.07 13:54
Оценка:
Здравствуйте, tiberius, Вы писали:
T>Программистам — дочитайте до конца. T>Особенно это касается самых умных программистов с большими претензиями на мировое господство
T>Наверняка многие люди сталкивались с проблемой: T>когда надо было написать маленькую, удобную, красивую программу, T>а знаний для написания не хватало. Приходилось "перелопачивать" T>большое количество литературы для написания какого-либо простого действия.
T>/* T>Каждое десятое сообщение на форуме рсдн T>Как изменить стиль progressbar? Как добавить на форму эту фигню? T>Как разместить в программе браузер? Как проверить обновления через инет?... T>*/
T>Всё это решается одним махом. Одним простым шаблоном программы.
T>Вот требования к нему. T>1)При написании программы не должны использоваться T> сложные конструкции и интерфейсы типа COM, ATL, MFC, ... T>2)Программа должна занимать примерно от 10 килобайт места T>3)Программа должна отображать все основные реСтилизованные конструкции T> типа listbox, button, radiobutton без каких-либо знаний у программиста в WinAPI и т.д. T>4)Ну и наконец программа должна работать с интернетом: авторегистрация, обновления и т.д. T>опять-таки не требуя особых познаний программиста в протоколах.
T>Как-же всё это реализовать?
T>Ответ прост. Достаточно взять шаблон программы в которой реализован браузер на весь экран T>и обмен данными между javascript и cpp
T>Сразу вся нагрузка с пользовательского интерфейса и работы с интернетом уйдёт в HTML, T>а cpp будет выполнять локальные функции типа доступа к файлам и т.д. T>Например смотрю в свои дистрибутивы, беру проги все подряд: T>3dMark — Получится стильный интерфейс на html, а тастирующая часть на CPP T>PowerStrip — Интерфейс на HTML был бы значительно красивее и удобнее, T> а при этом все системные функции остались бы в теле проги. T>HTML2CHM — занимает 900 кб. А, если бы программа была написана с этого шаблона, T> то объём составил бы 20-30кб
T>А, если подумать сколько программ в России не было написано из-за сложности T>программирования форм, интерфейсов и т.д, большого объёма программ в среде C Builder.
T>Не надо только писать сюда советы типа "зайди на firststeps.ru, там mfc подробно расписано на 3769 страниц"
T>Я пока вижу у этого шаблона один очень большой недостаток: он ещё не создан T>У меня есть исходники программ, реализующих все необходимые функции. T>в zip 200кб или в rar 80кб T>Осталось объединить всё это воедино.
T>Получается СуперЗадачка
T>Условие T>Сделать программу отображающую html страницу на всю форму. T>Не должно быть бордера, конт меню и т.д.
T>Должны быть функции взаимодействия JavaScript и CPP
T>Получится отличный шаблон маленькой программы T>с возможностями CPP, но с интерфейсом HTML.
T>Программы, основанные на этом шаблоне будут занимать мало места T> и будут поддерживать элементарную систему смены скинов.
T>Человек, написавший этот шаблон станет просто T>родоначальником нового направления в программировании. T> — Методов создания очень удобных, стильных и простых в написании программ.
T>Желательно написать прогу поверх шаблона LittleTask(WinAPI, 2.5kb exe)
T>Моё мыло, если что tiberius@fasthtm.com
Народ а вы не интересуетесь новыми технологиями? например в новой версии Windows Vista есть такая штука называется sidebar для него можно делать gadget. Так вот, это то, что вам надо.
Re: Новое направление программирования - Просто, красиво, уд
Пока не перешёл на дотнет, у меня была мысль сделать "продвинутый" базовый класс для HTML-диалогов, ибо писать нормальный юзер-интерфейс на MFC — это жаль своего времени, потраченного на всякую фигню.
Прыгай на дотнет, там всё проще, и лэйауты всякие есть, и контрол любой написать как 2 пальца об асфальт и т.д. Например, контрол типа закладок в Outlook 2003 на HTML красиво не сделаешь — динамика не та, а на дотнет 2-3 дня максимум на подобный контрол, да еще вместе с дизайн-тайм поддержкой, и всё получаешь в лучшем виде. Или например, есть такая штука, как редактируемые гриды — не особо разбежишься в HTML. Или, например, всякие pop-up, типа тайм-пиккеров, выпадающих калькуляторов или обычных менюшек?
В принципе, у меня такие мысли возникали именно из-за удобного лэйаута в HTML, и лёгкости украшательства заднего фона как всей формы, так и любого отдельного элемента. В дотнет все эти возможности есть уже готовые, так что HTML отпал сам по себе.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Новое направление программирования - Просто, красиво,
Здравствуйте, tiberius, Вы писали:
T>Кстати как из hta вызывать функции dll? Это было бы одним из простых решений задачи
Никак, раньше можно было, но это было во-первых, очень давно, а во вторых — эту дыру закрыли еще в 98-х виндах. Захости на странице COM-объект, безопасный для скриптинга, и через него всё делай.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Новое направление программирования - Просто, красиво, уд
Нда... прочитал весь тред, впечатление тягостное...
вкратце впечатление такое — tiberius, который не знает практически ничего, похоже никогда не учавствовал в каком либо серъезном проекте, не имеет мало мальски приличного опыта программирования — ничего не хочет слушать от людей гораздо более опытных и серъезный.... а устраивает какой то детский сад с неверными выводами и демонстрацией никому не нужных мнимых плюсов...
далее конкретика почему я сделал такие выводы:
1. tiberius утверждает что знает досконально DHTML и javascript, больше ничего знаеть не хочет, беглого взгляда на приведенные им исходники достаточно чтобы понять что уровень javascript и вообще концепций программирования — на уровне: прочитал книгу "Как изучить яваскрипт за 21 день" + скачивание большого количества кода с сайтов куда его такие же специалисты положили
2. утверждение что ЕГО архиватор жмет лучше чем rar — это вообще смешно.
3. полная уверенность что IE занимает 50кб, довожу до сведения что IE занимает МНОГИЕ МЕГАБАЙТЫ.
все ему говорят что HTMLLayout занимает 500кб движок — это значит что ОДИН раз надо скачать 500кб dll, после этого можно качать многие тысячи программ по 10-50 кб на этом движке и они будут работать, он этого просто не понимает вследствие полного незнания что такое DLL
и т.д. и т.п
и теперь рассказываю для tiberius — такое решение ДАВНО существуют на всех машинах уже давно есть IIS, или его можно туда поставить, если тебе нужен такой красивый интерфейс и эти мнимые плюсы реализовывай программы как веб-приложения, при этом ты получишь многие плюсы в придачу —
1. можешь использовать ЛЮБЫЕ back-end (ASP.NET, Perl, PHP, CGI и т.д )
2. можешь ставить программы локально и это будет полный аналог твоего предложения, НО теперь проникайся куда ушел твой самый главный плюс, а именно маленький размер программ — ТЫ МОЖЕШЬ ВООБЩЕ НИЧЕГО НЕ УСТАНАВЛИВАТЬ а ходить на свои программы прямо в нете, твои документы и приложения будут хранится на хостинге и ты с любой машины, с наладоника, со смартфона, с простого сотового наконец. в любой точке мира можешь с ними работать, они будут работать на любой системе хоть unix, хоть symbian, если правильно сделаны.
+ еще много чего
короче не надо придумывать корявых велосипедов, возьми хороший.