Ларс Нол (Lars Knoll), создатель движка KHTML, руководитель проекта Qt Project и директор по развитию фреймворка Qt в компании Digia, официально анонсировал (http://blog.qt.digia.com/blog/2012/12/19/qt-5-0/) релиз фреймворка Qt 5.0 (http://qt-project.org/downloads). Ветка Qt 5 примечательна переходом на новый полностью открытый процесс разработки, подразумевающий участие сообщества в управлении и развитии проектом.
Основные особенности Qt 5:
- Модульная структура (http://www.opennet.me/opennews/art.shtml?num=28425) репозитория. Многие из подсистем Qt разрабатываются разными группами разработчиков, развиваются с повышенной интенсивностью или плотно зависят от сторонних проектов. При грамотном разбиении фреймворка на модули, подобные подпроекты смогут обновляться и поставляться независимо от других частей Qt. Модульная организация репозитория позволит обеспечить сборку отдельных библиотек без загрузки и пересборки всех зависимостей, а также независимое использование каждой библиотеки, т.е. в разработчики получат возможность обособлено использовать только те компоненты Qt, которые им необходимы. Разработчики интенсивно развивающихся подсистем QtWebKit и QtDeclarative получат возможность не ждать когда подтянется другой код и выпускать релизы значительно чаще. Кроме того, модульная структура существенно упростит приём в состав Qt модулей, созданных сторонними проектами, например, проект KDE намерен добиваться интеграции в Qt некоторых своих библиотек общего назначения. Ожидается, что разбиение на модули будет длительным и постепенным процессом, который будет продолжен и после выхода Qt 5.0.- Перевод всех портов на использование уровня абстракции Qt Platform Abstraction layer (QPA), основанного на наработках проекта Lighthouse (http://labs.qt.nokia.com/category/labs/lighthouse/). QPA значительно упрощает перенос Qt на новые оконные системы и устройства, так как он изначально оперирует более абстрактными категориями, фундаментально отличаясь от ранее используемых средств интеграции с оконными системами. Например, уже написаны бэкенды для QNX, Android и iOS. В настоящее время реализация QPA уже входит в состав Qt 4.8, в качестве замены QWS/Qt Embedded, но в Qt 5 данная прослойка будет задействована для всех платформ, что потребовало существенной переработки огромной части кода, связанного с обеспечением поддержки различных платформ. Из полностью поддерживаемых бета-версией платформ отмечены: X11/Linux, Windows, Mac OS X, Embedded Linux и Windows Embedded.
- Изменение архитектуры графического стека и увеличение производительности графических операций. В качестве центрального элемента новой архитектуры для Qt Quick выступает QML Scenegraph, работающий поверх OpenGL. Для работы новой графической архитектуры Qt 5 система должна поддерживать как минимум OpenGL (ES) 2.0. В качестве примера производительности Qt 5 приводится способность вывода контента со скоростью 60 кадров в секунду на одноплатном компьютере Raspberry Pi.
Поддержка QPainter сохранена для выполнения расширенных функций, но ограничена возможностью использования бэкенда программной растеризации вывода (Raster), бэкенда OpenGL и бэкенда для вывода на печать и создания PDF. Поддержка привязанных к платформам бэкендов, таких как X11 и CoreGraphics, прекращена. QWidgets теперь отображается поверх графической сцены, а не наоборот, как реализовано в версии Qt 4, что позволило перейти в Qt 5 на принципиально новую графическую архитектуру, сохранив при этом совместимость с Qt 4.
В QtGui добавлен набор классов QOpenGL*, заменивших собой устаревшие классы QGL*, которые пока оставлены для обеспечения совместимости. Также представлен класс QGuiApplication, которые заметно легче классов QApplication и QWindow при выполнении задач обработки корневой области на экране.
- Выделение всех связанных с QWidget возможностей в отдельную библиотеку. Несмотря на то, что основанные на QWidget классы чрезвычайно важны для существующих приложений, общая тенденция ведёт к тому, что все пользовательские интерфейсы должны быть реализованы на QML и Qt Quick. Отделение связанных с QWidget функций в отдельную библиотеку позволит в долгосрочной перспективе сохранить чистоту архитектуры Qt 5.
- Переработанная реализация Qt Quick 2, которая разделена на отдельные модули, связанные с графической частью и с компонентами поддержки языков QML и JavaScript. Обеспечивающие выполнение JavaScript классы (QJSEngine и QJSValue) теперь базируются на JavaScript-движке V8, развиваемом при участии компании Google и распространяемом под лицензией BSD. В движок QML также внесены значительные оптимизации производительности и связанные с языком улучшения, при сохранении базовой совместимости. Модуль Qt Quick включает в себя реализацию Scenegraph на базе OpenGL и все ранее поддерживаемые в Qt 4.x базовые возможности. Дополнительно добавлена поддержка графических эффектов, создаваемых при помощи шейдеров OpenGL. Для обеспечения обратной совместимости в виде модуля Qt Quick 1 будет поставляться полностью совместимая с Qt 4.x реализация Qt Quick.
- Включение в состав основного пакета дополнительных инструментов, таких как визуальный построитель интерфейса Qt Designer (http://doc.qt.digia.com/qt/designer-manual.html), интерфейс для локализации приложений Qt Linguist (http://doc.qt.digia.com/qt/linguist-manual.html) и интегрированная среда разработки Qt Creator 2.6 (http://www.opennet.me/opennews/art.shtml?num=35272), которые ранее развивались в виде обособленных проектов.Несмотря на большое число существенных улучшений и изменений, Qt 5 сохраняет базовую обратную совместимость с прошлыми выпусками, поддерживает в полной мере средства для создания Qt-программ на языке C++ и содержит почти все компоненты Qt 4 (прекращена поддержка давно устаревших элементов), большинство модулей из бывшего Qt Mobility и некоторые экспериментальные элементы из Qt Labs.
URL: http://blog.qt.digia.com/blog/2012/12/19/qt-5-0/
Новость: http://www.opennet.me/opennews/art.shtml?num=35649
свершилось, поздравляю всех сочувствующих
А почему ничего не сказано про поддержку wayland? Ее так и не реализовали?
Реализовать то реализовали но пока она не вошла в релиз.
Ты видео то посмотри сначала, а потом вопросы спрашивай...
Минорненькое какое-то ощущение. Кто-то этого релиза ждёт? Чем он лучше Qt4? Будет жрать меншье памяти? Быстрее работать?
Да я жду. Чукча писатель, чукча не читатель? Тебе в новости написали что упрощается поддержка Android и iOS, а это значит что паровоз по обеспечению поддержки этих платформ несется на полном ходу. Под андроид уже писать можно. В принципе писать можно было давно. Года два назад. Но теперь появляется блеск официальной поддержки.
А что толку? Всё равно под ведройд интерфейс надо будет переделывать отдельно, под айфон тоже отдельно, везде свои платформозависимые особенности и заморочки. И зачем там Qt? Чтоб тяжелее весило?
> А что толку? Всё равно под ведройд интерфейс надо будет переделывать отдельно, под айфон тоже отдельно, везде свои платформозависимые особенности и заморочки. И зачем там Qt? Чтоб тяжелее весило?Чтобы переделывать интерфейс было проще. Тлько тссс, это - тайна.
>Чтобы переделывать интерфейс было проще. Тлько тссс, это - тайна.JSON с ошмётками на JS очень удобно переделывать, ага.
> JSON с ошмётками на JS очень удобно переделывать, ага.Ага. Всяко удобней хрен знает как структурированной простыни кода.
> А что толку? Всё равно под ведройд интерфейс надо будет переделывать отдельно,
> под айфон тоже отдельно, везде свои платформозависимые особенности и заморочки. И
> зачем там Qt? Чтоб тяжелее весило?Что бы программы было дешевле и проще писать. У нас сейчас одна и та же команда пишет под линукс, вин и андроид приложение. А так нужно было бы сколько команд, две, три?
и вот как это утверждение> Что бы программы было дешевле и проще писать.
связано с этим
>У нас сейчас одна и та же команда пишет под линукс, вин и андроид приложение.
так как обычно второе значит только что люди во всем одинаково плохо разбираются. Ну и наверное и недорогие именно поэтому.
> А так нужно было бы сколько команд, две, три?не, проще всего если один человек все пишет, это ж очевидно
>не, проще всего если один человек все пишет, это ж очевидноПойдем дальше: пусть вообще весь код на Земле станет писать один единственный человек. Чего уж там мелочиться.
и тут заруливают декларативне интерфейсы где переделывать надо тока интерфейс а весь остальной код остаётся темже.
> и тут заруливают декларативне интерфейсы где переделывать надо тока интерфейс а весь остальной код остаётся темже.и вот по таким декларациям сразу и видно кто что переделывал, а кто ничего никогда не переделывал
Вот по таким комментариям сразу и видно кто освоил mv-паттерны, а кто нет.
> Вот по таким комментариям сразу и видно , кто освоил mv-паттерны^W русский язык, а кто нет.fixed
>> Вот по таким комментариям сразу и видно , кто освоил mv-паттерны, а кто нет.и вот по таким комментариям тоже сразу и видно кто что переделывал, а кто ничего никогда не переделывал. Но я то в том что вы уже запросто перенесли пару прог с десктопа на андроид, а не просто нахватались слов красивых для придания солидного вида крайне примитивным концепциям, не сомневаюсь.
>> кто освоил mv-паттерны^W русский язык, а кто нет.
No problem. Let's continue our fruitful discussion in english.
Больше жрать и медленнее работать. Вернее не сам, а стимулировать разработчиков к этому путём сталкивания на JS.
И какой же язык позволяет застраховать программу от жопорукости её авторов?
> И какой же язык позволяет застраховать программу от жопорукости её авторов?ASM? Жопорукие его не осилят.
> ASM? Жопорукие его не осилят.Так вот почему нет интерпретатора JS на асме.
молчи лучше. накаркаешь.
Есть ли интерпретатор асма на JS? :-)
Виртуальную i486-машину на JS написали, пингвинА на ней запустили, компилятор С есть. Можно считать, что компилятор асма есть и на JS.Знаете ли, сделать из конфетки гэ может каждый, а наоборот...
>> ASM? Жопорукие его не осилят.
> Так вот почему нет интерпретатора JS на асме.Можете сделать сами
1. svn checkout http://v8.googlecode.com/svn/trunk/ v8
2. gcc -S
3. ????
4. profit
>> И какой же язык позволяет застраховать программу от жопорукости её авторов?
> ASM? Жопорукие его не осилят.тащемто вполне себе осиливали и сейчас на пенсиях сидят.
> ASM? Жопорукие его не осилят.Осилят. По-факту это один из самых простых языков для "освоения". Вам наверное просто не приходилось сталкиваться с жопоруким асм-кодом. Хуже него бывают только жопорукий C++ и brainfuck.
> И какой же язык позволяет застраховать программу от жопорукости её авторов?На фоне жопорукости авторов JS этой проблемы не видно.
А при чём здесь жопорукость, если новые фичи делаются только в JS-варианте, а плюсовая морда практически объявлена deprecated?
> А при чём здесь жопорукость, если новые фичи делаются только в JS-варианте,
> а плюсовая морда практически объявлена deprecated?потомучто только жопорук найдёт здесь проблему.
> новые фичи делаются только в JS-варианте,
> а плюсовая морда практически объявлена deprecated?Есть мнение, что при такой верличине пуза стоит заниматься бегом.
От себя не убежишь...
Я например очень жду встроенного JSON парсера.
Оно лучше новым механизмом соединения сигналов и слотов, который по сути делает не нужными слоты. Теперь к сигналу можно присоединять любые функции-члены, анонимные функции и вроде даже обычные функции. Кроме того проверка допустимости соединения проходит в компилтайме. Всё это делает код короче (местами раза в полтора), понятней, безопасней, а волосы шелковистее.
Дождетесь пятых кед - будет Вам и не только ощущение помажорней :)
> Дождетесь пятых кед - будет Вам и не только ощущение помажорней :)5е кеды будут в лучшем случае после выхода версии 4.11 и не раньше выхода Qt 5.2
Тихо и незаметно как-то. :)
>в то время как применение C++ позиционируется для реализации критичных ко времени выполнения или излишне сложных частей программы, а также для создания новых модульных бэкендов для Qt QuickНу сколько можно копипастить эту отсебятину? В оригинальной новости про это ни слова. Вообще.
>>в то время как применение C++ позиционируется для реализации критичных ко времени выполнения или излишне сложных частей программы, а также для создания новых модульных бэкендов для Qt Quick
> Ну сколько можно копипастить эту отсебятину? В оригинальной новости про это ни
> слова. Вообще.А вы чуть дальше копните, в оригинальном анонсе вообще почти ничего нет, лишь пара фраз.
“Qt 5 should be the foundation for a new way of developing applications. While offering all of the power of native Qt using C++, the focus should shift to a model, where C++ is mainly used to implement modular backend functionality for Qt Quick.”
>А вы чуть дальше копните, в оригинальном анонсе вообще почти ничего нет, лишь пара фраз.Это устаревшая информация, которая давно опровергнута. Не надо приписывать человеку слова, которые он не говорил.
> Это устаревшая информация, которая давно опровергнута. Не надо приписывать человеку слова,
> которые он не говорил.Я привёл цитату высказывания из заметки под авторством Lars Knoll, лидера по разработке Qt 5. После этого он своего мнения не менял и тем более ничего не опровергал.
>Я привёл цитату высказывания из заметки под авторством Lars Knoll, лидера по разработке Qt 5. После этого он своего мнения не менял и тем более ничего не опровергал.Пруф давай.
>>Я привёл цитату высказывания из заметки под авторством Lars Knoll, лидера по разработке Qt 5. После этого он своего мнения не менял и тем более ничего не опровергал.
> Пруф давай.В гугле фразу набрать не в состоянии ?
http://blog.qt.digia.com/blog/2012/04/03/qt-5-alpha/
“Qt 5 should be the foundation for a new way of developing applications. While offering all of the power of native Qt using C++, the focus should shift to a model, where C++ is mainly used to implement modular backend functionality for Qt Quick.”http://qt-project.org/wiki/Qt_5.0
"Qt 5.0 will be the foundation for a new way of developing applications, where Qt Quick is in the center of Qt."http://qt.digia.com/qt5
"Qt 5 is the latest version of the Qt C++ UI framework and the foundation for a new way of developing applications, where Qt Quick is in the center of Qt"
>>>Я привёл цитату высказывания из заметки под авторством Lars Knoll, лидера по разработке Qt 5. После этого он своего мнения не менял и тем более ничего не опровергал.
>> Пруф давай.
> В гугле фразу набрать не в состоянии ?Английский выучить не в состоянии? Про "смещение акцентов" в скопипащенном ни слова вообще. Только про новый способ разработки. Теперь понятно, почему учёные постоянно насилуют журналистов.
Qt 5 примечателен модульной структурой и смещением акцента в сторону использования для написания приложений средств декларативного описания интерфейса с определением логики взаимодействия с пользователем на языке JavaScriptПо моему вот на это ушло просто гора времени и сил и думается не зря!
когда будут QML desktop widgets в Qt 5.1 - будет точно не зря, а пока старые добрые QWidgets
Спасибо, смещение замечательного C++ фреймворка в сторону javascript ставит на фреймворке крест. Сваливаю на wxWidgets
> Спасибо, смещение замечательного C++ фреймворка в сторону javascript ставит на фреймворке
> крест. Сваливаю на wxWidgetsНе торопись. Виджеты пока не выкидывают. Лет на 5 их хватит точно.
Их всего лишь не развивают. Чего достаточно.
Вы знаете, пришлось тут программу на wxWidgets портировать на Андроид.
Ну, как портировать... большей частью там, где использовались классы wxWidgets - переписывать.
Главное, что вынес для себя из этой истории: не использовать wxString там, где можно использовать std::string, не использовать wxArray и wxStream в принципе, не связываться с wxXmlDocument там, где можно использовать pigixml и т.д. То есть для морды - вполне нормально использовать эту библиотеку, она все равно на каждой платформе своя. А вот внутрь основного движка wx лучше не пускать. Слишком тяжко потом выковыривать, а ничего незаменимого там, по большому счету, нет. Кстати, даже при работе с теми же wxWidgets, но под Linux, выявляются мелочи, лишний раз подтверждающие сказанное выше.Подозреваю, что для Qt это тоже справедливо, но утверждать не берусь.
> Спасибо, смещение замечательного C++ фреймворка в сторону javascript ставит на фреймворке
> крест. Сваливаю на wxWidgetsкрысы побежали, оке.
Посмотрим что вы скажете через 5 лет по этому поводу
> Посмотрим что вы скажете через 5 лет по этому поводуСпециально найдём через пять лет и посмотрим как он говорит.
Всё правильно, похоронили нокию - пусть хоронят и qt, гулять так гулять.
Все таки kde 5 быть.
Почему-то нет сборки с minGW. Не будет или просто еще не сделали?
> Почему-то нет сборки с minGW. Не будет или просто еще не сделали?Торопились выпустить пятёрку до праздников. Раньше новго года ждать не стоит.
У них проблемы со сборкой WebKit c помощью MinGW.
> Поддержка привязанных к платформам бэкендов, таких как X11 и CoreGraphics, прекращенаПрощай X forward
не тупи
Наконец то, а то уже замучался каждую неделю переустанавливать -)
сижу на 4,8,3 -до покупки дигиа, - выше версии пиар, слишком быстро и патч версию сделали и 5 выпустили( в средней патч версия выходит 3-4 месяца 4,8,4 - вышла быстро)
Вот самому интересно, будут ли версии 4.8.* с исправлениями продолжать выпускать и как всё это скажется на Qt Creator.