Знакомство с Ultimate++
Содержание:
1.Обзор U++ (Вы читаете данный раздел);
2. Установка;
3. TheIDE;
4. Первая программа.
При создании GUI-приложений для Linux выбор тулкита играет первоочередную роль. Именно от него будет за-висеть не только трудоемкость разработки, но переносимость программы, ее внешний вид и возможность дальнейшего развития. Для определенности предположим, что программа пишется на С++, т.к. рассмотрение привязок для различных языков - это отдельная обширная тема. По сути выбор сводится к тройке наиболее известных и популярных тулкитов: Qt, GTK+ и wxWidgets. Для небольших «легких» программ иногда используется FLTK. К сожалению, каждый из этих «трех китов» имеет свои специфические недостатки, поэтому альтернативные нестандартные GUI-тулкиты продолжают вызывать интерес. Нестандартные решения могут заинтересовать разработчиков либо выдающимся внешним видом виджетов, либо оригинальными приемами программирования, которые экономят время на разработку и поддержку программ. Чтобы быть конкурентоспособными, они должны быть кроссплатформенными, поддерживать Unicode и иметь интегрированную RAD-среду разработки или хотя бы визуальный редактор форм.
В этой статье рассмотрен тулкит Ultimate++. Внешний вид его виджетов ничем не примечателен (используются «родные» виджеты для каждой платформы), однако используемые приемы программирования кардинально отличаются от всех других тулкитов. Все компоненты U++ очень специфичны и в буквальном смысле не похожи ни на что другое. Это относится и к синтаксису, в котором иногда трудно узнать С++ как таковой (хотя это абсолютно стандартный С++, без каких-либо дополнений, как в Qt), и к откровенно странной IDE. Не ждите от U++ интуитивной понятности - тривиальные вещи нужно, зачастую, долго «раскапывать» в документации и на форумах. «Барьер вхождения» в U++ высок, но вложенные усилия затем быстро окупаются.
Ultimate++ (http://www.ultimatepp.org), известный как U++ и UPP, позиционируется не столько как GUI-тулкит, сколько как целостная инфраструктура (framework) для быстрой разработки кроссплатформен-ных приложений на С++. U++ распространяется по свободной лицензии BSD и является бесплатным как для открытых, так и для коммерческих разработок. Код GUI-приложений, написанный с использованием U++ чрезвычайно лаконичен, и напоминает код «сверхвысокого уровня», характерный для скриптовых языков. Это достигается повсеместным использованием современных возможностей С++ во внутренней структуре U++. На официальном сайте имеется впечатляющее сравнение идентичных программ написанных на U++, Qt, wxWidgets и Java (http://www.ultimatepp.org/www$uppweb$comparison$en-us.html). Во всех случаях код на U++ намного короче и понятнее, хотя и выглядит необычно.
Инфраструктура U++ спроектирована так, что в идеале программисту не нужны ни сторонние библиотеки, ни даже STL и Boost - все, начиная от контейнеров и заканчивая работой с XML и SQL, делается силами самой U++. Этим «глобальным изобретением велосипеда» U++ напоминает Qt. U++ включает несколько компонентов:
• Набор стандартных библиотек:
Все эти компоненты рассчитаны на совместное использование и по отдельности работать не будут. Кроме того, организация кода в виде «пакетов» в U++ настолько специфична, что разработка с помощью U++ автоматически подразумевает использование исключительно «родной» IDE. Учитывая специфичность TheIDE, это можно считать достаточно серьезным недостатком.
U++ работает в Linux и Windows и в настоящее время портируется для MacOS X. Программы, написанные на одной платформе, без изменений компилируются на другой.
В свое время на U++ было написано множество хоумбрю-программ для PS Portable! Ну, а ваша старушка PSP приказала долго жить, то настоятельно советую посетить страничку http://teh-profi.net/remont-pristavok.htm (http://teh-profi.net/remont-pristavok.htm)! Здесь Вы найдете опытных мастеров, которые вдохнут в вашу приставку новую жизнь!
1.
2. Установка;
3. TheIDE;
4. Первая программа.
При создании GUI-приложений для Linux выбор тулкита играет первоочередную роль. Именно от него будет за-висеть не только трудоемкость разработки, но переносимость программы, ее внешний вид и возможность дальнейшего развития. Для определенности предположим, что программа пишется на С++, т.к. рассмотрение привязок для различных языков - это отдельная обширная тема. По сути выбор сводится к тройке наиболее известных и популярных тулкитов: Qt, GTK+ и wxWidgets. Для небольших «легких» программ иногда используется FLTK. К сожалению, каждый из этих «трех китов» имеет свои специфические недостатки, поэтому альтернативные нестандартные GUI-тулкиты продолжают вызывать интерес. Нестандартные решения могут заинтересовать разработчиков либо выдающимся внешним видом виджетов, либо оригинальными приемами программирования, которые экономят время на разработку и поддержку программ. Чтобы быть конкурентоспособными, они должны быть кроссплатформенными, поддерживать Unicode и иметь интегрированную RAD-среду разработки или хотя бы визуальный редактор форм.
В этой статье рассмотрен тулкит Ultimate++. Внешний вид его виджетов ничем не примечателен (используются «родные» виджеты для каждой платформы), однако используемые приемы программирования кардинально отличаются от всех других тулкитов. Все компоненты U++ очень специфичны и в буквальном смысле не похожи ни на что другое. Это относится и к синтаксису, в котором иногда трудно узнать С++ как таковой (хотя это абсолютно стандартный С++, без каких-либо дополнений, как в Qt), и к откровенно странной IDE. Не ждите от U++ интуитивной понятности - тривиальные вещи нужно, зачастую, долго «раскапывать» в документации и на форумах. «Барьер вхождения» в U++ высок, но вложенные усилия затем быстро окупаются.
Обзор U++
Ultimate++ (http://www.ultimatepp.org), известный как U++ и UPP, позиционируется не столько как GUI-тулкит, сколько как целостная инфраструктура (framework) для быстрой разработки кроссплатформен-ных приложений на С++. U++ распространяется по свободной лицензии BSD и является бесплатным как для открытых, так и для коммерческих разработок. Код GUI-приложений, написанный с использованием U++ чрезвычайно лаконичен, и напоминает код «сверхвысокого уровня», характерный для скриптовых языков. Это достигается повсеместным использованием современных возможностей С++ во внутренней структуре U++. На официальном сайте имеется впечатляющее сравнение идентичных программ написанных на U++, Qt, wxWidgets и Java (http://www.ultimatepp.org/www$uppweb$comparison$en-us.html). Во всех случаях код на U++ намного короче и понятнее, хотя и выглядит необычно.
Инфраструктура U++ спроектирована так, что в идеале программисту не нужны ни сторонние библиотеки, ни даже STL и Boost - все, начиная от контейнеров и заканчивая работой с XML и SQL, делается силами самой U++. Этим «глобальным изобретением велосипеда» U++ напоминает Qt. U++ включает несколько компонентов:
• Набор стандартных библиотек:
- Core - строки, даты и время, библиотека контейнеров NTL (аналог STL с несколько иным поведением и, как утверждается, более быстрая), обратные вызовы, многопоточ-ность, работа с XML и т.д.
- Draw - канва для растровой графики.
- CtrlCore - ядро GUI-приложений, обеспечивающее отображение окон, передачу событий, обработку логических координат и т.п.
- CtrlLib - библиотека виджетов.
- RichText - сложный форматированный текст с импортом/ экспортом в RTF и HTML.
- SQL - функции для работы с SQL-запросами и интерфейсы к СУБД SQLite3, MySQL, PostgreSQL, Microsoft SQL, Oracle.
- Esc - встраиваемый интерпретатор специфического
скриптового языка.
- Web - работа с сетью и интернетом.
• Система управления компиляцией BLITZ-build.
• Полноценная интегрированная среда разработки TheIDE с визуальным редактором компоновки виджетов.
• Система документирования Topic++.
• Система анализа, автодополнения и оптимизации кода Assist++.
- Draw - канва для растровой графики.
- CtrlCore - ядро GUI-приложений, обеспечивающее отображение окон, передачу событий, обработку логических координат и т.п.
- CtrlLib - библиотека виджетов.
- RichText - сложный форматированный текст с импортом/ экспортом в RTF и HTML.
- SQL - функции для работы с SQL-запросами и интерфейсы к СУБД SQLite3, MySQL, PostgreSQL, Microsoft SQL, Oracle.
- Esc - встраиваемый интерпретатор специфического
скриптового языка.
- Web - работа с сетью и интернетом.
• Система управления компиляцией BLITZ-build.
• Полноценная интегрированная среда разработки TheIDE с визуальным редактором компоновки виджетов.
• Система документирования Topic++.
• Система анализа, автодополнения и оптимизации кода Assist++.
Все эти компоненты рассчитаны на совместное использование и по отдельности работать не будут. Кроме того, организация кода в виде «пакетов» в U++ настолько специфична, что разработка с помощью U++ автоматически подразумевает использование исключительно «родной» IDE. Учитывая специфичность TheIDE, это можно считать достаточно серьезным недостатком.
U++ работает в Linux и Windows и в настоящее время портируется для MacOS X. Программы, написанные на одной платформе, без изменений компилируются на другой.
В свое время на U++ было написано множество хоумбрю-программ для PS Portable! Ну, а ваша старушка PSP приказала долго жить, то настоятельно советую посетить страничку http://teh-profi.net/remont-pristavok.htm (http://teh-profi.net/remont-pristavok.htm)! Здесь Вы найдете опытных мастеров, которые вдохнут в вашу приставку новую жизнь!