Rumour: Nokia to be split?
@mlong: Is that “disagreement” of the masses with my point the reason my thread about Qt’s commitment to C++, that is buried in this obscure portion of the forum, has more views and more thumbs up than the announcement of of Qt5 Alpha, which is displayed all over the Qt project site and also has a day head start?
Surely, I agree that many programming gurus disagree with me, and indulge in the unnecessary mixing of technologies when a single one suffices. The point of the matter is – QML is good for small, toy apps, and as the number of custom elements and logic grows, it becomes an ugly and tedious task to design C++ elements and interface them to QML. At this point, developing any SERIOUS (and I mean SERIOUS) application in QML is UNTHINKABLE, not because it is not possible, but because it is not worth the effort.
So you are left with the dilemma – spend tedious efforts on gluing your C++ objects to QML or spend tedious efforts on making QWidget look adequate to the time we live in, and not like last century (LITERALLY) application. Well, isn’t the point of Qt to make development easy and as many of the people here like to call it “cute”? This is not cute at all, it is straight UGLY.
After those few points, I hope you DO UNDERSTAND why Qt needs a modern native GUI API, because this is what Qt lacks and the implementation of which will contribute to Qt SIGNIFICANTLY.
I EMPLORE you, get in contact with those who manage the front page, and add in a little poll in a place that it is visible to people, something like:
Does Qt need a modern C++ GUI API?
2 – Yes, I’d like the option of 100% native development without being left behind with a last century GUI API
This way we can get some solid numbers on what developers actually want, so Qt development can focus on what people want to use, not what Nokia thinks we must use. It is only fair.
Ok. Here you go. [qt-project.org]
To make sure you didn’t feel like I was trying to slant the results, I even left your original wording in place, though I don’t feel it’s exactly “neutrally-worded.”
Don’t mince words because it’s not on the front page. This is a good as polls get around here.
Well, it still beats nothing, but I think it will not be that indicative of what users want, since most people who visit the lounge are Qt insiders, which seem to conform themselves to accept corporate decisions as correct. At least there is hope that some of them might afford honesty in a more anonymous form.
I’m tempted not to comment on the “Qt insiders” aspect of it, because it’s a pointed comment. However, this is not some kind of conspiracy. You’d probably call me a “Qt Insider” but I have no strong ties to Nokia. I’ve just been using the Qt Toolkit since 1998 or so. Since version 1.2. My use of Qt predates Nokia’s involvement by a very long time. I’m a fan.
I use it because — in my humble opinion — it is the best toolkit for what I want to do. It makes development relatively pain-free. I can do cross-platform desktop development, and I can do mobile development to some extent. I was a pure C++ developer with Qt for many of those years.
However, I’m proud to have had the opportunity to write the MeeGo AccuWeather app which Nokia liked enough to bundle on the N9. It’s a piece of software that I worked extremely hard on and put a lot of love and effort into. Not just because it was my job to do it, and not because of any corporate demands (aside from my company saying “Hey, we should write an app for this new MeeGo phone thing), and not because of any pressure or demands from Nokia. Does this make me a “Qt Insider”? You’d probably say so, but I say I’m just a passionate Qt Developer who has the fortune to write software that I’m proud of. I’d venture that most of us who choose to use Qt are that same way.
Now, when I was first evaluating how to write this app and deciding what technologies to use, QML was just becoming available. And, after a little bit of guidance and instruction, I looked at it, decided that it was straightforward enough to do what I want to do, and jumped in and used it. I didn’t get pulled in screaming and hollering. I didn’t anguish the fact that I had something new to learn. I took it as an exciting new opportunity to push forward and do things that I couldn’t do before. I didn’t have to throw out my C++ knowledge. I just picked up some new tools and skills. That’s part of being a developer. That’s part of having a passion for one’s trade.
And the greatest part is that I thoroughly enjoyed it. It was simple to lay out my interfaces. It was easy to make changes. It was easy to change the entire look and feel of the app on the fly. It forced me to write solid code which separated the business logic of my app from that of the interface.
A good way into the development of the app, I got a stack of notes from some designers in our company which requested some major changes to the look and feel and functionality of the app’s interface in order to bring it closer in line with some other apps we’ve made across different platforms. Since I was using QML, I was able to make every change they requested in just a day or two. Could I have done that with C++? Probably, but having done app development for more than a decade using QWidgets and QGraphicsView, I can at least attest that my changes were far easier to make with QML than they’ve ever been with the other technologies. It would have taken longer than a couple of days. In short, it just worked for me.
The app isn’t insignificant. It’s about 6000 lines of C++, and about 2000 lines of QML. It took months to develop and refine. It went through about 3 or 4 major overhauls along the way.
All I can say is that in my personal experience. I didn’t feel restrained by the use of QML over C++. I personally felt empowered and was given flexibility which I wouldn’t have had otherwise.
You can call me some kind of Nokia Shill if you want, but that’s your own misperception if you do. I’m just saying all of this to counter your assertion that QML is impossible to use in a larger application. It is possible and it’s not a Big Deal.
I don’t give a farmer’s flip about the politics of Nokia. Or what they want to do with mobile. Or MeeGo. Or Symbian. Or Meltemi. Or Windows Phone. Or whatever. Because honestly, Qt has momentum which far exceeds anything that Nokia can easily control. It has had that momentum from its origins with two developers at TrollTech, and it has carried on through Nokia’s ownership. And it continues to be carried forward into Open Governance. All development nowadays is completely open and completely transparent. It a meritocracy of sorts. QML has merit, no matter how much you despise it.
Now, you can speak for yourself and however many unspoken masses you perceive yourself to be representing. I wouldn’t dream of trying to censor you or deny your right to. But, I’m just saying that you seem to have a bad case of knocking something without trying it.
Calling the people who disagree with you “Insiders” or something along those lines is a cheap shot, and is self serving in the sense that it’s a easy and tawdry way to discount and brush aside anyone who might make a dissenting argument. Make your points, but make them fairly. Don’t resort to name calling, and don’t draw artificial lines.
Hehe, take it easy, you have put quite a lot of effort in passionately justifying QML, and on many of your points I agree. But you, like most other people seem to miss my point, I have no problem, no quarrel or whatsoever with QML, at least a dozen of times I’ve stated it is neat and it has its application. And I honestly don’t see a reason for you to defend QML, I don’t want it dead in favor of C++, I want C++ NOT dead in favor of QML. There is a huge difference between what I want and what you act like I want, and as illogical as this is, there is a good, reasonable and logical explanation.
The human mind is an area I have taken great interest in and dedicated far more time than I’ve dedicated to programming so far. What I imply is I know the influence communities have on the perceptions and convictions of people. I don’t mean to say that you or anyone else does not have a personal opinion, and instead conform to Nokia’s views, I merely imply that being a member of a community is equal to taking a side, and quite often community members support each other because they are a community, for matters they would not support each other if they were not a community, simply because it is the right thing to do. It doesn’t even have to be on purpose, the human mind is like an iceberg, and the conscious mind is just the tip of it, what you perceive is just the product of lots of processes that occur in the subconscious without ever crossing the threshold of awareness. It all boils down to objectivity, and when communities are involved, objectivity is often clouded.
It is like a lesser version of a family, family members will often protect each other knowing that they are wrong, often remaining blind to a fact, on purpose or subconsciously, and while you are in that situation often you cannot even tell that you are biased and look at things through a distorting prism, which is only apparent to third person observers.
So if you’ve come this far, perhaps you’ve realized by insiders I didn’t mean just the trolls, because lets face it, it is their job, whether they are passionate about it or just do it.. is entirely their option. By insider I mean someone that is passionate, someone who looks at Qt as more than a lump of code, a piece of technology to use, a dedicated community member. That is what clouds the judgement, not being a member of the development team. And it doesn’t have to be on purpose, most of the times it is beyond your control and oblivious to your perception.
Qt Quick is far more than just QML, it is a paradigm, a programming concept, whose benefits I DO SEE and ACKNOWLEDGE, that is why I’d like to see those benefits available natively as well, QML is not the essence of that idea, it just happens to be the frontend interface it is exclusive available through. I don’t mind QML, I mind the downplaying of C++ QML turns into a vessel of, which could be avoided if Qt Quick opens to C++ natively.
And last but not least, it doesn’t take people to conspire for a conspiracy to take place. Any group of people is a super-organism on its own, a higher order entity we are mere cells of. Most of the people I know are unaware that super-organisms have a life and will of their own, and they make plans and decisions and execute those through what appears as random, unrelated actions from our perspective. It takes lots of time and skill to be able to abstract your mind to a perspective high enough to encompass the processes that take place above us and apparently out of our control, but the fact is there is no such thing as random, everything happens for a reason, even if it slips out of the range of perception. I see an unmistakable pattern here and I am concerned with the direction its “random” iterations will lean into.
Ok, so that’s well and good. I’ll grant you that you are not saying that QML should go away.
However, what is the specific change that you are trying to effect? Is it to spur someone in a “position of power” to step up and say in a godlike, melodramatic voice “Behold! Here is the plan for implementing the C++ interface to Qt Quick.” If so, I don’t know who’s going to do that.
If you and others are truly passionate about having those changes made, then the best solution is to organize and produce. While you might say “I’m only one person and don’t have a chance in hell of making that kind of difference” someone has to start somewhere. Even if it’s a wiki post or a thread soliciting ideas or requests for comment on concepts on how that can practically be implemented. It doesn’t have to be a final solution. It doesn’t have to be solid. It just has to be something that gets like-minded people interested in exploring a solution. If that can get a toe hold, then the possibilities are endless.
I fear, though, that just being a mouthpiece yelling for something to be implemented is counterproductive. Your arguments are well-spoken, and aren’t necessarily falling on deaf ears. The problem arises in the perception that there are demands without suggestions.
In an odd way it’s not that different of a scenario than when people post a chunk of undocumented source code, or pose a vague question on the forums and then demand: “Tell me what to do!” Without something that has some semblance of a seed of an idea of how to proceed, there’s not a lot that can be done to move along productively.
I have the capacity to somewhat mimic QtQuick through a C++ frontend. And if I do it, I can only do it using the old GUI API, I don’t have the capacity to hook it into the SceneGraph.
What I imply is the people who designed the SceneGraph and QtQuick, those are the people that should open those to a native C++ frontend, not because I want to but because it is the right thing to do (that’s why I want it), only they have the advantage of not simply knowing the API structure but being the minds behind it. For anyone else it will be exponentially harder to do the same, and without putting a major workforce behind that endeavor, an individualistic effort to do it is UNTHINKABLE.
Do you really think if I could do it I wouldn’t have done it already? When I need something done I do it if I can, that is why I bothered learning how to play several musical instruments, that is why I learned how to record and engineer audio, that is why I learned graphics design and 3D, and that is why I am learning programming now, I like creating, but I know my limitations, I have looked at the source code and I am well aware I am not up to that challenge. As I’ve stated in another thread, it will probably have it easier doing it all from scratch and I have actually been building on it, but it will take many months to reinvent that many wheels. Heck, if I had a million Euro lying around, I’d immediately hire professionals to implement a state of the art API with the best possible hardware integration and many fail safe fall backs to make it as versatile and accessible as possible. Developers need a good and up-to-date C++ framework, and as “luck would have it” Qt comes closest to that description but it is drifting away from it. So hopefully you understand my motivation.
I’m not saying that you, personally, should do it all yourself.
I’m just saying that if those who would be the preferential people to do it aren’t doing it, then someone should step up and try to move forward with some discussion to see how the crowds could apply their distributed knowledge to it.
But the unfortunate answer is that most likely those that you would will to do it have already done their design work and have already started moving in that direction and are unlikely to step back and refactor and redesign things. I seriously doubt that yelling with any loudness of voice is likely to change that.
I completely understand your passion, but as a bystander, I fear that the approach that is being taken is more than likely to alienate those who could help, rather than endear them to your cause.
And with that, I think I’ve probably said all that I have that’s worth saying…
Do you really think that volunteers can MOVE Qt? This is not fixing bugs and implementing minor features, this is something huge.
I direct your attention to this image:
Do you see the ratio between volunteer contributors and the trolls (now presented as Nokia for some reason)? Heck, even Digia, which supposedly has the capacity of providing commercial support is just a drop in the sea.
I know Qt has the status of an open source framework and that people are free to pitch in, and many invitations have been done in this spirit to people, but even if all the volunteer contributors to Qt pitch in on this challenge I don’t see it happening. Not because those aren’t good and proficient programmers, but because of the sheer volume of code they have not designed and are not “intimately” familiar with.
Going through other people’s application code and going through other people’s API code is a totally different thing, I’ve experienced that first hand.
Interesting graph, but I’m wondering how a more recent one would look. It is not fair to expect that non-nokians will have a large number of commits only a few weeks after open governance going live in week 43. Note that the Qt 4 branch opened up on open governance even later, and that is where Digia is putting most of its effort.
Well, they’ve contributed hundreds of error corrections for Qt 4.8 [digia.com] in the past six month and although they are contributing to Qt 5 as well, they are still placing substantial R&D resource power on the development of Qt 4. [digia.com].
For those who have missed they’ve also released an article [digia.com] on how to create Windows 8 Metro-style applications using Qt Quick (QML) and the Graphics View and Animation Framework (C++).