ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
6 июля
158860
Evgeny_CD, Архитектор (13.06.2009 00:39, просмотров: 87128)
Методика создания простых GUI приложений для Win32. Текущее состояние (по мои данным) http://www.fxruby.org/doc/examples.html
http://www.fxruby.org/
Что есть простое приложение? Некая Гуевая шняга класса продвинутой терминалки, конфигуратора и пр, которая: * не имеет жестких ограничений по размеру - дистрибутив 5-10 м допустим * не несет в себе сложной алгоритмической части, которую надо делать в реальном времени * среда разработки ориентирована на скорость разработки * исполняемый модуль не зависит от сторонних сущностей, кроме Win32 (в идеале). Т.е. оно должно идти на любой Win2k/XP/Vista/Windows 7 машине без вопросов. * среда и все необходимое бесплатно или стоит мало денег (до $500) exe 5..10м - это мелось по нынешним временам, менее и не надо. Понятно, что классический путь C/C++ - это для мазохистов в данном случае. Нужен некий высокоуровневый язык, как основа такого приложения, с необходимыми расширениями. В силу ограничений на зависимость, нужна конструкция из исходника на этом самом языке (или байт-кода) и среды исполнения в одном флаконе. Java идет сразу лесом, ибо это тормозно и ресурсоемко, и дистрибутив JVM велик, и качать его долго и нужно. C# идет туда же. Монструозно, зависимостей выше крыши, а качать 60М фремворка - это юзера могут и не оценить. В качестве примера хорошего варианта можно рассмотреть FXRuby -> Краткость и лаконичность исходников лично мне очень понравились :) --> Есть книга по теме http://upload.caxa …-mean-guis-with-ru.pdf Но Ruby - это как-то не совсем main stream, коим все же стоит признать Python. Так что задача доформулируется - подобрать комплект тулзов с ориентакий на Python. Вот они: * PyQt - библиотка QT для Python http://www.riverba …om/software/pyqt/intro http://upload.caxa …with-python-and-qt.pdf * SIP для прикручивания С/С++ кода к питону http://www.riverba …com/software/sip/intro * Pyrex для похожих задач http://www.cosc.ca …eg.ewing/python/Pyrex/ * монструозный SWIG для того же http://www.swig.org * PyInstaller для скучковывания всего в одну кучу http://www.pyinstaller.org В качестве альтернативы выступает wxPython http://www.wxpython.org http://upload.caxa …781932394627.19278.pdf Что меня привлекло в Qt, хоть он и не совсем бесплатен (я что-то пока запутался в его лицензиях, но даже коммерческая лицензия стоит разумных денег - The cost of a commercial PyQt license for a single developer is £350 (GBP)) - это более более красивые экранные формы :), хорошая переносимость между ОСями и хорошая среда Eric http://caxapa.ru/152869.html, в котрую сразу интегрирован конструктор форм и пр. http://www.qtsoftw …e.com/products/pricing - цены на Qt не шибко радуют http://www.qtsoftw …com/products/licensing - есть вариант под LGPL, требуется открывать только код самой прохаченной Qt, если хачил ее, код самого целевого приложения можно и не открывать. Что касается ресурсоемкости, то по моим скромным наблюдениям на современных машинах при работе ГУЯ и простых задачах типа сокеты, COM порты и файлы wxPython не тормозит (с PyQt пока не доводилось работать), а уж если что серьезное подсчитать надо - пишем его на С/С++ и прикручиваем к питону. Очень интересная штука Stackless Python http://caxapa.ru/158854.html, но я не знаю, как она совместима с приведенными выше тулзами. Для удобства привел подборку ссылок и буков, какие удалось нарыть. Еще альтернативные варианты - но я не знаю, как сейчас у GTK+ со стабильностью и скоростью под Windows. * py2exe http://www.py2exe.org * PyGTK http://www.pygtk.org * PyGTK, Py2exe, and Inno setup for single-file Windows installers http://unpythonic. …-setup-for-single.html Больше всего в таком подходе мне нравится то, что изначально контролируется зависимость от операционки. Она вся сосредоточена в среде исполнения кода, и создатели этой среды, как правило, обеспечивают переносимость. Мне кажется, что это не только путь к созданию простых приложений. Вообще говоря, таким путем можно вполне создавать и тяжелые приложения типа CAD. Сам Python вносит не такие уж и большие тормоза, при колоссальной экономии времени на разработку. Если все действительно тяжелые счетные и алгоритмически задачи написать на С/С++, а питоном все лишь дергать за ниточки API, то все будет работать достаточно быстро. Интересно мнение народа по теме.