On Sun, 31 Aug 2003, Aviram Jenik wrote:

> We are currently debating on what GUI infrastructure to use for one of our
> products, and the main downside of qt seems to be its constraining license.
> Can anyone shed more light on this subject? How much does the qt license cost
> to develop a non-GPL product that uses qt library?
> Does it also apply for tools like kdevelop?
> Are there any free (read: completely free, with no "we're-free-but" fine
> print) alternatives other than gtk and WxWindows?

you didn't state what kind of application you need to develope - which, i
think, is quite relevant to the choice of toolkit.

i had the opportunity to develope some linux GUI application for some
company, which needed to show both simple windows (canvas display,
dialog-boxes, tables) and some time-based graphs - and was supposed to
run on linux, with no real portability requirements. i went for gtk+
(programming in C, mind you) because i could use it for free, and i could
find the proper extentions to show the time-based graphs for it.

eventually, we managed to come up with a GUI that looked mostly decent (it
wasn't an application meant for end-users, althought it was used in a
trade show in the USA, to demonstrate the hardware that company
developed).

the down-sides i stumbled on were:

1. documentation. gtk+'s reference manual (that was 1-1.5 years ago, and
   we used gtk1.2, when gtk2.0 was just released) was very 'empty' (i.e.
   each function had an enrty, but often with no text attached to it). i
   used some experience i had with gtk+ previously (on a hobbist level)
   and lots of looking in the header files, and guessing, to overcome this
   issue.

2. the time-based graph widget i used contained a fundamental bug.
   ofcourse, since it was open-source, i was able to debug it and fix the bug.
   yet, i had to spend about 2-2.5 days on decyphering the code ;)

3. the timers of glib/gtk do not account for drifting, which caused the
   time-based graphs to come out with shifts. i had to re-write the timers
   code several times, eventually implementing my own delta-list on top of
   gtk's basic timer, to overcome the problem, until i managed to get the
   graphs to display properly, with a normal deviation of about 50ms per
   dot (we drew 1 point per second).

4. gtk's GUI builder, glade, has two modes. one is 'code generation'
   (un-useable in a proper project, since it re-writes the same code you
   modify). the other is using libglade (less convinient due to the way it
   handles callbacks - but useable). glade itself has some quirks which
   require getting used to, but if you don't try to play with it too much,
   and use it systematically, it is useable. the libglade mode also made
   it easy to write code that dynamically loads windows on-the-fly - which
   is a feature we needed for part of the application.

overall, the time we spent on the overcoming gtk+'s shortcomings, had
cost (in a rough estimation) less (money-wise) then buying a Qt license
(and Qt did not have a time-based plotting widget - i found one freely
available such widget on the net, that i did not like) - and i don't think
that using Qt would make the development time shorter then it was - when
you're using some 3rd-party library - any library - for a
less-then-trivial project, you're bound to hit the library's rough points.

in general, it _looks_ like the greatest trade-off between open-source and
closed-source code, is having the source and not having to pay
royaltees/licenses, against having good documentation and having no source
(well, with Qt you have the full source, which is useful for debugging
your code - that alleviates a lot of the problem). i find the same
trade-off exists with other libraries (e.g. ACE Vs. Roguewave's commercial
libraries) - and which of those suites you, depends alot on your
personality. after developing using commercial tools for ~4.5 years, and
free software for 1.5 years - i know which side i want to be on - but
that's me.

if you'll have an intention of using gtk+ (and judging by your letter -
you currently don't) and would like some more details - feel free to mail
me.

-- 
guy

"For world domination - press 1,
 or dial 0, and please hold, for the creator." -- nob o. dy


=================================================================
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]

Reply via email to