[dot] Qt Developers Conference Report

Dot Stories stories at kdenews.org
Wed May 12 15:05:49 CEST 2004


URL: http://dot.kde.org/1084362782/

From: Mark Bucciarelli <mark at hubcapconsulting.com>
Dept: minimizing-mallocs
Date: Wednesday12/May/2004, @13:53

Qt Developers Conference Report
===============================

   On May 10th, ICS presented a Qt Developer Conference
[http://www.ics.com/qt/qtmeetings/agenda.html] in Waltham,
Massachusetts.  Over 100 developers were on hand to hear presentations
from Havaard Nord (TrollTech CEO), Jasmin Blanchette (TrollTech
uber-developer) and Matthias Kalle Dalheimer (Klarälvdalens Datakonsult
CEO).

     It was a somewhat uneven conference.  There were some great
technical talks and then there were some that were too high-level and
slow moving. Jasmin Blanchette did not have enough time for his talk on
Qt 4, causing him to rush and leaving little time for Q&A.   Havaard
Nord's talk on the soul of Qt was inspiring and included some
interesting results from a  recent customer survey.  A low point was
probably the talk on GUI design, which really had nothing specific to
Qt.  This time would have been better spent having Matthias Kalle
Dalheimer demonstrate KD Executor, which was very popular during the
breaks.  Joe Longson (from Walt Disney) demonstrated an amazing Qt
application that Disney uses to manage production of animated feature
films.  Gregory Seidman's talk on using a app-global relay object
(publish/subscribe pattern) to centralize connecting signals and slots
was very useful.

     As of this writing, I could not find an online version of the
speakers' slides, but I believe ICS [http://www.ics.com] intends to post
them.

     TrollTech Customer Survey.  Havaard Nord's presentation included
data from a March 2004 customer survey.  The survey was sent to 6,000
licensees and had a 25% response rate.  Some of the results:

    *  The most commonly used modules is threading (50% of responses).
      So we can expect TrollTech to focus on threading module.
    * GNU/Linux and Mac OSX are growing fast (see table below).
    * Only 31% of respondents have participated in an Open Source
      project.  (2% didn't know if they had or not!  :)
    * 97% would recommend Qt to others
  Target OSNowPlanningChange Mac OSX14%25%79% Windows 200313%19%46%
GNU/Linux67%72%21% Windows XP71%65%-9% Windows 200070%53%-24%
     Licensees where asked what OS they are targeting now and what OS
they are planning to target.  While this table is based on the 1,250
responses TrollTech got, it is not clear if all 1,250 responses answered
this question, nor was any attempt made to quantify the customer base of
each respondent.  So take these results with a grain of salt.

     Qt 4.0  An article [http://doc.trolltech.com/qq/qq09-qt4.html] in
the recent issue of the Qt Quarterly has a list of the changes coming in
Qt 4 (pronounced "cute four").  TrollTech developer Jasmin Blanchette,
co-author of the recent TrollTech/Prentice Hall Qt book, gave a great
talk on Qt 4.  Some things that stuck out for me from the talk:
    * MVC.  The list, tree and table views have been refactored
      to use a model-view-controller pattern.  The model data structure
      (a tree where each leaf has columns) is the same for all views, so
      your data can be viewed with a 1D list, 2D table, or 3D tree.  The
      API is now consistent across all three.
    * Threading.  Signals and slots now work across threads.
      Container reference counting is now thread-safe, so you no longer
      need to use QDeepCopy.
    * Containers.  All containers (for example, QList,
      QLinkedList, QVector, etc.) are now value based.  QList is the
      container of choice in most cases.  But use an integer to scan the
      list, as iterators are not guaranteed to be valid if you change a
      list while interating over it's contents.
    * Performance.  A lot of work was done reducing memory
      allocation to improve performance.  QStrings and QByteArray used
      to require two mallocs for each instantiation.  They now require
      one.  QList is now much smarter about mallocs; for example, if you
      are working with a list of pointers, it does not allocate a
      pointer to the pointer, it uses the existing pointer.  Another
      area where mallocs were reduced is in the object hierarchy.  In Qt
      3, if there were three parent classes to the object you
      instantiated, four mallocs occurred--one for each class in the
      hierarchy.  Now there is just one.  These changes (particularly
      the QString change) result in huge differences; for example, the
      memory allocated at Qt Designer start-up was reduced by 46%!
      Designer now starts almost twice as fast in Qt 4 as it did in Qt
      3.

     A alpha / developer-preview release of Qt 4 is planned for May or
June of 2004.



More information about the dot-stories mailing list