metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2009-02-13 12:55 am

qt

Наконец, вместо того, чтобы копировать qt с компа на комп и копаться в его исходниках, немного побаловался с написанием программ. Выводы:
1) qt creator (и возможно, сам qt) еще таки дорабатывать и дорабатывать. Глючит-с. Мне кажется, что это не уровень RC, это таки сырая бета.
2) qt не использует стандартных виндовских контролов вообще, судя по тому, что spyxx не видит ничего в проге кроме топ-левел окна.
3) Способ разработки гуя достаточно интересен, некоторые вещи интуитивно понятнее и удобнее дельфей и вижуал-студии.
4) Надо написать хотя бы одну полноценную прогу на этом деле, чтобы таки осознать, стоит дергаться ради галочки "можно писать кроссплатформенный GUI".

[identity profile] zamotivator.livejournal.com 2009-02-13 10:12 am (UTC)(link)
Ну, первую дозу принял, дальше подсядешь =)
З.Ы. это реальный пиздец - я не могу всерьёз ни одну библиотеку GUI рассматривать, после опыта разработки на Qt =) Блевать тянет что с gtk, что с winapi, что с wxwidgets =)

Но у Qt есть недостатки. Но у кого их нет =)

[identity profile] kiryl.livejournal.com 2009-02-13 10:36 am (UTC)(link)
Главный недостаток Qt -- это C++.

[identity profile] metaclass.livejournal.com 2009-02-13 10:47 am (UTC)(link)
Почему это недостаток и какие альтернативы?

[identity profile] max-posedon.livejournal.com 2009-02-13 11:00 am (UTC)(link)
Не путайте тёплое с мягким, там не перечислино ни одного недостака C++, кроме того, что на C++ пишут больше идиотов чем на C, не более.

А трэд конечно эпичный и весёлый, и как раз из его следуют, что C++Qt ОЧЕНЬ хорош, ибо ребята сфокусирывались на архитектуре и на API, а не на синтаксическом сахаре.

[identity profile] kiryl.livejournal.com 2009-02-13 11:11 am (UTC)(link)
Вы когда-нибудь пробовали починить сборку проекта в котором активно используется STL. Нужно быть человекоподобным роботом, что бы разобрать эти простыни диагностики, которые генерирует компилятор.

[identity profile] max-posedon.livejournal.com 2009-02-13 11:14 am (UTC)(link)
Пробовал, вполне успешно, gсс в этом плане весьма объективен.

А во вторых, Qt никакого отношения к STL не имеет фактически, он написан на "без шаблонном" C++, так что, камень в сторону STL, совершенно мимо Qt.

(no subject)

[identity profile] kiryl.livejournal.com - 2009-02-13 11:17 (UTC) - Expand

(no subject)

[identity profile] max-posedon.livejournal.com - 2009-02-13 11:19 (UTC) - Expand

(no subject)

[identity profile] kiryl.livejournal.com - 2009-02-13 11:39 (UTC) - Expand

(no subject)

[identity profile] max-posedon.livejournal.com - 2009-02-13 11:43 (UTC) - Expand

(no subject)

[identity profile] kiryl.livejournal.com - 2009-02-13 12:31 (UTC) - Expand

(no subject)

[identity profile] max-posedon.livejournal.com - 2009-02-13 12:35 (UTC) - Expand

(no subject)

[identity profile] kiryl.livejournal.com - 2009-02-13 12:46 (UTC) - Expand

(no subject)

[identity profile] max-posedon.livejournal.com - 2009-02-13 12:50 (UTC) - Expand

(no subject)

[identity profile] kiryl.livejournal.com - 2009-02-13 12:54 (UTC) - Expand

(no subject)

[identity profile] max-posedon.livejournal.com - 2009-02-13 13:30 (UTC) - Expand

(no subject)

[identity profile] max-posedon.livejournal.com - 2009-02-13 13:32 (UTC) - Expand

(no subject)

[identity profile] kiryl.livejournal.com - 2009-02-13 14:06 (UTC) - Expand

(no subject)

[identity profile] max-posedon.livejournal.com - 2009-02-13 14:08 (UTC) - Expand

(no subject)

[identity profile] kiryl.livejournal.com - 2009-02-13 14:03 (UTC) - Expand

(no subject)

[identity profile] max-posedon.livejournal.com - 2009-02-13 14:09 (UTC) - Expand

[identity profile] metaclass.livejournal.com 2009-02-13 11:03 am (UTC)(link)
А, это известная печаль, про неадекватность объектных моделей. Это обсуждение периодически всплывает, начинается холивар, ни к чему толковому не приходят и все заканчивается при своих:)
Вот еще на эту же тему.

[identity profile] theiced.livejournal.com 2009-02-13 01:50 pm (UTC)(link)
C++ говно, бесспорно. Причём говно уникальное. Автор С++ даже книжку напейсал 'Почему С++ Такое Говно И кому оторвать яйца за это' ('The Design And Evolution Of C++').

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

[identity profile] zamotivator.livejournal.com 2009-02-13 12:30 pm (UTC)(link)
Производительность фреймворка - недостаток?
В любом случае, готов обсуждать устриц лишь с тем, кто их ел.
+ биндинги никто не отменял. А хорошая архитектура ложится в любой язык. Огромное количество биндингов потверждает интепорабельность архитектуры и дизайна кути к любому языку программирования.

[identity profile] kiryl.livejournal.com 2009-02-13 12:35 pm (UTC)(link)
Для производительности придумали C.

[identity profile] max-posedon.livejournal.com 2009-02-13 12:36 pm (UTC)(link)
Увы, Qt работает быстрее gtk, и быстрее gtk+cairo.

