Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Does Qt need a modern C++ GUI API?



  • This is not about the community, their concerns and their undisputed validity and this is not about all the people who have voted in favor of native development, this is solely about your opinion and your way of expressing it I do not agree with and I do not support, not theirs (and if you are out for yet another personal opinion I think that it might be possible that some people who have voted as you do not either); criticizing you does not automatically mean criticizing them. And I do support native development too, have you forgotten? We already have had this, haven't we?

    You are allowed to have your opinion as I am allowed to have mine.

    This does not mean that the request for native development is disregarded or dismissed for no reason or that you are beeing ignored (you have been given the reasoning more than once), that there should be no native development (you've been confirmed that any substantial community efforts will be supported more than once), that you are not allowed to have your opinion or that I express a personal dislike other people will have to take the rap for; it does not even mean that I’m right and you are wrong – it just means that I have a different opinion on points you've raised, and that I do not find your arguments suitable enough to convince me of the contrary. People disagree ever and anon - that's life, which also makes you not always get what you want. But we already have had this as well, haven't we?

    Yes, "...people that ask nicely get the same response as those, who have gone beyond the point of being nice...", no matter whether you are "...mellow.." or "...edgy...", because a "...truth is a truth...", as you have said.

    I also have a different opinion on respect, which is granted by default and unconditionally, as it is fundamental to any interpersonal communication and social interaction. It is reputation which has to be earned, not respect; disagreement does not entitle anyone to lose respect or temper. This discussion has ended as far as I am concerned, because it has passed the point where it is beneficial to anyone.



  • You just don't know any better, do you? This is not about me, and it will not become about me regardless of your ill conceived attempts to make it so. Furthermore, I am pretty sure I can recall you and a few others disregarding the validity of this poll and its results, so if there is a quality you are proving right now, it would be spinelessness and being double-faced. First the poll was, in your own words "biased", then it was, again, in own words, "with insignificant participation", so it wasn't really valid, because "passively recruited or self-selective surveys are generally never representative" and it is "statistically wrong".

    So let me ask you, how your desperate attempts to dismiss the validity of the poll can be considered regarding or respecting it?

    And now, it is all about despicable me, "campaigning against QML" and claiming that "Qt5 is completely QML" and that "C++ is no longer a development language for Qt5", and somehow even thou you yourself claim to want it, you don't think Qt should get a native API because I didn't ask about it the way you think I should have? Funny how you don't stand up for that native API you claim to want, and the entire time are entirely dedicated to downplay me, all based on your personal preferences?

    Well, feel free to create a forum for "Lukas Geyer's personal preferences", and play "virtuous knight on a white horse" there, because last time I checked, this forums was about Qt, not about your "ideals" and not about discriminating against others, who don't share them!

    Furthermore, I don't give a broken penny about what you think, and that is not because I don't respect you, but because I respect the right of people to have their own views and express in their own way, and that includes you. You say that "respect is granted by default and unconditionally" and yet you totally disrespect my way of thinking and expressing, which is technically hypocrisy. So, PLEASE, this is not the place to preach your philosophies, this is a forum about Qt, and this is a thread about the need of a modern C++ GUI API, so if your claims that you want it too are true, then stand up for it IN YOUR OWN WAY like I do in my own... or get lost... If I ever find myself in need of moral lessons you will be the first to know, but if you feel that much about enforcing those, then feel free do it in person, but enough of your lame attempts to downplay the initiative because of your personal preferences, which do not belong here in the first place. And if you are spiteful enough to oppose what you claim to want just in spite of me, well that speaks out loud a lot about your qualities...

    All you try to do is take a thread that is FOR a native API and turn it into a thread AGAINST me, and if you are half as decent as you claim, you should be ashamed of yourself!!!



  • Hey mans you doing great job by developing Qt.

    But what the DUMB DECISION make improvment EXCLUSIVELY for QML. Guys realy WTF? You have new features like making 3D sound and this feature available only from QML. I write my game app on C++ and I wanna use QtAudioEngine but I cant!!! Look... u write feature on C++ and make it available in public only from QML. Are u serious? If so, Qt5 have PRIMARY LANGUAGE -> QML not C++, like utcenter say's.

    Oh maybe I too young and something don't understand, but, this is realy bad way...

    I see it as: create new feature on C++, and make it avalable from C++ and QML. Yes I need cool C++ framework with feature like QML.



  • I'm very disappointed that the new features in Qt5 are not accessible with C++.
    And yes, I know that you don't care about my opinion, I just wanted to express it.

    Anyway, thanks for creating Qt4, I like it very much and I hope it will still be maintained for a long time so that I can avoid to use Qt5... at least till all the new bugs introduced in Qt5 are solved.



  • Paradox in this situation that the new features is written on C++... damn, how this can happen?
    [quote author="Trino" date="1360964774"]I'm very disappointed that the new features in Qt5 are not accessible with C++.
    And yes, I know that you don't care about my opinion, I just wanted to express it.

    Anyway, thanks for creating Qt4, I like it very much and I hope it will still be maintained for a long time so that I can avoid to use Qt5... at least till all the new bugs introduced in Qt5 are solved.
    [/quote]



  • The decision certainly has been influenced by marketing trends.We are going to see a lot of programming oriented to smart phones and all those tiny devices in the future.Digia has certainly seen that and is trying to be at the right place at the right time.



  • Yes trends... but answer me on one question: why new features writed on C++ not available from C++? They have some things that make him technically not compatible with C++ programs? Or what?

    Looks like I asked several questions)))

    I wanna say: guys u can kill two rabbits, have good C++ framework, with feature like QML.



  • Qt has really satisfied many of my programming needs,but the decision has kind of pissed me off too.I do not know much about the whys of the decision,but one thing is sure:companies go after profit and they probably have found more in promoting QML,guess we should keep our eyes open for alternatives and never put all the eggs in one basket.Any way c++ is still there and we just need to keep looking for good frameworks and libraries that fit the job.



  • There aren't many alternatives to Qt, and I won't be far from the truth if I chance the "many" to "any"... There is the morally outdated GTK built on top of the horrendous GObject, there is the morally outdated wXwidgets and probably the most viable "alternative" - JUCE, which is actually decent but APIs are a little illogical and do not cover as much ground as Qt (even though it covers some ground that Qt doesn't), not to mention the rather "humble" documentation and hardly any educational materials available.

    There really aren't that many cross-platform C++ baskets to put your eggs into. You'd have to actually learn a few platform limited ones, with different APIs and potentially a different language, which is hardly convenient.

    Qt is far from perfect and in many aspects deeply flawed, but the sad reality of the situation is there is no comparable tool that is better or comes sufficiently close, which makes the leaning towards QML that much worse. That is why many developers find themselves extorted into adopting QML, because that is what Qt is focusing development efforts on and the alternative to Qt and QML is even worse than QML, which conveniently sits in the role of the "lesser, more digestible and appealing evil".



  • [quote author="utcenter" date="1357401855"]
    On the other hand, it is simply NOT POSSIBLE to write a Qt5 application WITHOUT QML. You can only use C++ to write a Qt4 application in Qt5, but almost all of the Qt5 specific innovations are exclusively accessible through QML, therefore, in Qt5 C++ is no longer the primary language for Qt development, but a language to extend the framework. C++ is optional, QML isn't - which one is the primary? [/quote]

    Can you give an example for that? Which functions are exclusively accessible through QML?
    QML is mighty, but not so mighty like the C++ Framework, I think. Somewhere was written, that C++ are the primary language for Qt, but I read it, when Nokia owns Qt. I don't know the plan of Digia, but if the C++ framework will be droped down, I will have to switch to HTML5...

    I also used another libraries like OpenCV and I cannot easily acess them through QML.

    [quote author="utcenter" date="1361286905"]There aren't many alternatives to Qt...[/quote]

    But for QML, the (better) alternative is HTML5.



  • [quote author="Serenity" date="1361352789"]
    Can you give an example for that?
    [/quote]
    Qt5 have new features like making 3D sound and this feature available only from QML. Can u show me please how use this feature from C++? I wanna use QtAudioEngine but I cant.

    Without using hacks... after that I can say QML is primary language.

    And like I say, what the dumb write features on C++ and make them available only from QML... maybe someone has "Woe from Wit"?



  • 3D sound? interesting, got a link?



  • [quote author="Thomas Zander" date="1361353747"]3D sound? interesting, got a link?[/quote]
    Use search... http://qt-project.org/doc/qt-5.0/qtmultimedia/audioengineoverview.html
    Excellent features that I cannot integrate in my game app on C++ ...



  • @hronom; you do realize you can combine QML and C++, right? Doing audio in QML while doing graphics and logic in C++ should be perfectly possible.
    Saying you can't use it in your game is wrong, you can use it, the question is if you want to spent time learning QML ;)



  • Yes I can go from one office in New York to another office in New York by flying through Ukraine.
    @Thomas Zander; do you realize that something wrong in this situation? Or its normal?



  • [quote author="Hronom" date="1361353124"]
    Qt5 have new features like making 3D sound and this feature available only from QML. Can u show me please how use this feature from C++? I wanna use QtAudioEngine but I cant.
    [/quote]

    :( :( :(

    But there are still so a lot of much other things, which are not working in QML.

    btw: Is that, what you are looking for: http://qt-project.org/wiki/QtAudio3D ?



  • In math you often have to change to a different domain to find a better solution.
    For example to convert a waveform to a fourier domain in order to fetch the frequencies.

    QML is a better domain, as it were, for many tasks that are of a more declaritive nature. Of which audio-playback is an excellent example.

    Its good to learn more languages, it gives you freedom to pick the right one for the job.



  • [quote author="Serenity" date="1361356800"]
    :( :( :(

    But there are still so a lot of much other things, which are not working in QML.

    btw: Is that, what you are looking for: http://qt-project.org/wiki/QtAudio3D ?[/quote]
    Oh thanks, I'll try that. But its looks like spike, than I have already in Qt5 this features writed on C++.

    @Thomas Zander; Oh I understand you... I just wanna say one thing, why need divide Qt on two parts?

    We have Qt C++ code part that available for C++ apps, and Qt C++ code part that available for QML.
    This is normal situation?
    Or maybe we can create framework that have Qt C++ part that available for C++ and QML apps. Looks like it be epic win, do you think so?

    Guys look here: I dont hate QML, I just say one simple thing, and i wanna that guys that creates this beautiful framework heared this thing.

    I don't have big skill in C++, but, for the first view of sources of backend QML, i think: why this guys do this divide? Oh I understand may be something technically not compatible with C++ apps, but if not, why you do this?



  • Having Qt do QML as well as C++ are two domains, they have different strenghts and weaknesses. The main reason for QML is because it is really really good at some things. Things that C++ is not really useful for. You'd have to write many classes and many many lines of code to do stuff that in QML takes no time at all.

    Stating you really want to write those hundreds of lines of C++ and you dislike you have to write QML instead, sounds a little like you are asking to use the hammer you know so well instead of learning a new tool that is much better suited to the task.

    Damn right Qt is divided into those two domains, and its a great thing too since they are for different things and you likely will keep using both of them in apps.

    So, in short, because its too painful to use C++ for some things, we invented QML to do it easier. Thats why we did this.



  • @Thomas Zander; So you offers me to that thing: from my code on C++ use QML to speak with C++ QML backend, right?

    Next that you can say: "You write game app, right? So why you dont write this app on C++ use QML its easy..." So you already exposed obstacle Qt integration into an existing C++ project.

    You say somthing like this "in C++ I wright many lines of code to do stuff that in QML takes no time at all". So you wanna say me go rewrite my game code on QML or shut up?

    Next thing you can say “sorry Qt not for you, go choose another tool”? Uh guys and all this for bright future of QML?

    Ok, you divide on two parts, but I'm say that you do double work to conatin two way of Qt, instead of conatin one way.

    And ONE WAY its -> Qt C++ framework with feature like QML, where all features available on C++ and QML. User can decide what to use, an its be good freedom for users.

    I repeat one thing: you ALREADY created new features on C++, so make them available from C++.
    User must decide use C++ or QML.



  • @
    You say somthing like this “in C++ I wright many lines of code to do stuff that in QML takes no time at all”. So you wanna say me go rewrite my game code on QML or shut up?

    Next thing you can say “sorry Qt not for you, go choose another tool”? Uh guys and all this for bright future of QML?
    @

    You are putting words I did not say in my mouth, please don't do that.



  • [quote author="Thomas Zander" date="1361355691"]@hronom; you do realize you can combine QML and C++, right? Doing audio in QML while doing graphics and logic in C++ should be perfectly possible.
    Saying you can't use it in your game is wrong, you can use it, the question is if you want to spent time learning QML ;)[/quote]
    From my game app on C++ I need to speak with QML part of my game, that QML part of my game speaks with C++ Qt backend, is this right? Or I'm now putting words in your mouth?

    One more repeat one thing: you ALREADY created new features on C++, so make them available from C++.



  • @Hronom: Did you try it with QtAudio3d? I don't want to use it, I am only interested, if it works

    @Thomas Zander: QML doesn't have really much opertunities as in Qt4. And if it's not easy to do it in QML, it will never work in QML, which means, that QML is a language with limits, but you can implement very fast simple widgets. That's the reason, why I prefer C++. I will learn QML, when I got time for that, but now, I only developping complex desktop applications for Linux, Windows and Mac and need their styles.


Log in to reply