LINUX.ORG.RU

Qt 4.4

 ,


0

0

На сайте Trolltech стала доступна для загрузки новая версия этого замечательного кросс-платформенного тулкита для разработки приложений.

Из нововведений:

  • Теперь - под GPLv3.
  • Встроенная поддержка мультимедийного движка Phonon и веб-движка WebKit.
  • Поддержка новых платформ: Windows CE и Embedded Linux.
  • Улучшенная система помощи QHelpSystem на замену устаревшему Assistant.
  • Поддержка мультипоточности (Concurrency Framework) без необходимости внедрения дополнительных примитивов в программу.
  • Поддержка виджетов в QGraphicsView. Пример применения: http://tinyurl.com/4l3zu4.
  • Улучшения работы с XML (поддержка стандартов XQuery 1.0 и XPath 2.0).
  • Новые возможности межпрограммного взаимодействия, с фокусировкой на общее использовании памяти (shared memory).
  • Переделана системы управления печатью.
  • Локализация на испанский и традиционный китайский.

В KDE 4.1 будет использоваться именно эта версия Qt.

Официальной новости пока нет, есть список изменений для разработчиков: http://trolltech.com/developer/notes/...
Также несколько интересных нововведений рассмотрено в официальном обзоре RC1: http://trolltech.com/products/qt/what...

>>> Загрузка исходников

★★★★★

Проверено: Tima_ ()
Последнее исправление: cetjs2 (всего исправлений: 1)

Ответ на: комментарий от tailgunner

> В случае Си++ и DWARF, эти данные предоставляет не язык, а конкретная реализация компилятора языка, и сами данные определены не стандартом языка, а чем-то другим.

Ты ведь сам понимаешь, что это не повод заявлять о поддержке MOP в C++ ;)

mv ★★★★★
()
Ответ на: комментарий от Farcaller

>> А в каком языке с приличным оптимизирующим компилятором есть вся эта никому не нужная (по большому счету) х*ета?

>Obj-C++ ? :)

Просили же назвать язык, а не очередную ету =)))))))

frame ★★★
()
Ответ на: комментарий от mv

Ну так я и не заявляю. Я только хочу сказать, что нет никаких принципиальных причин, по которым Си++ не поддерживает все эти крутые фишки - просто 1) они не особо нужны целевой аудитории 2) сложны в реализации из-за сложности языка 3) в основном, достижимы и без стандартных метаданных.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Часть горячо любимых плюсатым народом паттернов как раз пытается решить проблему отсутствия MOP, не так ли? И если так думать дальше (фича ABC не нужна в синтаксисе языка, мы её руками напишем), то и на Си можно писать, спроси у geek'а :)

Я хз, почему в стандарте С++ ничего особо нового не появляется, но даже самому автору языка отчего-то очень хочется иметь некоторую динамику в рантайме.

mv ★★★★★
()
Ответ на: комментарий от mv

>...шатало, как пьяную корову...

Я не даже не хочу пытаться представить себе, где Вы такое могли увидеть :)

AP ★★★★★
()
Ответ на: комментарий от mv

>Часть горячо любимых плюсатым народом паттернов как раз пытается решить проблему отсутствия MOP, не так ли?

MOP как обязательная и неотъемлемая часть языка в С++ не нужен

>Я хз, почему в стандарте С++ ничего особо нового не появляется, но даже самому автору языка отчего-то очень хочется иметь некоторую динамику в рантайме.

Сторонних языков с "динамикой в рантайме" и так достаточно

frame ★★★
()
Ответ на: комментарий от mv

> Часть горячо любимых плюсатым народом паттернов как раз пытается решить проблему отсутствия MOP, не так ли?

ХЗ. Я слишком мало знаю о MOP. Какие это паттерны?

> если так думать дальше (фича ABC не нужна в синтаксисе языка, мы её руками напишем), то и на Си можно писать

