Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 30
×

Qt or not Qt? that is the QuesTion!

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

Всем доброго времени суток!! вот стою на пороге выбора: кутить или не кутить? Хочу спросить совета у жителей ДОУ, стоит ли начинать заниматься Qt? перспективно ли это в будущем или очередная коротковременная технология. И есть ли похожие альтернативы для разработки GUI? Java swing/awt не предлагать — убого они как-то выглядит в плане GUI.

P.S. немного пугает тот факт, что Nokia теперь с Microsoft дружит, не переключит ли Nokia свои разработки с Qt на С#? Кто что слышал/читал/видел просьба поделиться. Спасибо!

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Натолкунулся вот на такую инфу
www.omgubuntu.co.uk/...er-than-chrome

Qt не используется в Opera начиная с 10.5

Привет, привет.

С Qt имеет смысл разобраться, это очень хороший пример прекрасного ООП. Мало у кого есть хороший учитель который может грамотно пояснить ООП.

Многие резюме содержат фразы ООП, ООА,... но на практике все сводится к еще более запутаному коду субективного понимания обектов. Такой код хуже простого последовательного без ООП.

Посмотрев исходники Qt вы увидете как правильно строить наследование, включение и т.п.

Ну и документация Qt, это редкий шедевр.

Один раз использовав Qt, вы будете долго сравнивать другие технологие с Qt в части удобства, стабильности, ну и т.д

Одной фразой — вы просто обязаны знать Qt. :)

Год назад наша команда внедрила Qt для того, чтобы хоть как-то ускорить разработку UI в нашем продукте и превратить его в что-то более красивое.
Почему выбор пал именно на Qt?
1)Как и наш проект — Qt написан на C++ :)
2)UI проекта реализован на MFC, а также самописных его расширениях.
3)Проект огромный, очень старый, писался разными людьми, качество кода довольно низкое, бизнес логика не отделена от UI, поэтому использовать С# врапперы + .NET было нереально. Нужна была библиотека именно на С++.

4)Qt позволяет миксить MFC и WinApi — возможность плавного перехода.

Если хотите использовать Qt бесплатно в комерческих продуктах, то:
1)нельзя изменять исходники Qt. В целом вероятность того, что нужно будет что-то изменять либо фиксить, стремится к нулю(в нашей практике этого не было)

2)нельзя линковаться с Qt статически, только dll, бинари Qt будут лежать рядом с продуктовыми(я так понимаю своего рода реклама). Единственный как по мне минус — размер продукта будет больше, чем при статической линковке.

Но я бы не назвал это недостатками.

В целом за год использования(не очень конечно интенсивного) могу с уверенностью сказать, что
1)выбор себя полностью оправдал
2)по сравнению с MFC экономит кучу времени и делает разработку UI приятной
3)очень богатый функционал с хорошим дизайном(не только по работе с UI)

4)отличная документация

Так что рекомендую!

...очередная коротковременная технология

спасибо, посмеялся :-)

не переключит ли Nokia свои разработки с Qt на С#?

не переключит, а все так же активно использует и будет использовать — можете поверить мне на слово :-)

конечно же, под Nokia Windows Phone надо будет писать на C#

Ох, только сейчас заметил что рядом живем/работаем, можно сказать земляки (я про Баден-Вюртенберг)) Ну раз инженер нокии говорит что Кутэ быть, значит буду внедряться. спасибо, Алексей

Ну раз инженер нокии говорит
Это он так говорит пока его не сократили
С какой радости, тогда, меня вообще брали бы на работу почти два месяца назад?

Как и кучу других людей, которые здесь находятся и были наняты только в этом году...

Не знаю, корпорации ведут себя страно, но то что нокия терпит убытки, теряет рынок и планирует массовые увольнения — широко известно.

Наверное, я работаю внутри компании и мои суждения основываются не только на общедоступной информации/новостях/слухах, а и на внутренней информации из рассылок и объявлений, в т.ч. Company Confidential. Так вот...