[identity profile] max-posedon.livejournal.com 2009-02-13 12:53 pm (UTC)(link)
Да их же тысячи, + личный опыт + посмотрите на embedded, ну ладно, вот один:

http://zrusin.blogspot.com/2006/10/benchmarks.html

Тема обсасана была уже тысячу раз по этому поводу всюду.

(no subject)

[identity profile] kiryl.livejournal.com - 2009-02-13 12:55 (UTC) - Expand

(no subject)

[identity profile] max-posedon.livejournal.com - 2009-02-13 12:56 (UTC) - Expand

(no subject)

[identity profile] kiryl.livejournal.com - 2009-02-13 12:58 (UTC) - Expand

(no subject)

[identity profile] max-posedon.livejournal.com - 2009-02-13 13:27 (UTC) - Expand

[identity profile] zamotivator.livejournal.com 2009-02-13 01:28 pm (UTC)(link)
готов обсуждать устриц лишь с тем, кто их ел.
1) Более строгая типизация даёт более хорошие оптимизации
2) Константность даёт оптимизации
Во всём остальном производительность С и С++ совпадает. При условии нормального компилятора, естественно.

[identity profile] kiryl.livejournal.com 2009-02-13 01:43 pm (UTC)(link)
6-13% времени исполнения тратится на диспетчеризацию виртуальных функций. http://www.cs.ucsb.edu/~urs/oocsb/papers/oopsla96.pdf

[identity profile] metaclass.livejournal.com 2009-02-13 01:49 pm (UTC)(link)
Вот счас забиватор тебя на эту тему загнобит, готовься. :)

А вообще, там где есть надобность в виртуальных функциях, обычно не до производительности, скажем так. Там больше внимания уделяется кошерности архитектуры и ее поддерживаемости в будущем, нежели мелочам типа 6-13%

(no subject)

[identity profile] kiryl.livejournal.com - 2009-02-13 14:11 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2009-02-13 14:14 (UTC) - Expand

(no subject)

[identity profile] max-posedon.livejournal.com - 2009-02-13 14:16 (UTC) - Expand

(no subject)

[identity profile] kiryl.livejournal.com - 2009-02-13 14:20 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2009-02-13 14:44 (UTC) - Expand

(no subject)

[identity profile] theiced.livejournal.com - 2009-02-13 15:15 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2009-02-13 15:28 (UTC) - Expand

(no subject)

[identity profile] kiryl.livejournal.com - 2009-02-13 18:22 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2009-02-13 18:25 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2009-02-13 18:25 (UTC) - Expand

(no subject)

[identity profile] kiryl.livejournal.com - 2009-02-13 14:17 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2009-02-13 14:46 (UTC) - Expand

(no subject)

[identity profile] zamotivator.livejournal.com - 2009-02-13 14:43 (UTC) - Expand

[identity profile] vp.livejournal.com 2009-02-13 04:57 pm (UTC)(link)
А чем плох С++?
Я вот пишу на дельфи 99% вещей, но был бы в 100 раз более счастлив если бы то же самое исторически начал бы делать с базовым языком С++. Места для маневров намного больше

[identity profile] kiryl.livejournal.com 2009-02-13 06:09 pm (UTC)(link)
Встречный вопрос: а чем плох старый добрый C? Про ООП расказывать не нужно -- на C можно писать в объектно-ориентированном стиле и довольно красиво получается.

[identity profile] max-posedon.livejournal.com 2009-02-13 06:20 pm (UTC)(link)
/me вспомнил добавление item-а в GtkTreeView.... не-не-не!

[identity profile] kiryl.livejournal.com 2009-02-13 06:24 pm (UTC)(link)
Опять вы про свои Qt vs. Gtk.

[identity profile] max-posedon.livejournal.com 2009-02-13 06:33 pm (UTC)(link)
btw, последнее время вижу всё больше поползновений в сторону vala , весьма приятный язык с тесной интеграцией с glib, gtk, etc(gobject и семейство), при этом с вполне красивым синтаксисом. По факту, он превращается в C препроцессором и компилируется как C. Уровень интеграции где-то на уровне mono, gtk#. Весьма вкусно могу вам сказать.

[identity profile] kiryl.livejournal.com 2009-02-13 06:34 pm (UTC)(link)
Да, слышал. Знакомые рекламировали. Только задач, которые следовало бы решать с помощью такого инструмента у меня нет.

[identity profile] vp.livejournal.com 2009-02-13 06:54 pm (UTC)(link)
Дык вроде ж в классическом Си ООП никакого нет? Как писать "в стиле" ?

[identity profile] kiryl.livejournal.com 2009-02-13 08:41 pm (UTC)(link)
Посмотрите реализацию любой fs в linux kernel. Если кратко -- структуры наше всё.

(no subject)

[identity profile] vp.livejournal.com - 2009-02-13 21:31 (UTC) - Expand

(no subject)

[identity profile] kiryl.livejournal.com - 2009-02-13 21:48 (UTC) - Expand

(no subject)

[identity profile] vp.livejournal.com - 2009-02-14 07:15 (UTC) - Expand

(no subject)

[identity profile] kiryl.livejournal.com - 2009-02-14 09:55 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2009-02-14 10:46 (UTC) - Expand

(no subject)

[identity profile] vp.livejournal.com - 2009-02-14 12:19 (UTC) - Expand

(no subject)

[identity profile] kiryl.livejournal.com - 2009-02-14 20:49 (UTC) - Expand

(no subject)

[identity profile] max-posedon.livejournal.com - 2009-02-14 20:55 (UTC) - Expand

(no subject)

[identity profile] vp.livejournal.com - 2009-02-14 21:06 (UTC) - Expand

(no subject)

[identity profile] kiryl.livejournal.com - 2009-02-14 23:07 (UTC) - Expand