March 6, 2011

Dmitriy Dmitriy
Lab Rat
9 posts

A fork of Qt…

Page  
1

Recently a big event happend – Nokia and Microsoft decided to make Windows a major platform (instead of MeeGo) for all future mobile phones of Nokia. There was a lot of discussions about future of Qt regarding this event. And one discussion is more important than everything else – I mean this blogpost “http://labs.qt.nokia.com/2011/02/18/buckets-of-cold-water”. First of all, I would like to say thanks to Vohi for his honesty and second it become clear that Nokia doesn’t interested in further development of Qt on desktops. It’s sad, but I can understand this – Nokia is not software developer. Despite this fact they promised to continue working on Qt and it’s components which make sens for mobile platform. This sounds good… but it’s only sounds. I hope this will be reflected in actions.
But as a software developer for desktops who uses Qt in every day work (starting from small text search tools up to large systems consists of many NT services which must work years without stop) I got a cause, which was decisive in making the decision to start a fork.

So, I decided to start a fork of Qt framework in which i want to improve Qt by

  • modularisation: QtCore have a lot of excelent things which may be usefull without “Signals/Slots” framework and without “QApplication” and many other things in QtCore, for example QString, QByteArray, QTextCodec, QDateTime, QLocale, QAtomicInt etc.
  • using 3rd party libraries such as Stlsoft, Boost, Loki etc which should reduce complexity of Qt internal parts.
  • using common tunable memory manager, for example Loki has a good one.
  • using common build manager – cmake.

So here is a draft version of roadmap for my fork of Qt [gitorious.org]

  • QtCore:
  • - switch to cmake
  • - make a module with all common Qt types (QString, QByteArray, QTextCodec etc). Actualy, this is already done and you can see the result here [sourceforge.net] Here is a cmake project based on Qt 4.7.1 (with very small fixes) which collects QtCore sources in one module. After building this project you will get a small (~200Kb) library (instead of QtCore ~4.5Mb) with all common types used in Qt. P.S.: I spent only one day to create this project (only to check my approach), so don’t judge me severely.
  • - make a module to work with streams (QTextStream, qDebug etc).
  • - make a module to work with file system (QFile, QDir etc).
  • - make a module to work with “Signals/Slots” framework (QObject).
  • - make a module to work with threads (QThread).
  • - make a module to work with shared objects (QSharedMemory).

Any ideas or suggestions are welcome.

20 replies

March 6, 2011

jstaniek jstaniek
Ant Farmer
16 posts

Congratz, you’re fast. (but that’s easy on gitorious, right?) Nokia-sponsored gitorious, to be strict :)

Just 3 most visible dents in your strategy:
1. Consider following the Qt Modularization initiative instead of duplicating the effort:
http://labs.qt.nokia.com/2011/01/21/status-of-qt-modularization/
2. It’s disputable if you’re proposing improvements. Maybe from some POV. But in the same time “your” version heavily breaks backward compatibility with 4.x series. Thus, it’s throwing out all the software written for Qt so far.
3. Note that in legal terms Qt is a registered trademark, like everything in the legal world including Linux and Firefox.

 Signature 

regards, Jarosław Staniek

Certified Qt Specialist & Ambassador
Kexi: http://kexi-project.org
Calligra: http://calligra.org
Qt for Tizen

March 6, 2011

peppe peppe
Ant Farmer
1029 posts

Do you have any rationale for this? Major objectives for 4.8 include Qt modularization and open governance. I know that people confidence in Nokia is quite low now, but I totally trust the people involved.

At least, it’s a move I would plan for post-4.8 if open governance doesn’t come by then.

 Signature 

Software Engineer
KDAB (UK) Ltd., a KDAB Group company

March 6, 2011

Ymilij Ymilij
Lab Rat
13 posts

Don’t be so fast.

I think that all be OK with Qt and Nokia.

Developing OpenSource on Microsoft’s money. What can be more funnier?

March 6, 2011

Dmitriy Dmitriy
Lab Rat
9 posts

jstaniek wrote:
Congratz, you’re fast. (but that’s easy on gitorious, right?) Nokia-sponsored gitorious, to be strict :)

Just 3 most visible dents in your strategy:
1. Consider following the Qt Modularization initiative instead of duplicating the effort:
http://labs.qt.nokia.com/2011/01/21/status-of-qt-modularization/
2. It’s disputable if you’re proposing improvements. Maybe from some POV. But in the same time “your” version heavily breaks backward compatibility with 4.x series. Thus, it’s throwing out all the software written for Qt so far.
3. Note that in legal terms Qt is a registered trademark, like everything in the legal world including Linux and Firefox.

1. Yes, I am :)
I know about this and I choosed a different approach of modularisation. The main goal in my case is to rely on 3rd party libraries in implementation of internal parts.
2. Do you think Qt is ideal optimised framework? Did you look under the hood??? Especially QtNetwork or for example QFile?
Qt is the greatest set of tools and libraries for cross-platform development, but it can be even more efficient.
Ofcourse I wont break binary compability with 4.x series – I only change the internal implementation and increase amount of modules, but binary (and by includes) they will be equal to existing ones.
3. Thanks for the tip i will keep that in mind.

March 6, 2011

Dmitriy Dmitriy
Lab Rat
9 posts

Ymilij wrote:
What can be more funnier?

Indeed! :)

March 6, 2011

peppe peppe
Ant Farmer
1029 posts

2. Do you think Qt is ideal optimised framework? Did you look under the hood??? Especially QtNetwork or for example QFile?

So, why not contributing with upstream?

 Signature 