терпит убытки

Не согласен. Близко, но не терпит. У нас есть внутренний индекс, по которому высчитываются бонусы и он напрямую зависит от прибыльности компании. Так вот, в первом полугодии он был в том диапазоне, когда компания еще приносит прибыль.

теряет рынок

Да, теряет. Скорее всего из-за того, что объявили о «смерти» Симбиан, а Windows Phone еще не представили. Конечно же, после этого Симбиан начало покупать еще меньше людей. Посмотрим, что будет после выпуска первого Nokia Windows Phone.

планирует массовые увольнения

Открою вам секрет — еще с начала года проводит. Отстали вы от новостей...

Есть еще причины, по которым я могу с уверенностью сказать, что Нокии и Qt еще долго жить. В т.ч. и на мобильных устройствах. Но я не могу их озвучить из-за их классификации и моего NDA. В начале следующего года, скорее всего, сами узнаете из пресс-релизов и новостей.

С какой радости, тогда, меня вообще брали бы на работу почти два месяца назад?

Я не на что не намекаю, но одна довольно большая контора резко (в 1 день) закрыла 4 (кажетсо) отдела разработки по всему миру и отдала усе на аутсорс в Индию, а через 0,5 года все попытались вернуть назад, в Украине у них это не получилось.

Кстати, об альянсе МС и Нокиа тоже никто не мог подумать.

Да, в масштабах Германии мы совсем рядом.
Собирались с женой как-то съездить в Штутгарт — можем тогда найтись пивка попить :-)

PS: На Qt Dev Days в Мюнхене не собираешься, случайно?

я бы с радостью в Мюнхен съездил, люблю такие конференции, да и город красивый, но гдет в тех числах у меня госы в универе на Украине, так что вряд ли((

P.S. дай знать если надумаешь в Штутгарт ехать

Вопрос стратегический № 1 — вы посто хотите изучать или что-то производить?

Если изучать — и есть время и желание — дерзайте. Это преспективное направление. Многиие производители его сейчас используют и даже конвертирую уже готовые продукты на Qt. К примеру Autodesk вожила колосальные усилия и деньги чтобы преписать интерфейс Maya 2011 на Qt.

--------

Вопрос сратегический № 2 — что вы хотите написать (производить) с помощю Qt? — сервис или распространяемый продукт, под какой лицензией ыв будeтe его распространять...

Qt выпусается под двойной лицензией — GPL и Commercial.

Использование GPL компонетов заставляет вас выпускать ваш продукт под GPL ( GPL это как вирус/зараза). В Qt есть огворка (сейчас не помню — вам нужно смотреть их доки), что если вы в продукте используете только некоторые фичес Qt (тапример отработка событий планшета), то вы можете распространять его под любой лицензией на ваше усмотрение. Но если ваш продукт в основном написан на Qt — тут 2 выбора либо делать его GPL либо покупать лицензию.

Их лицензии ( если не ошибаюсь продаются per developer/per platform ) и не дешевые: stackoverflow.com/...ercial-licenses

Еслы вы к примеру пишите «сервис», то есть не собираетесь какаим либо образом распространять производный продукт — можете испльзовать GPL. Но кто знает, что вы захотите в будущем. Может потом можно купить лицензию ... ( не разбирался в этом )

---- не переключит ли Nokia свои разработки с Qt на С# ---

Не перключит.

Они потерют милионные контракты на этом и сильно кинут своих клиентов. Qt приносит огромные деньги уже сейчас.

Qt — это крос-платформенное решение (по сути это враперы вокруг платформенно-зависимого кода С++/С/Objective C) и именно в этом его ценность для разработчиков ПО, а С# - это только виндовс.

GPL или LPGL так или иначе принуждают продукт быть open source — вот о чем я.

+ все в конечном итоге сводится к деньгам :) в близкой или далекой преспективе.

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

Тут вопрос оч.интересный.

Как трактовать лицензию, если вы, например, унаследовали класс QMyWidget от QWidget?

Это будет «производное» или «слинкованное»?

если трактовать как «слинкованное» — то вроде как бы ОК, а если как «производное» — то обязывает к LGPL.

www.wikivs.com/...iki/GPL_vs_LGPL

GPL and LGPL protects software and all derivative software from having their source code hidden from the public

После приобретения Android 3.x планшета, задумался как-то — на чем бы ваять true multiplatform прикладухи — так Qt rules и здесь (см. проект necessitas). Работают все примеры, за исключением OpenGL — эти пришлось руками править.

Вы кстати не в курсе, QtDeclarative портировали под Android?

Да, QML приложения работают также как и на десктопе.

Эта платформа меня не интересует посему вопросом даже не задавался.

подозреваю, что правильным путем начинаю идти, товарищи!! Ну а как на счет Swing/AWT vs. Qt? я свое мнение уже почти сложил об этом, но мои некоторые коллеги не перестают меня убеждать в обратном, мол на Java оно круче (я про GUI пока что). Хочу услышать мнения экспертов, работающих непосредственно с этими библиотеками. спасибо заранее))