Нет, потому что есть закон перехода количества в качество. ООП в Си сопровождается таким количеством уродливого и непроверяемого кода, что нуегонах; с шаблонами и исключениями ситуация только немногим лучше. Так что Си++ - это следующий уровень по сравнению с Си, жаль только, что он стал таким безнадежно сложным. ИМХО, если взять Си++ образца второго издания Страуса, выкинуть из него виртуальное наследование и добавить сигнатуры, был бы идеальный в своем классе язык. Или реформировать Си, как это пытался сделать Cyclone. Ну да теперь момент, увы, упущен, и системное программирование осталось без современного языка.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>Ну да теперь момент, увы, упущен, и системное программирование осталось без современного языка.

D? хотя я его не смотрел.

wfrr ★★☆
()
Ответ на: комментарий от wfrr

>> Ну да теперь момент, увы, упущен, и системное программирование осталось без современного языка.

> D?

Там сборка мусора. Уж ближайшие несколько лет нормального мусорщика не появиться (да и вообще я в это не верю).

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

> Там сборка мусора. Уж ближайшие несколько лет нормального мусорщика не появиться (да и вообще я в это не верю).

А возможна ли "динамика в рантайме" без сборки мусора?

anonymous
()
Ответ на: комментарий от anonymous

> А возможна ли "динамика в рантайме" без сборки мусора?

Почему нет?

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>Уж ближайшие несколько лет нормального мусорщика не появиться (да и вообще я в это не верю).

Как говорится "чисто не там, где убирают, а там, где не мусорят", и надежды на то, что новый язык программирования со всеми возможными свистелками-перделками исправит генетические дефекты жаждущих его появления - ничтожны, как и они сами. Только и остается им, что писать дешевые статейки в псевдонаучных журнальчиках о своих феерических галлюцинациях и убеждать, что эта никому не нужная фигня на самом деле очень необходима, унылая пародия на быдломаркетоидов.

anonymous
()
Ответ на: комментарий от wfrr

>>Ну да теперь момент, увы, упущен, и системное программирование осталось без современного языка.

>D? хотя я его не смотрел.

Если они не откажутся от навязчивого желания сделать шаблоны и не сконцентрируются на рантаймовых фичах девелопмент у них будет буксовать либо получится очередное угробище вроде С++.

Absurd ★★★
()
Ответ на: комментарий от Absurd

>> D? хотя я его не смотрел.

> Если они не откажутся от навязчивого желания сделать шаблоны

Они уже сделали шаблоныю

> и не сконцентрируются на рантаймовых фичах девелопмент у них будет буксовать

/me кастует naryl

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

> ХЗ. Я слишком мало знаю о MOP. Какие это паттерны?

Ну взять тот же iterator или visitor (я про паттерны GoF)

> Ну да теперь момент, увы, упущен, и системное программирование осталось без современного языка.

/me косится на дотнет, его флагманский сишарп и висту, которую на них родили.

mv ★★★★★
()
Ответ на: комментарий от tailgunner

>>> D? хотя я его не смотрел.

>> Если они не откажутся от навязчивого желания сделать шаблоны

>Они уже сделали шаблоныю

Тогда в топку - уже ясно что ничего у них не получится. Будут топтаться на месте, запутуются и тихо сдохнут.

>> и не сконцентрируются на рантаймовых фичах девелопмент у них будет буксовать

>/me кастует naryl

Это кто - еще один адепт Неиллюзорного Раннего Биндинга?

Absurd ★★★
()
Ответ на: комментарий от anonymous

> А возможна ли "динамика в рантайме" без сборки мусора?

Сборка мусора и наличие информации о внутренней структуре данных - это две, как умно выразился раньше wfrr, ортогональные вещи.

mv ★★★★★
()
Ответ на: комментарий от mv

Виста на С, даже полоумный микросовт не говорит писать системное по на шарпе, лишь прикладное, и промежуточное.

wfrr ★★☆
()
Ответ на: комментарий от wfrr

>Виста на С, даже полоумный микросовт не говорит писать системное по на шарпе, лишь прикладное, и промежуточное.

Singularity давно в опенсорсе. Обработчики прерываний на C+ASM, все остальное на шарпе. Жаль Visual Studio нужен чтобы это чудо собрать. А то бы поковырял.

Absurd ★★★
()
Ответ на: комментарий от Absurd

Сингулярити не виста, а то еще можно вспомнить Jnode и сказать что жаба язык системного программирования.

