Блог им. semiletovВ поиске

Просто мысли вслух. Новости на qtcentre.org меня раздражают всё больше — разработчики Qt заняты рекламой Qt Quick, этой же технологии подчинено и развитие Qt. Ну и зачем? Что на этом Qt Quick серьезное можно написать? Технология для виджетов, не более. Основной свободный C++-тулкит превращается и превратится в несущую платформу для виджетов. Причем непонятно для какой аппаратно-программной платформы.
Где он будет нужен через пару лет, Qt этот? На Симбиане? Радужное будущее. На Моблине? А у него какое будущее? Под Линуксом? Qt 5 вызовет желание форкнуть Qt 4, и на этом дело заглохнет. Будет отток C++-программистов от разработки программ под *nix вообще. С геморроем перепишут KDE под Qt 5, и будет как и было сообщество KDE-программистов, а сообщество «чистых» Qt-программистов возможно усопнет. Не в физическом смысле, конечно.
И вот я заранее думаю, на какой тулкит сам перейду. Исходя из текущих своих знаний о Qt 5, я чувствую, что не буду под него писать. Сегодня решил попробовать FoxToolkit — написал простенькую программку, и Scons-конфиг под нее — я всегда сразу проверяю, насколько легко программу с таким-то тулкитом/набором библиотек собирать при помощи некой системы сборки. Сейчас мне приятна Scons, поэтому под нее и проверяю.
К программированию под GTK возвращаться не хочу. WxWidgets, FLTK — меня тоже не вдохновляют. Так что сейчас мне стал интересен Foxtoolkit.

Комментарии (15)

  • avatar
  • NOX
  • 28 августа 2011, 14:19
  • #
  • 0
Основной фишкой 5ки будет lighthouse (хотя и сейчас вполне себе работоспособен) и ВебКит2 с яваскрипт обвязкой. Так же qt5 roadmap пункты «Window'system'integration» и
«Graphics'stac»
Поправте меня, если ошибаюсь.
Поясните, как добавление QML может убить обычные QWidget.
Речь идет не просто о добавлении QML, а о смене приоритетов:

In Qt 5 the entry point for applications can be QML instead of C++. We expect that all UI will be written in QML. JavaScript will become a first class citizen and we expect that a lot of application logic will be written in JS instead of C++. The expectation is that many application developers will actually start out with QML and JavaScript and only implement functionality in C++ when required. For that use case, the full power of the C++ APIs offered by Qt can be used to implement time critical and complex application functionality.
«expect… will become… expect… he expectation», впрочем год назад в блоге тролей в комментариях звучал подобный вопрос и разработчики подтвердили, QML (как фишка для разработки Viewer) будет лишь возможностью, а не вещью, исключающей разработку с QWidget (С++ API). На странице 5 роадмапа есть схема, которая поясняет ход мыслей разработчиков. В свете последних хардварных тенденций (встраивание графических ускорителей в CPU), я очень рад такому подходу.
Отказа от С++ API (в Qt5) не стоит боятся по 2 причинам:
1. Совместимость (не забываем, что Qt не только опенсорс). От этом неоднократно заявляли сами троли, ту же мысль повторяют и в роадмапе. Корпоративным заказчикам требуется совместимость со своими закрытыми наработками. И тут подбираемся к пункту 2
2. В случае чего, они (смотрим список заказчиков на сайте тролей). Вполне могут профинансировать разработку. Тут вся мощь опенсорса.

Вообще в ИТ на срок более чем на 5 лет планировать сложно, но С++ API в течении 5ти лет, исходя из вышеперечисленных пунктов, будет точно.
Охотно выслушаю критику моих соображений.

Другой вопрос — надо ли QML, как ещё один уровень абстракции. Тут спорить не буду но с удовольствием выслушаю мнения.
В Qt не откажутся от C++ API, просто API именно для C++ перестало развиваться, если не считать всех этих «мобильных» API, которые сделаны в Qt, чтобы потом вокруг них сделали QML-обертки. Я вижу в текущем развитии Qt продолжение заданного ранее курса «Symbian + Qt = мощь», при том, что будущее самого Symbian более чем туманно. Никаких новшеств для не-мобильных программистов нет, и, судя по roadmap, не будет — разве что добавятся хлопоты по переносу программ на Qt 5.
Относительно слов «expect» в блогах троллей… В том-то и дело, что они, тролли (или стоящая за ними корпорация) ожидают, что программисты перейдут на предлагаемые им новшества. То есть не спрос порождает предложение, а — совершенно нелогичная модель — предложение пытается породить спрос. Причем тролли, судя по комментариям в блогах, совершенно не прислушиваются к мнению программистов на С++. Напротив, стараются их переубедить — мол, как всё здорово и просто будет с Qt Quick.
Судя по прессрелизам С++ API будет обёрткой над QML стеком.
Symbian мертв. У него нет даже туманного будущего. Факт. Это обсуждалось и на страницах open-life.org
Новшества ГИГАНТСКИЕ.
1. _Lighthouse_ c помощью которого _уже_ можно писать софт для QNX и Андроид
2. WebKit2 — унификация интерфейсов (в том числе над [java]script движками) и полная интеграция его в Qt. Это означает доступ к WebKit без создания QWidget (сейчас это просто невозможно использовать DOM без редеринга). Использование разных (и не только яваскрипт?) скриптовых движков под одним API.
3. И самое главное (в принципе следствие из первого пункта) — опциональное задействование в графического ядра в отрисовке интерфейса.
Будте спокойны, если в результате QML окажется тяжеловесным и неудобным — никто, себе в ущерб, не будет им пользоваться. Если же большинство кодеров перейдет, следует обдумать мысль «А может и не так всё плохо».