Software Engineer
KDAB (UK) Ltd., a KDAB Group company

March 6, 2011

Dmitriy Dmitriy
Lab Rat
9 posts

peppe wrote:
bq. 2. Do you think Qt is ideal optimised framework? Did you look under the hood??? Especially QtNetwork or for example QFile?

So, why not contributing with upstream?

Yes, this is good idea and may be I will. But first i need to do something, some working libraries, to offer it to upstream.

March 6, 2011

peppe peppe
Ant Farmer
1029 posts

No, I think the whole point of open governance is discussing Qt future, API design, what goes in and what doesn’t, in a public, meritocratic fashion. Discuss with the trolls, before doing any work. Doing a hard job and then being told “thank you, we just did the same work and better” or “oh, wow, but you don’t support ICC” or “your API is bad, redesign everything” can be very disappointing (OTOH “We want to hire you!” can be very encouraging :-)).

 Signature 

Software Engineer
KDAB (UK) Ltd., a KDAB Group company

March 7, 2011

xtingray xtingray
Lab Rat
90 posts

As Qt developer and as part of this community (recently)… I just like to say: IMHO it’s too early to take a decision so important and with so many consequences. Nokia hasn’t stop the Qt route-map and the open governance is coming, so, is this the right time to play our cards? I don’t think so… no yet.

 Signature 

—-
Gustav Gonzalez
Development Leader
.(JavaScript must be enabled to view this email address)

Tupi: Magia 2D
http://www.maefloresta.com
—-

March 7, 2011

Dmitriy Dmitriy
Lab Rat
9 posts

peppe wrote:
No, I think the whole point of open governance is discussing Qt future, API design, what goes in and what doesn’t, in a public, meritocratic fashion. Discuss with the trolls, before doing any work. Doing a hard job and then being told “thank you, we just did the same work and better” or “oh, wow, but you don’t support ICC” or “your API is bad, redesign everything” can be very disappointing (OTOH “We want to hire you!” can be very encouraging :-)).

Yes, you are right. But firstly “thank you, we just did the same work and better” doesn’t scare me and secondly i will try to be up to date with upstream.

March 7, 2011

Andre Andre
Robot Herder
6417 posts

I agree with the comments that claim it is too early for a fork. I don’t think it will attract the kind of community backing that would be needed to make it a viable project. Also, I think there currently is no real reason to make a fork. Nokia is still pouring effort into Qt, it seems, so why make a fork now? I think the open governance might have a better chance of resulting in a workable situation. If you don’t like the implementation of some of the parts of Qt, you can already create a merge request for a better implementation. If it really is better, I’m sure it will be accepted.

So, good luck, but I will stay with the main (Nokia) version for now.

March 7, 2011

Volker Volker
Ant Farmer
5428 posts

It’s far too early to make a decision like this. A fork should be a the last resort at the end of a long road, when it is clear that collaboration will not work out. Look at the folks of OpenOffice/LibreOffice, this was nothing which was decided in two or three nights.

And to be honest: Your plans on Qt look scary to me. You will set up a whole bunch of dependencies on other libraries. I cannot see how this would improve code quality and stability. I, for example, am really happy that I do not have to bother with boost, when I have Qt around.

And I would not bet a single penny on a one-man-show dealing with a complete Qt fork.

March 7, 2011

Mika Hanhijärvi Mika Hanhijärvi
Lab Rat
27 posts

I really don’t think it’s an good idea to start forking Qt. There also is no real reason to do so. Forking would just create big incompatibility and quality problems, and it could split the community (although I don’t think you can attract many). I also don’t like your plan of eg. creating dependencies to other libraries. And by the way, how would you maintain and further develop your fork? It sure would not be one man’s project or something like that. Remember that Trolltech was a company too. Sorry but the whole idea of forking Qt is an bad idea. I can’t support your idea of forking Qt. I’m goig to stay with the official Qt developed by Nokia.

March 8, 2011

Alicemirror Alicemirror
Lab Rat
825 posts

I understand the fork idea clearly, and I though to this, me too for some nights. As a matter of fact, including the actual Nokia directions for development and platforms (hardware, software, MS partnership etc), I agree with the previous two posts. QT – regardless to hist destiny that will be decided by Nokia next months – is “live”, and is rare to find a wide-range development platform growing, with the attention QT has at this moment, that is in the meantime open and of high quality. So, probably the very best thing is to work integrating single development experiences (individual or teams) to enhance and help this growing.

It will not be the first time that while a lot of people are working to define some kind of standard of “optimal perfomance platform” there is something – not necessary under the spot – that became the real reference for a bit set of devices simply because there are the capabilities.
If someone has not yet forgotten, think to DOS and see what’s happening in the android world…

 Signature 

Enrico Miglino (aka Alicemirror)
Tech Consulting
Islas Baleares, Ibiza (Spain)
http://www.contesti.eu

March 10, 2011

frostybeard frostybeard
Lab Rat
1 posts

If anyone is going to fork Qt, it will be the KDE people. They are the top customer for Qt on the desktop. The mobile-oriented work Nokia is doing is very useful and valuable so it might end up being better for KDE to contribute what they need to Nokia’s Qt instead of forking it.

Here’s an interesting web page: http://www.kde.org/community/whatiskde/kdefreeqtfoundation.php

(I work at Nokia)

Page  
1

  ‹‹ [Close] About the forum (from Shouldn’t the "Trolls" communicate more?)      Digia to buy Qt licensing business from Nokia ››

You must log in to post a reply. Not a member yet? Register here!