qt

Feb. 13th, 2009 12:55 am
metaclass: (Default)
[personal profile] metaclass
Наконец, вместо того, чтобы копировать qt с компа на комп и копаться в его исходниках, немного побаловался с написанием программ. Выводы:
1) qt creator (и возможно, сам qt) еще таки дорабатывать и дорабатывать. Глючит-с. Мне кажется, что это не уровень RC, это таки сырая бета.
2) qt не использует стандартных виндовских контролов вообще, судя по тому, что spyxx не видит ничего в проге кроме топ-левел окна.
3) Способ разработки гуя достаточно интересен, некоторые вещи интуитивно понятнее и удобнее дельфей и вижуал-студии.
4) Надо написать хотя бы одну полноценную прогу на этом деле, чтобы таки осознать, стоит дергаться ради галочки "можно писать кроссплатформенный GUI".

Date: 2009-02-13 12:31 pm (UTC)
From: [identity profile] kiryl.livejournal.com
От всех извращений C++ они избавится всё равно не смогут.
От потери производительности на ровном месте. Например, длиннющие имена символов. Динамическому линковщику приходится перелопачивать дикие объймы данных, только что бы сделать все relocations. Дриппер считал сколько строк нужно сравнить динамическому линковщику для запуска OpenOffice 1.0. Получилось порядка 18.5 мегабайт!
Это этого Qt никуда не деться.

Date: 2009-02-13 12:35 pm (UTC)
From: [identity profile] max-posedon.livejournal.com
1. запуск app != производительность app
2. решения этой проблемы нет нигде, вы можете написать подобный API на C, тока в нём всё равно будут длиннющие имена, тупо потому что методов *много*
3. медленный старт openoffice-а был обусловлен совершенно другой бедой, а не кол-вом библиотек с котороыми ему надо было слинковаться
4. 20Mb это совсем немного

Date: 2009-02-13 12:46 pm (UTC)
From: [identity profile] kiryl.livejournal.com
1. Я в курсе. Это всего лишь пример. Можно ещё вспомнить про таблицы виртуальных методов.
2. libgtk-x11-2.0.so -- средняя длинна символа 25.2. libQtGui.so.4 - 35.9. К тому же в случае C, strcmp, как правило, обнаруживает неравенство раньше ибо в символах нет неймспэйсов и имён классов.
3. Мы тут не OO обсуждаем.
4. Ну-ну.

Date: 2009-02-13 12:50 pm (UTC)
From: [identity profile] max-posedon.livejournal.com
2. статистика это 3й вид лжи, и кстати это снова о старте app. И ещё, сигнатуры C и C++ начинаются с типов на моей памяти, namespace-ы врятли причём к strcmp в таком случае

Date: 2009-02-13 12:54 pm (UTC)
From: [identity profile] kiryl.livejournal.com
Попробуйте распечатать отсортированный список символов libQtGui.so.4. Там всё хорошо видно.

Date: 2009-02-13 01:30 pm (UTC)
From: [identity profile] max-posedon.livejournal.com
objdump -R /usr/lib/qt4/libQtGui.so.4 | awk '{ print $3 }' | sort

фрагмент из середины, namespace-ов не вижу, вижу тока class-методы, + в начале сигнарутура типа

_ZN24QAbstractEventDispatcher11closingDownEv
_ZN24QAbstractEventDispatcher11filterEventEPv
_ZN24QAbstractEventDispatcher8instanceEP7QThread
_ZN24QAbstractPageSetupDialog16staticMetaObjectE
_ZN24QAbstractPageSetupDialog16staticMetaObjectE
_ZN24QPlainTextDocumentLayout16staticMetaObjectE
_ZN25QAbstractItemModelPrivate11rowsRemovedERK11QModelIndexii
_ZN25QAbstractItemModelPrivate16staticEmptyModelEv
_ZN25QAbstractItemModelPrivate20rowsAboutToBeRemovedERK11QModelIndexii
_ZN27QAbstractTextDocumentLayout16staticMetaObjectE
_ZN27QAbstractTextDocumentLayout16staticMetaObjectE
_ZN27QAbstractTextDocumentLayout16staticMetaObjectE
_ZN27QEventDispatcherGlibPrivateC2EP13_GMainContext


Date: 2009-02-13 01:32 pm (UTC)
From: [identity profile] max-posedon.livejournal.com
Да кстати, и не мог увидеть, в Qt классы не лежат ни в каком namespace-е, у вас снова Epic Fail

Date: 2009-02-13 02:06 pm (UTC)
From: [identity profile] kiryl.livejournal.com
Да, кстати, перечитал свои посты и не смог увидеть, где я говорю, что в Qt классы лежат в namespace'ах, у вас снова Epic Fail.

Date: 2009-02-13 02:08 pm (UTC)
From: [identity profile] max-posedon.livejournal.com
За то ты всегда тему Qt зачем-то генерализовывал к тебе C++, как я не просил тебя этого не делать.

Приятного аппетита троль.

Date: 2009-02-13 02:03 pm (UTC)
From: [identity profile] kiryl.livejournal.com
К примеру у меня в libQtGui.so.4 72 символа начинаются с _ZN19QApplicationPrivate, думаю это не предел.

Date: 2009-02-13 02:09 pm (UTC)
From: [identity profile] max-posedon.livejournal.com
если бы у вас было 72 функции которые работали бы в Application модуле вы бы их нахвали
application_private_{72 функции} и было бы тоже самое.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Nov. 4th, 2025 01:04 am
Powered by Dreamwidth Studios