wfrr ★★☆
()
Ответ на: комментарий от Absurd

> Это кто - еще один адепт Неиллюзорного Раннего Биндинга?

Это человек, который, в отличие от тебя (и меня тоже), разбирается в D.

> Singularity давно в опенсорсе

Не потому ли, что эксперимент провалился.

tailgunner ★★★★★
()
Ответ на: комментарий от wfrr

>И поэтому (а может не только) они до сих пор не выкинули такую гадость как MFC.

WTL лучше. Один из немногих вменяемых фреймворков на С++. Из зависимостей только kernel + user + gdi + commdlg. Размер бинари которая что-то делает - килобайт двести.

Absurd ★★★
()
Ответ на: комментарий от mv

>> ХЗ. Я слишком мало знаю о MOP. Какие это паттерны?

> Ну взять тот же iterator или visitor (я про паттерны GoF)

visitor - да, а вот итераторы придумали люди не чета нам еще до нашего рождения.

>> Ну да теперь момент, увы, упущен, и системное программирование осталось без современного языка.

>/me косится на дотнет, его флагманский сишарп и висту

Это всё не то.

tailgunner ★★★★★
()
Ответ на: комментарий от Absurd

>WTL лучше. Один из немногих вменяемых фреймворков на С++. Из зависимостей только kernel + user + gdi + commdlg. Размер бинари которая что-то делает - килобайт двести.

И где теперь WTL? Что на нём написано? Сравним ли функционал с Qt/Gtk?

JackYF ★★★★
()
Ответ на: комментарий от Absurd

>WTL лучше.

Заметьте, я не говорил, что MFC хорош, скорее наоборот. А wtl сравнивать некорректно ибо wtl только окна рисует или что-то поменялось?

wfrr ★★☆
()
Ответ на: комментарий от JackYF

>Оп-па. И что чудо умеет на сегодняшний день? Консольку умеет? Базовую файловую систему?

Ну да - вроде оба пункта. Только собирается Вижуал Студией и ставится на микрософтовский виртуализатор (как его там?), зараза.

Absurd ★★★
()
Ответ на: комментарий от tailgunner

> visitor - да, а вот итераторы придумали люди не чета нам еще до нашего рождения.

iterator, который описан в книжке GoF, как раз служит для того, чтобы перебирать кишки объектам. Не путать с итератором, которым по контейнерам шарятся :)

mv ★★★★★
()
Ответ на: комментарий от JackYF

>>WTL лучше. Один из немногих вменяемых фреймворков на С++. Из зависимостей только kernel + user + gdi + commdlg. Размер бинари которая что-то делает - килобайт двести.

>И где теперь WTL? Что на нём написано?

Был слух что MS собственно на нем и пишет. Я по ряду косвенных признаков которые отличают виндовые приложения от MS и как релизится WTL готов поверить что это так. Но это не серебрянная пуля, писать там надо много и аккуратно.

>Сравним ли функционал с Qt/Gtk?

Gtk - это Си библиотека. Насчет Qt ... дело в том что ATL/WTL представляет из себя тонкие врапперы к сервисам Винды. Qt - это платформа скорее.

Absurd ★★★
()
Ответ на: комментарий от mv

> iterator, который описан в книжке GoF, как раз служит для того, чтобы перебирать кишки объектам. Не путать с итератором, которым по контейнерам шарятся :)

А по-моему, это тот же итератор - урезанная версия из CLU.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Ну да, перечитал gof, с чем-то перепутал

mv ★★★★★
()
Ответ на: комментарий от Absurd

>на микрософтовский виртуализатор

эээ... то есть этой штуке нужен специальный рантайм? А смысл тогда?

JackYF ★★★★
()
Ответ на: комментарий от tailgunner

> /me кастует naryl

Здесь! :)

> Там сборка мусора.

Опциональная. И Phobos на неё не полагается.

> Уж ближайшие несколько лет нормального мусорщика не появиться (да и вообще я в это не верю).

G1 (Garbage first) для Java7. Его намного более тормозной аналог можно попробовать в Java6. Просто запускай java с ключом -Xincgc.

naryl ★★★★★
()
Ответ на: комментарий от naryl