Из последнего комментария я понял, что Вам просто не нравится пропаганда Qt Quick. Я же не вижу как бы это могло навредить C++ API в ближайшее время.

От себя добавлю, что в связи со смертью Symbian и непонятным состоянием MeeGo от Qt я ушел. К сожалению. Но лишь по выше перечисленным причинам. На десктопах не вижу поводов для беспокойства.
Мне не нравится пропаганда Qt Quick, потому что направление, которое приняло развитие Qt, опасно для развития свободных C++-программ. Да и вообще для самой Qt. Когда буква А пытается стать буквой Б, ничего хорошего не происходит. Можем вспомнить судьбу Delphi.
А можно поподробнее аналогию, потому что дельфи я как-то проскочил. Спасибо.
  • avatar
  • h31
  • 28 августа 2011, 20:06
  • #
  • 0
Развели тут панику.
Ну и зачем? Что на этом Qt Quick серьезное можно написать? Технология для виджетов, не более.

Верно. Основная цель Quick — возможность быстро и легко наклепать интерфейс, при этом тяжелая логика остается на плюсах. Никто тебя не заставляет писать всё на Quick.
Qt 5 вызовет желание форкнуть Qt 4, и на этом дело заглохнет

Никто не собирается выкидывать традиционный вариант с полным использованием C++.
С геморроем перепишут KDE под Qt 5

Никто не собирается опять устраивать революцию а-ля Qt4. Сломают ABI, в некоторой степени API, но всё начисто перепиливать никто не будет.
И вот я заранее думаю, на какой тулкит сам перейду

Ой, вот этого не надо. В почти каждой новости (нет, не на опенлайфе) вижу подобные комментарии вида «Фе, надо срочно валить с $programname!». Кто-то действительно перепрыгивает на что-то другое, но большинство просто пишут подобные комментарии для красного словца.
И вообще, если есть возможность вот так легко прыгать с тулкита на тулкит, то честное слово, у меня возникают сомнения в уровне сложности и важности этих самых переписываемых программ.
Я в самом деле меняю тулкиты и языки программирования, когда они перестают меня устраивать, и при этом мои программы отличны от hello world ;)
  • avatar
  • fog
  • 29 августа 2011, 13:58
  • #
  • 0
Да вообще, после того, как в Nokia стал хозяйничать Элоп, никакой уверенности в будущем Qt нет. :-/
т.е., если есть мысли и желания поизучать Qt, то лучше этого не делать?
Я сам ещё недавно очень тепло относился к Qt, но если бы мне прямо сейчас нужно было изучать какой-либо ЯП, я стал глядеть в сторону Java. Не обязательно прямо саму Java, а может быть, какой-то динамический язык, который можно было бы помимо трансляции в бинарный код, запускать и в java-машине (т.е. транслировать в её байт-код).

А если бы не срочно, я бы подождал, снимут ли в ближайшее время акционеры Элопа.
Зачем ты смешиваешь библиотеку Qt и язык C++? :) Изучать стоит основное — ассемблер, Си, С++. Это универсальные языки. А Java и другие двигаемые корпорациями — языки специализированные, рассчитанные на создание ПОЛЬЗОВАТЕЛЕЙ конкретного языка программирования. И потом такие программисты-пользователи засыпают форумы вопросами по простейшим вещам, ибо ничего вне языка своей специализации они не знают.
Имеет смысл изучать то, что собираешься применить на практике, или — точнее — что начинаешь применять уже сейчас. Сами по себе знания без применения лишены смысла.
  • avatar
  • Goran
  • 31 августа 2011, 11:54
  • #
  • 0
а нет таких мыслей, что в плане создания UI Qt окончательно уступит той же java например…
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.