
Defragmenting Qt and Uniting Our Ecosystem - drgvond
http://blog.qt.digia.com/blog/2014/08/06/defragmenting-qt-and-uniting-our-ecosystem/
======
ChikkaChiChi
One of the things "missing" from Go is the ability to do a GUI. Some work is
being done to build out a QT library, but it seems like the progress on atom-
shell and node-webkit may almost make Qt overly cumbersome to work with.

Other than native controls and the potential DOM lag of a webkit interface, is
there any particular reason why someone programming in Go, Python, Ruby, etc.
would want to engage Qt; assuming a stable, working library?

~~~
comex
You say "other than", but native controls are a big deal. As an OS X user, I
for one would strongly avoid using an application that uses (often generally
poor, almost always slightly off with keyboard shortcuts and such) HTML
replacements for native UI. (For the record, I don't use Atom, but in that
case the horrid performance is more important.)

Actually, Qt suffers from this as well compared to native Cocoa, because of
both small issues with reimplemented controls (as of recently, anyway) and,
more importantly, generally Windows-focused UI paradigms. But it's not as bad
as HTML.

~~~
zura
When I hear "GUI" and "native", wxWidgets immediately pops up in my head,
which is a decent framework and wraps native controls. I wish it had more
publicity.

~~~
comex
After trying to maintain a wxWidgets project about a year ago, I'm afraid I
must disagree. It wraps native controls, but it is a horrible broken
framework. Among other things,

\- It uses macros instead of C++ templates in order to support ancient
compilers.

\- To handle events, you're supposed to make an enum for your controls and go
through these EVENT_TABLE macros - it works, but generally it's a mess
compared to nicer frameworks like Qt.

\- Threading support is really lame, e.g. this quirk of AddPendingEvent:
[http://docs.wxwidgets.org/trunk/classwx_evt_handler.html#a07...](http://docs.wxwidgets.org/trunk/classwx_evt_handler.html#a0737c6d2cbcd5ded4b1ecdd53ed0def3)

\- Then and probably still today, OS X Retina support was completely broken.
Not a great turnaround time - it was already a year after the release of
Retina laptops.

~~~
mwfunk
wxWidgets looks like a reimplementation of MFC almost. This might be good for
some people or bad for others. MFC is/was the Microsoft Foundation Classes, an
OO framework for doing GUI development on Windows that dates back to 1992.

I'm guessing that when wxWidgets was originally written (also 1992!), the
author(s) thought it would ease the transition from writing Windows-only apps
to cross-platform apps. wxWidgets has a very similar class hierarchy and uses
the same preprocessor techniques.

Not that knowing any of that background makes it any more pleasant to work
with.

------
higherpurpose
Digia, and anyone else who might still use it, please remove AddThis.

[http://www.propublica.org/article/meet-the-online-
tracking-d...](http://www.propublica.org/article/meet-the-online-tracking-
device-that-is-virtually-impossible-to-block)

~~~
tekromancr
What exactly is the difference between this canvas tracking tech and cookies,
flash cookies, and panopticlick? That just sounds like FUD because people are
just learning about this.

~~~
malka
blocked by disconnect.me , just as the rest of this tracking bullshit.

------
bananaoomarang
Qt always seems like a thing that has so much potential, but whenever I use it
I'm struck by how it never seems quite good enough. 5 seems a big imporvement
on 4 though, so we'll see.

~~~
scrollaway
I'm wondering what you mean by "not quite good enough". It's by far the best
UI toolkit out there and a very high quality application toolkit.

It has shortcomings, but to the point it's unusable?

~~~
bananaoomarang
Not unusable at all! I think my comment sounded more negative than I am about
Qt, I enjoy using it but there's a lot of little things, just glitches mostly,
that are annoying and detract from it being amazing.

~~~
scrollaway
Ah. I understood your comment differently.

It definitely does have shortcomings, but I don't think any library is ever
perfect, especially in a project as massive as Qt. I found the Qt community is
very open to contributions, feature requests and such when things make sense.

------
jordigh
Dear lazyweb, what exactly is Qt's current business? The blog post makes it
sound as if the commercial version of Qt wasn't free software. What freedoms
does it take away? I know that Trolltech commercialised Qt by selling
exceptions. What's the current business? Also, if 25% of all contributions are
coming from non-Digia employees, does Digia require copyright assignment? Does
their current commercial model require copyright assignments?

~~~
cbhl
Qt is licensed under GPL v3 and LGPL v2.1, but you can also buy a license if
you want to use and/or modify Qt in a project without having to redistribute
the whole thing under GPLv3 or redistribute your modified Qt under LGPL v2.1.

There's actually a lot of closed-source software you know of that uses Qt in
some form: Autodesk Maya, Google Earth, Skype, and Spotify are just a few.

I'm not sure whether all of these teams use the commercial version (some may
use e.g. the LGPL version) but it's probably not zero.