На Qt Jambi тролли ж забили ещё где-то на версии 4.5.0.

есть биндинг Qt для Java: Qt Jambi

на вопрос, что круче Java Swing или Java Qt уже ответили здесь: Java Swing or Java Qt?

Ну а если Java Swing vs. C++ Qt, то определённо Qt.

я свое мнение уже почти сложил об этом, но мои некоторые коллеги не перестают меня убеждать в обратном

Выбросите ваших «колег». АВТ — условно мертв, Свинг — немного в меньшей степени; Суть в том что разработка ГУИ на Джава не развивалась последние лет 5 (да-да есть еще СВТ, но это отдельная история), сейчас все немного меняется, но каких-то прорывов не видно. Так же надо понимать что разработка ГУИ на джава принципиально отличается от разработки на джава и от разработки ГУИ (типа как про морских свинок).

Java swing/awt не предлагать — убого они как-то выглядит в плане GUI.

Возвращаясь к свингу, вы просто «не умеете его готовить» (как и я), но то что я видел сделано вполне кошерно, но это надо уметь делать. Сам свинг довольно мощная штука, но надо уметь готовить и при этом очень хорошо.

Мне кажется здесь выбор не столь очевиден как многие здесь считают. Например есть фактор количесва рабочих мест: www.indeed.com/...s?q=swing,qt&l=

Думаю это из-за того что бизнес апликухи все таки чаще пишут на свинге чем на кт, но еще чаще думаю на .нет.

Мне кажется здесь выбор не столь очевиден как многие здесь считают. Например есть фактор количесва рабочих мест: www.indeed.com/...s?q=swing,qt&l=
Справедливости ради, свинг часто пишут даже там где он реально не нада, типа как шаблон (по крайней мере раньше так было)
Кстати, релатив www.indeed.com/...t&l=&relative=1 дает немного другую информацию.
Релатив — это скорость роста, а так позиций со свингом внутри пока что в раз 7 больше.

Хотя согласен что наверное какая то часть позиций содержит свинг как базворд(как и ц++ наверное).

а так позиций со свингом внутри пока что в раз 7 больше.

Ну не в сем, а скорее 3.5-4 раза:

www.developers.org.ua/...ic/4424/#132815

Ну нифигасебе, в теме нет слова «менеждер», да не может быть такого.

Спакуха, судя по тому как написана тема — человек новичок (я могу ошибаться, без обид), так шо хоть какие-то каноны ДОУ соблюдены (возможно). :)

P.S. Если я ошибся по поводу уровня ТСа, прошу прощения.

нет, не ошибся, я действительно в этом новичок пока, никаких обид нет))

Qt определённо рулит. И как правильно заметили, это не только GUI, но и работа с сетью, базами данных, мультимедиа и т.д. Благодаря продуманной архитектуре и иерархии классов программировать с Qt на С++ сплошное удовольствие. Как бонус получаем ещё и кроссплатформенность.

