[Development] What kind of airplane we want to build?

Ziller Eike Eike.Ziller at theqtcompany.com
Wed Jan 20 15:48:58 CET 2016


> On Jan 20, 2016, at 3:12 PM, Marc Mutz <marc.mutz at kdab.com> wrote:
> 
> On Wednesday 20 January 2016 11:48:20 Bubke Marco wrote:
>> I think it would be productive for the discussion to build story of what we
>> want to do. A story of the big picture. Maybe as a first step we can show
>> how we tackle problems with Qt 5 and what are the proposed technologies in
>> the future C++ standard. 
> 
> For me, Qt always was "the C++ standard library that C++ lacked". Ever since 
> Qt 3, it also integrated pretty well with the rest of the standard library. 
> That was easy, because pretty much the only thing that the standard library 
> had and Qt didn't were the algorithms, and Qt and the STL algorithms 
> integrated well. And there were conversion functions for pretty much 
> everything to/from std.
> 
> We even deprecated our algorithms when we started requiring full C++98 support 
> in 5.0.
> 
> We used to roll our own atomics, but dropped them in 5.7 when we required 
> partial C++11 support. We rolled our own foreach, and now it looks like we're 
> dropping it in favour of range-for.
> 
> I would like that trend to continue. The likely next candidates are threads, 
> futures and locks.

+1

> Now that C++ punches out a new standard every three years, I would change that 
> into "Qt is the part of the C++ standard library that C++ sill lacks". I would 
> like Qt to continue to integrate well with the standard library and phase out 
> its own solutions as the standard library catches up.
> 
> We have been doing that in the past. It's just as C++ standardisation 
> accelerates, so will the need to phase out Qt features that got superseded.
> 
> I perceive, however, that for many people, Qt is what makes them forget 
> they're working on C++, a language they would not otherwise poke at with a 
> long stick. They probably also cannot tolerate writing std::sort(v.begin(), 
> v.end()) instead of qSort(v).

I find it much nicer and more readable if I can just write sort(v).

Or "const List foos = transformed(myThings, &Thing::foo);"
instead of "List foos; std::transform(myThings.begin(), myThings.end(), std::back_inserter(foos), std::mem_fn(&Thing::foo));”
(notice that “foos” is also not const in the “pure" std version)

We started some experiments with convenience wrappers for std algorithms for use in Qt Creator when we started requiring C++11:
http://code.qt.io/cgit/qt-creator/qt-creator.git/tree/src/libs/utils/algorithm.h

>  But Qt is available in D and Python, too, so ... 
> why do they use C++ if they so hate it?

Maybe they don’t hate it, but still wished it had a less verbose API if you don’t need the verbosity.

Br, Eike

-- 
Eike Ziller, Principle Software Engineer - The Qt Company GmbH
 
The Qt Company GmbH, Rudower Chaussee 13, D-12489 Berlin
Geschäftsführer: Mika Pälsi, Juha Varelius, Tuula Haataja
Sitz der Gesellschaft: Berlin, Registergericht: Amtsgericht Charlottenburg, HRB 144331 B



More information about the Development mailing list