[http://en.wikipedia.org/wiki/Qt_(software)#Software_using_Qt](http://en.wikipedia.org/wiki/Qt_\(software\)#Software_using_Qt)

~~~
jordigh
So they're back to selling exceptions again? I thought they had stopped when
it was owned by Nokia.

~~~
navlelo
The commercial business/licensing was sold off to Digia, which eventually
bought the whole Qt division.

~~~
jordigh
Yes, I understand this, but Digia went back to GPL and back to selling GPL
exceptions like Trolltech did originally?

~~~
toyg
Digia is doing the same thing Nokia did, which was the same thing Trolltech
did. The only difference is that, since the Nokia takeover, the open source
version is _also_ available under LGPL. This has not changed under Digia.

------
Deusdies
Phew, for a moment I thought that they will be focusing only on enterprise
licenses and make Qt closed-source (which would probably be a suicide).

~~~
rat87
note

[http://www.kde.org/community/whatiskde/kdefreeqtfoundation.p...](http://www.kde.org/community/whatiskde/kdefreeqtfoundation.php)

> The Foundation has a license agreement with Digia and Nokia. This agreement
> ensures that the Qt will continue to be available under both the LGPL 2.1
> and the GPL 3. Should Digia discontinue the development of the Qt Free
> Edition under these licenses, then the Foundation has the right to release
> Qt under a BSD-style license or under other open source licenses. The
> agreement stays valid in case of a buy-out, a merger or bankruptcy.

~~~
Deusdies
Amazing, I did not know this (and I use KDE). Thanks.

------
onli
I'm not too much concerned by this, but it does not sound like a good move.

> The unified web page will give a broad overview of the Qt technology, both
> enterprise and open-source, from a technical, business and messaging
> perspective.

So, the new web page will still have to be fragmented, because it has to serve
open source and business visitors. Who speak a completely different language
and look for different information.

Might be a good thing if it leads to a better website, might reflect good
changes, but that alone sounds rather complicated. In my eyes it is not bad to
have a fragmentation between sites targeting business users and those who do
not, and it seems sound to have the one for business users in the reign of the
company.

The new company seems to be the real news (at least it was new to me), that Qt
will be managed by a company focussing solely on Qt.

~~~
antocv
Yeah, but the new company will be 100% owned by Digia.

So basically this is a nice move from Digia to consolidate its ownership and
leadership of Qt.

I guess its similar to what Google does.

~~~
toyg
Or a move from Digia to prepare a sale - it's much easier to sell something
like QT if you also include all the relevant developers in one nice package.

Or maybe it's a way to insulate Digia from losses resulting from QT
operations, who knows?

I have to say I'm happy they'll review the installer though; ever since they
started packing their own compiler, I got the feeling things became a bit more
chaotic than they were.

------
codehero
One thing you do not see fragmenting are command-line tools, because people
tend to agree on their function(1). However, QT is huge; its scope goes far
beyond GUI functionality, into string classes, SQL databases, networking, etc.
And moc, its C++ code generator. More scope equals more possible
disagreements, which necessarily entails fragmentation.

I tried installing the Qt version of wireshark using exherbo (one of the most
minimal Linux distros) and it wanted MySQL as a dependency! For me, if you
cannot build a well focused tool with a GUI toolkit it's not worth using.

1 (sure different Unices have different options, but that is more historical)

~~~
zanny
> it wanted MySQL as a dependency! For me, if you cannot build a well focused
> tool with a GUI toolkit it's not worth using.

How is Wireshark not well focused? It probably uses a mysql database for its
activity history (note: I didn't look, its just a common design pattern). I
mean, it seems like a program like Wireshark would be better suited by a
simpler sqlite database, but its really up to the project lead on these
things.

~~~
geraldcombs
Wireshark doesn't use MySQL or any other SQL backend. I'm not sure what sort
of dependency chain would trigger the installation of MySQL but it's unusual
to say the least.

~~~
milliams
Almost certainly a packaging error where Wireshark depends on Qt and Qt
includes all modules, including QtSql.

------
joezydeco
Just great. As if their licensing cost wasn't high enough, this will probably
make it way worse.

~~~
milliams
I'm not sure it's going to affect it at all. What makes you think it will? All
they're doing is spinning off a subsidiary to do what the Qt division is
already doing.

~~~
joezydeco
And does that have a completely zero cost to accomplish?

As I see it, leaving Qt entirely at the mercy of it's licensing revenue stream
and not supplemented by Digia's consulting revenue stream means 1) Qt needs to
sell more licenses going ahead or 2) Qt needs to charge more per license. The
cost of doing business or paying developers will not be going down any time
soon. It can only be flat or, more likely, up. And I don't see Qt license
numbers making a radical change upward in the near future.

~~~
walterbell
Are there other options to improve the financial health of the Qt ecosystem?

~~~
joezydeco
Sadly, no. And it's distressing. Especially as I finish work on a UI system
that's using it.

~~~
walterbell
Microsoft is supposedly consolidating their Windows versions, including
desktop and mobile. Too bad they didn't support Qt on mobile from the
beginning, as it could have seeded their ecosystem.

It's a shame that Digia pricing has no elasticity for the large pool of indie
mobile developers. It's either LGPL for zero revenue or $$$ for a paid
license. Within that large price gap are products which perform "cloud
compilation" that require handing over your IP to a 3rd-party. MoSync had a
good open-source run with their LLVM toolchain, but didn't reach stability.

If a Qt-native mobile OS had been successful (e.g. Meego pre-Elop), the
picture would be different today. Engineering feats have brought Qt to Android
and iOS, but it's not the same as being a first-class business citizen of the
platform.

~~~
joezydeco
_Engineering feats have brought Qt to Android and iOS, but it 's not the same
as being a first-class business citizen of the platform._

Very true. At one point I was considering a Qt application on top of Android
to let some legacy products continue to run on a modern platform. Until I saw
that Digia was pretty much asking for a full Qt license royalty on that
platform. At that point it became "screw this, I can just contract a Java
developer to port it and it will come out WAY cheaper".

------
joeld42
I wish they could just spin off a QT3-era widget library for cross platform
desktop only stuff. All the new QtQuick declarative and mobile stuff just
confuses me and gets in the way. Believe it or not, Qt used to be a small and
lightweight library.

~~~
emilsedgh
QWidgets are still there.You don't have to use QtQuick.

~~~
bostik
And the best part is that in Qt 5.x the individual components are separate
source packages. Off the top of my head ... base for the core Qt; widgets for
old style widget library; script and declarative for QtQuick; system for
I-don't-remember-what; and so on.

If you don't need QtQuick or QtWebKit, you can actually drop quite a few of
the packages.

------
milliams
Original announcement at
[http://qfx.quartalflife.com/Clients/fi/digia/rss/newsentry.a...](http://qfx.quartalflife.com/Clients/fi/digia/rss/newsentry.aspx?id=1002481436&culture=en-
EN)

------
v3ss0n
For me , Qooxdoo (qooxdoo.org) making QT almost obselete. Qooxdoo + CEF
(nodewebkit, atom-shell) making QT un-necessary. I wonder why qooxdoo is very
less known around here.

------
e15ctr0n
How big is Qt's commercial market? Any breakdown by license fee and
professional consulting fee?

------
Sajeeb
What will be KDE's future?

~~~
milliams
Completely unchanged of course.