Конкретно для GUI есть такая отличная штука как Qt Quick (декларативное описание интерфейса, написание логики на JavaScript, расширение на С++ при необходимости).

Сейчас, кстати осваиваю. :) Нравится, что можно легко отделить логику интерфейса (qml) от той же бизнес-логики (c++).

Я не работал с Qt но рекомендовал бы GTK+. Он написан на Си и от этого на порядок проще. Есть специальная программа для редактирования GUI — Glade. Очень хорошая.
Среди линуксодиов есть скрытый холивар Си или С++. Ну вообщем все предпочитают Си. Точнее все стараются избегать С++.

KDE написан на Qt и когда ещё были проблемы с его лицензированием то создали специально GTK+ и на нём сделали GNOME. Вообщем есть смысл посмотреть.

Угу.. К тому же, Qt4 приложения даже с gnome среде смотрятся хорошо (если не завязаны на kde) =)

Да и с тех пор, как под маком перевели GUI на Cocoa, там тоже смотрится хорошо.

Я не работал с Qt но рекомендовал бы GTK+

если не работали, то к чему эта рекомендация? От тех, кто сошёл с GTK+ я слышал как раз обратное.

Есть специальная программа для редактирования GUI — Glade

Ну и что? У Qt есть Qt Designer.

то создали специально GTK+

Нет, GTK+ был создан ещё при GIMP’е.

если не работали, то к чему эта рекомендация
Ну к чему такая рекомендация я вообщем постарался в вкратце объяснить всем комментарием. Плюс всё таки пару хелоу ворлдов я на кьюти делал, базовое представление имею. Qt очень и очень классный фреймворк.
Единственный недостаток, который же является и преимуществом, это то, что он написан на C++ ещё и со своими макросами.
Это очень затрудняет биндинг Qt к другим языкам программирования Си, Питон, Java. К тому же с плюсами всё хорошо пока не появляется какая то проблема которая потребует каких то глубоких знаний тонкостей языка. Си в этом плане проще. Первая же ссылка нагугленая по этому холивару warp.povusers.org/...ToTorvalds.html
Ну и что? У Qt есть Qt Designer.
Я знаю.
Нет, GTK+ был создан ещё при GIMP’е.
Я знаю. Я просто хотел очертить что появление GTK+ было позже Qt и связано с лицензионными проблемами которые сейчас уже решены.
Вообщем есть смысл посмотреть.

покупать не надо, Qt уже давно LGPL

даже если nokia прекратит им заниматься, то ничего страшного не произойдет — KDE Free Qt Foundation будет выпускать его по BSD лицензии (www.kde.org/...foundation.php

IMHO Qt рулит, из коробки поддреживаются:

X11, Mac OS, Windows, winCE, Maemo и Symbian + есть порты для Android, iOS, Kindle и кучи других платформ

продукт продолжает развиваться, недвано вышел QtQuick (qt.nokia.com/qtquick/) новые релизы и апдейты появляются регулярно, QtCreator опять же, с каждым релизом становится все лучше

по поводу конкурентов смотрите:
GTK+
wxWidgets

Ultimate++

Qt уже 15 лет, он старше чем половину популярных сейчас языков программирования, вы точно уверены что стоит говорить «кратковременная технология»?

я в том плане, что а не загнется ли Qt в ближайшее время из-за альянса Нокии и Майкроса? вот в этом и заключается его кратковременность на данный момент. Начну учить, а тут бац! здрасте, нам это уже не нужно. Все историю с Делфи помнят?

Delphi не загнулся,
недавно вышла новая версия Embarcadero Delphi XE
у delphi есть своя ниша и колличество пользователей увеличивается.

Кто ж его покупает-то с такими грабительскими ценами? Только Starter Edition стоит 200 евро, в то время как у Microsoft экспресс-версии Visual Studio вообще бесплатные.

Підписатись на коментарі