April 26, 2012

jdavet jdavet
Lab Rat
20 posts

[Poll] Which direction should Qt Quick 2.x development take?

Page  
1

Which potential improvement/add-on for Qt Quick 2.x should - in your opinion - have the highest priority for Qt 5.1 and 5.2? [read post for explanatio
Desktop Components 118
Generic Theming Support 8
Binary QML 19
Expanded C++ Component API 3
Full C++ API 63
Optional V8 Dependency 3
Graphics View Component 5
some other improvement/add-on 5
nothing – I’m happy with what Qt Quick 2.0 provides 2
nothing – I don’t like Qt Quick altogether, I’d like to see more resources put into improving other parts of Qt 3
Total Votes: 229
You must be a logged-in member to vote

——————————————————————————————————————

Qt 5.0 (which is already in feature-frozen alpha stage) introduces the new scene-graph based Qt Quick 2.0 framework. While the foundations are there, and for many use-cases (mobile apps, certain types of games, …) it is already deemed a vastly superior way of creating UI’s, it is definitely not yet ready for replacing the Qt Widget framework everywhere.

Considering that only finite development resources are available, which potential improvement/add-on for Qt Quick 2.x should – in your opinion – have the highest priority for Qt 5.1 and 5.2?

.
  • Desktop Components
    a comprehensive set of Qt Quick UI elements with native look & feel on all supported desktop platforms.
    Note: There is currently a labs project [labs.qt.nokia.com] for this.
  • Generic Theming Support
    a way to easily create themeable components, similar to what QStyle make possible for QWidget subclasses
  • Binary QML
    support for translating QML into a corresponding binary data structure at compile time (rather than letting the Qt Quick engine do it during application start-up), for IPR protection and reduced application start-up time
  • Expanded C++ Component API
    support for extending existing Qt Quick components, and more convenience for implementing new ones, in C++
    Note: Qt Quick 2.0 does already allow C++ developers to create custom components by subclassing QQuickItem [doc.qt.nokia.com] or QQuickPaintedItem [doc.qt.nokia.com]. However, the built-in components (like Rectangle [doc.qt.nokia.com], etc.) are not exposed to C++ and hence cannot be extended/re-used, and also some users feel that in general more C++ convenience API could be provided.
  • Full C++ API (should have been better named: “Dedicated C++ Front-end API”)
    first-class support for instantiating Qt Quick elements and populating the Qt Quick scene graph directly from C++, without using any QML – potentially allowing C++11 lambdas (or a custom signal/slot based solution) instead of JavaScript expressions for property bindings
    Note: Qt Quick 2.0 does already provide some C++ API for manually populating the scene graph through QSGNode [doc.qt.nokia.com], QSGGeometry [doc.qt.nokia.com], QSGMaterial [doc.qt.nokia.com], etc. However, some things – like instantiating built-in components – is not possible without passing around at least small snippets of QML, and no clean C++-only alternative is provided for property bindings (one of the things that make Qt Quick so powerful), and altogether some users feel that the existing C++ scene-graph API should be either expanded, or complemented by a different one (e.g. declarative, but still native C++) to make it a “first-class citizen” alternative to the QML “front-end” for Qt Quick.
  • Optional V8 Dependency
    support for building & deploying Qt Quick without the V8 engine for applications which don’t need any of the JavaScript-depending features
  • Graphics View Component
    a Qt Quick component providing similar massive-data-visualization functionality as the QWidget-based QGraphicsView (including things like BSP tree indexing of items, collision detection, …)
  • some other improvement/add-on (specify in comment section)
  • nothing – I’m happy with what Qt Quick 2.0 (to be shipped with Qt 5.0) provides
  • nothing – I don’t like Qt Quick altogether, I’d like to see more resources put into improving other parts of Qt

.

Other things which have been requested before in various places, but which I missed at the time when I created the poll (if applicable to you, select “some other improvement/add-on” in the poll and specify by leaving a comment):
.

  • Sandboxed Mode
    Ability to safely run QML files from non-trusted sources, e.g. for using Qt Quick as a Powerpoint replacement.
    Note: For an idea of what QML makes possible for “presentation” use-cases, see this labs project [labs.qt.nokia.com] .
  • Better Model/View Support
    More convenience for creating QML views for complex custom data models implemented in C++.

————————————
[Disclaimer: This poll does not have an official status of any kind. I am just a fellow Qt user myself, and the results of this poll will be for everybody’s information only. Those contributing to Qt (or their respective employers) decide for themselves what to work on/what to prioritize. Everybody is free to contribute to Qt thanks to Open Governance [labs.qt.nokia.com]...]

19 replies

April 28, 2012

c++freeloader c++freeloader
Lab Rat
20 posts

@jdavet

I appreciate you putting together this poll. The topic items seem fairly inclusive of various things people have been talking about. Thank you!

April 28, 2012

broadpeak broadpeak
Lab Rat
361 posts

As I see here: the desktop and c++ lead the poll.
IMHO: the QML/JS line exists only for (Nokia) mobil, this is a minority in the whole Qt development.
But the majority use the Qt in multiplatform desktop c++ applications.
Probably, this is because, Qt has C++ dekstop origin…

April 29, 2012

tbscope tbscope
Lab Rat
26 posts
broadpeak wrote:
As I see here: the desktop and c++ lead the poll. IMHO: the QML/JS line exists only for (Nokia) mobil, this is a minority in the whole Qt development. But the majority use the Qt in multiplatform desktop c++ applications. Probably, this is because, Qt has C++ dekstop origin…

Is this so strange?

It almost seems that most people do not understand the reason and origin of Qt anymore.
Qt is (was?) a cross desktop C++ api.
It now becomes a very limited platform for creating flash/html5 like apps and games (that’s my opinion of course).

I do not mind that the QML capability gets added.
I do greatly mind that bigger parts of Qt need to suffer from this.
I do not have the money, I do not have the knowledge and I do not have the time to turn this around. I only have my voice and passion for Qt. I’m very sad and deeply disappointed that Nokia steers Qt in the current way.

However, I would at the same time like to invest time in QML with the Raspberry Pi as I think on this platform it can be a nice tool.

 Signature 

 

April 29, 2012

ayya ayya
Lab Rat
1 posts

> some other improvement/add-on

Easier connecting of advanced QAbstractItemModel to QML.

April 30, 2012

Brandybuck Brandybuck
Lab Rat
4 posts

I wouldn’t mind QtQuick so much, if it weren’t for the extreme awkwardness of communicating with the backend. It’s almost like Qt is deliberately discouraging the use of C++ anywhere.

May 1, 2012

aalpert aalpert
Lab Rat
44 posts

It agree it would be nice to see what people are thinking in the community. I’d just like to annotate with some points on the scope of these options (very important for anyone who wants to actively prioritize something by contributing). This might also provide some insight on how realistic it is for these to happen by 5.1.

jdavet wrote:
  • Desktop Components

Everyone agrees this should be done, it fits into the QML picture well, and there’s a labs project already. If a common API or architecture can be achieved (even a de facto one by convention) then per platform implementations shouldn’t be too hard.

jdavet wrote:
  • Generic Theming Support

Already multiple labs level projects, http://qt-project.org/wiki/QtDesktopComponents and http://codecereal.blogspot.com.br/2012/04/qml-themingstyling.html . Everyone also seems to agree this should be done as part of QtQuick, just that no-one has had time to do it.

jdavet wrote:
  • Binary QML

Already done ;) . The only thing missing is allowing the compile phase to be run separately to instantiating the scene, so that the binary data can be stored. This extra step wouldn’t be in conflict with any existing QML direction, but no-one has gotten around to it.
jdavet wrote:
  • Expanded C++ Component API

  • This one is big. Not just in terms of relative furor, but in terms of the work involved too. For UI elements we have usually found the ideal QML API to be different to the ideal C++ API, and for the QtQuick UI primitives we have been focusing the first several years on just getting a good QML API. I’m not even sure we’re done with that challenge.

    Creating an adjacent C++ API sharing the same implementation without causing drawbacks for one or both APIs is not theoretically impossible. But it will be tough, and there’s a lot of work involved. I don’t really know how that would look. Eventually, when the QML API is finished, core QML contributors will probably start to tackle this problem. But I can’t see visible progress being made by 5.1, there’s just too much to do.

    jdavet wrote:
    • Full C++ API (should have been better named: “Dedicated C++ Front-end API”)

    Basically a subset of the last one. Once C++ APIs have been developed to allow that sort of fine control from C++, basic instantiation and manipulation should come for free.
    jdavet wrote:
  • Optional V8 Dependency

  • Plausible, but it’s not a clear usecase. You’ve thrown away much of QML by removing full JS bindings even if we still allowed optimized bindings. While simpler than adding a C++ API, that sounds like the correct solution for this usecase.

    jdavet wrote:
    • Graphics View Component

    Interesting idea. I haven’t heard of this one before, so I don’t know if it’s something that should be done by QQuickCanvas (as a ‘better’ QGraphicsScene/View) or whether there should be a separate element for this more specialized usecase. A clear usecase or a labs-level prototype might be necessary to convey this idea effectively.
    jdavet wrote:
  • nothing – I’m happy with what Qt Quick 2.0 (to be shipped with Qt 5.0) provides

  • QtQuick is still very young – I’m quite suspicious of anyone who says this ;) .
    jdavet wrote:
  • Sandboxed Mode

  • This is a good idea that should be straight forward. All you need is a network access manager that denies loading external resources (and xmlhttprequest), and a strict limit on the C++ plugins that can be imported (e.g., only allow “QtQuick 2.0” to import C++ plugins).

    jdavet wrote:
    • Better Model/View Support

    This one’s already on my list as a future research project :) . Very ill-defined scope at the moment though.

    jdavet wrote:
    [Disclaimer: This poll does not have an official status of any kind. I am just a fellow Qt user myself, and the results of this poll will be for everybody’s information only. Those contributing to Qt (or their respective employers) decide for themselves what to work on/what to prioritize. Everybody is free to contribute to Qt thanks to Open Governance [labs.qt.nokia.com]...]

    This disclaimer explains the official way to prioritize things – contributors all get to decide for themselves. Becoming a contributor is an easy way to advance many of these forward (well, easy if you have C++ skills already). Commercial customers should be able to influence what Digia prioritizes via separate channels.

    May 1, 2012

    MStormO MStormO
    Lab Rat
    4 posts

    While polls are definitely useful for knowing what people want, it’s not how the decisions are made in Open Governance. Doers (active contributors) get to decide what is done, how and when. So, if you want to affect the direction of Qt, pick up your battle-axe and get crackin’ on your contribution. Do not expect others to scratch your itch for you.

    That said, the perfect opportunity for affecting the direction of Qt is to participate in the Qt Contributor Summit, where Maintainers, Contributors and Sponsors gather to discuss where we want to take Qt for the next release(s). Signup for the event is here http://qt-project.org/groups/qt-contributors-summit-2012/wiki

    May 1, 2012

    sfabry sfabry
    Lab Rat
    44 posts

    Better Model/View Support

    May 1, 2012

    tbscope tbscope
    Lab Rat
    26 posts
    MStormO wrote:
    While polls are definitely useful for knowing what people want, it’s not how the decisions are made in Open Governance. Doers (active contributors) get to decide what is done, how and when. So, if you want to affect the direction of Qt, pick up your battle-axe and get crackin’ on your contribution. Do not expect others to scratch your itch for you. That said, the perfect opportunity for affecting the direction of Qt is to participate in the Qt Contributor Summit, where Maintainers, Contributors and Sponsors gather to discuss where we want to take Qt for the next release(s). Signup for the event is here http://qt-project.org/groups/qt-contributors-summit-2012/wiki

    Or how to keep the voice of the little open source desktop developer quiet.

    I don’t understand your post at all.
    The only way I can voice my opinion is through these forums/blogs and polls.

    I can’t attend your contributor summit. I do not have the right credentials, I do not have the time, I do not have the money to travel and the amount of people that can attend is limited.
    I can’t help with writing core parts of Qt. I do not have the knowledge and I do not have the time. Did you know I’m a user of Qt not a developer? I use Qt to make my daily work easier.

    Tell me how I can not interpret your post as anything else as “get bent” ?
    There are few things I can’t stand in this world, one is unfairness. You are unfair!

     Signature 

     

    May 1, 2012

    Robin Burchell Robin Burchell
    Lab Rat
    21 posts
    tbscope wrote:
    I don’t understand your post at all. The only way I can voice my opinion is through these forums/blogs and polls.

    Nobody said you can’t voice your opinion. The point being made is that code doesn’t come out of thin air, it requires people to actually work on it. As the open source developer you profess to be, surely you understand that, so I won’t go into too much detail.

    So, assuming we can agree that for code to materialise, it needs developer time. There’s a number of different ways to get developer time. I’ve covered these elsewhere, but here’s a rough list:

    • do it yourself
    • pay someone else to do it for you (Digia, other consultancies)
    • hope that you find someone else that is willing to do one of the above

    I’m perfectly happy for you to be in category #3 on that list, I really don’t mind. But you need to adjust your expectations as to how likely it is that someone is going to pay attention to you and do what you want when you’re offering nothing but opinions.

    Opinions don’t pay engineer’s salaries, add features, or fix bugs.

    Now, that doesn’t mean that your complaints may not be valid – I don’t think anyone here has said anything like that – but it does mean that they most likely won’t get the priority you think they deserve.

    Marius was pointing out – quite rightly – that Qt is a meritocracy. A do-ocracy. A community of people who work to improve Qt together. If you’re here because you’re getting something for ‘free’, then you’re lucky that open source allows for that to happen. It just doesn’t mean anyone has to pay attention to you.

    Finishing with a quote from Linus Torvalds, who said it best: talk is cheap, show me the code [lkml.org].

     Signature 


    http://rburchell.com

    May 1, 2012

    Robin Burchell Robin Burchell
    Lab Rat
    21 posts

    Something worth addressing seperately:

    tbscope wrote:
    I can’t help with writing core parts of Qt. I do not have the knowledge and I do not have the time.

    Writing Qt is pretty much the same as writing any other code. There’s nothing about it that makes it special, or magical, apart from your preconceptions. Sure, there are somewhat strict quality standards (meaning you need to write tests to prevent bugs from reappearing etc), but many other projects have these, and they aren’t so hard to understand.

    What’s more is that there are plenty of people around the project who will more than happily help out if you want to work on something – anything. You’re welcome here.

    “I don’t have the time” – well, I can understand that to some degree. The work I do on Qt is done in my own free time, too – I’m not paid for it. But Qt as a whole is greater than the sum of its parts: the more everyone chips in a little, the more we get done as a whole.

    Finally, you’ve got to admit that there’s something cool about thousands of developers and millions of people worldwide using code you wrote, no matter how small.

     Signature 


    http://rburchell.com

    May 1, 2012

    Andre Andre
    Robot Herder
    6295 posts

    I’m glad to see this poll appear. It seems way more balanced than the previous one. It is rather limiting though, in the sense that you can only select one item, while I think more than one item on the list is important.

    I voted for the Desktop Components. This labs project, already demonstrated at last years Contributors Summit, really deserves more attention. However, I think that should be in the context of a wider effort to make components more compatible in terms of API across the range of platforms.

    Model/View is also of prime importance, I think. However, I think this cannot stand separately from a re-thinking of the current C++ model view classes. This is a big task to do right, I think.

    I think it should be a goal that at least the components become easier accisible from C++, but I understand the need to stabilize them first before freezing the API by making them public. However, being able to compile-in QML in binary form and get rid of the V8 engine if you want would be very nice. If only because it would make distribution to Apple devices and systems easier. Yes, you loose features in QML if you do that, but those that can live with that really benefit in terms of cross platform compatibility and distribution file size, as well as in startup times.

     Signature 

    Looking for Qt developers to join our team @ i-Optics: https://qt-project.org/forums/viewthread/25393/

    May 2, 2012

    cor3ntin cor3ntin
    Lab Rat
    1 posts

    Hi.
    I would like to know if there are any ongoing work to use ANGLE (http://code.google.com/p/angleproject/) inside the QDeclarative module, this topic seemed the right place to ask.
    It’s a feature I really like to see.
    On some windows computer, opengl is not supported ( mostly because the drivers are not installed or outdated) but directX 9 is supported. So ANGLE would be a way to support QML 2.0 on most of the windows desktop out there.
    If not, is it possible to have a quick evaluation of how much efforts this would cost ?
    Thanks !

    May 4, 2012

    MStormO MStormO
    Lab Rat
    4 posts

    @cor3ntin:
    There has been some talk about it, but as far as I know, no one has yet experimented with it.

    Feel free to do some experiments and report them on the development mailing list, which you will find here: http://lists.qt-project.org/mailman/listinfo

    May 6, 2012

    friesoft friesoft
    Lab Rat
    3 posts

    1.) Desktop components

    but PLEASE focus on making it possible to have the SAME api for ALL components – at least for those components which are generic on all platforms.

    Example: I don’t want to write 3 Qml Uis for Windows, Linux and OSX just for supporting all of them – the platform desktop components should take care about everything for me by just including something like:
    import org.qt.qml.desktopcomponents;

    Page  
    1

      ‹‹ ZX Spectrum anniversary      Older developers and the market... ››

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