>> Там сборка мусора.

> Опциональная

Отключаемая для участков кода, как я читал, но не отключаемая совсем.

>> Уж ближайшие несколько лет нормального мусорщика не появиться (да и вообще я в это не верю).

>G1 (Garbage first) для Java7

Его задержки гарантированно ограничены сверху?

tailgunner ★★★★★
()
Ответ на: комментарий от Absurd

Шаблоны в D используются для того же, для чего и Generic'и в Java. Для метапрограммирования обычно применяется CTFE + string mixin.

http://www.digitalmars.com/d/2.0/function.html#interpretation Читаем последние два раздела.

http://www.digitalmars.com/d/2.0/statement.html#MixinStatement

И не забываем про AST макросы в разработке для D2.

naryl ★★★★★
()
Ответ на: комментарий от tailgunner

> Его задержки гарантированно ограничены сверху?

На последнем Sun Tech Days один из его разработчиков это упоминал. Он подвешивает машину на несколько микросекунд только в начале и конце сборки мусора.

Недавно знакомый пытался пропиарить современный низкоуровневый язык. Я так и не посмотрел. Хоумпейдж здесь: http://isaacproject.u-strasbg.fr/

Судя по The Great Language Shootout, быстродействие на уровне C. Только с памятью могут быть проблемы.

naryl ★★★★★
()
Ответ на: комментарий от JackYF

> Когда ждать D2 на попробовать под GNU/Linux? :)

Альфа у меня сейчас работает. :)

Релиз обещают к концу осени. Вообще-то frontend кроссплатформенный. Версии под Win и Lin выходят одновременно.

Про GDC никогда точно сказать нельзя.

naryl ★★★★★
()
Ответ на: комментарий от tailgunner

> Отключаемая для участков кода, как я читал, но не отключаемая совсем.

Это как для участков кода? В модуле gc есть функция disable, которая отключает автоматический вызов gc. Проблема в том, что в phobos'е она ещё не реализована. :) А Tango, где она реализована, иногда полагается на gc...

Если тебе нужно железно отключить сборку мусора, просто линкуешь libgc_stub.a вместо libgcx.a.

naryl ★★★★★
()
Ответ на: комментарий от geek

> ребята переизобрели одновременно смолток и ecmascript

И то и другое намного медленнее, чем lisaac.

naryl ★★★★★
()
Ответ на: комментарий от naryl

>> Его задержки гарантированно ограничены сверху?

> На последнем Sun Tech Days один из его разработчиков это упоминал

Хм, а в блогах про это не говориться. "More predictable GC pauses", и всё :/ Но если у них получилось создать GC с гарантированным временем отклика, это, блин, революция.

> http://isaacproject.u-strasbg.fr/

Какой-то замороченный язык. Непонятно, что в нем качественно нового по сравнению с тем же Эйфелем. И вообще, сейчас в моде функциональный подход :)

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

ЕМНИП он работает параллельно с программой, в которой убирает мусор, а VM сообщает GC обо всех операциях со ссылками, чтобы он чего лишнего не убрал. В сумме будет тормозить немного больше, чем stop-the-world реализация. Но пауз практически не будет.

naryl ★★★★★
()
Ответ на: комментарий от naryl

>> Отключаемая для участков кода, как я читал, но не отключаемая совсем.

> Это как для участков кода? В модуле gc есть функция disable, которая отключает автоматический вызов gc.

Ну вот как раз явным отключением GC.

> Проблема в том, что в phobos'е она ещё не реализована. :) А Tango, где она реализована, иногда полагается на gc...

Насколько я помню, full closures тоже полагаются на GC.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

> Насколько я помню, full closures тоже полагаются на GC.

Да. Поэтому лучше задуматься о том, как сделать сборщик мусора с детерминированными паузами, а не о том, как отключить имеющийся. :)

А пока его нет можно использовать D1 + Phobos + libgc_stub.a

naryl ★★★★★
()
Ответ на: комментарий от JackYF

>>на микрософтовский виртуализатор

>эээ... то есть этой штуке нужен специальный рантайм? А смысл тогда?

нет, я имел в виду ms-овский VirtualBox. забыл как называется.

Absurd ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.