Slashdot Mirror


Qt 5 Alpha Released

After nine months of effort, Nokia's Qt Lab has announced the availability of the alpha release of Qt 5. Goals achieved for this release include a new platform abstraction layer, a re-architected graphics stack, and the inclusion of Qt Quick as a first-class citizen (hitting version 2.0, and using Google's V8 Javascript engine to boot). Quoting Lars Knoll: "'Qt 5 should be the foundation for a new way of developing applications. While offering all of the power of native Qt using C++, the focus should shift to a model, where C++ is mainly used to implement modular backend functionality for Qt Quick.' I can say that we came a good way closer to this vision with Qt 5.0. The model is working nicely on the embedded side of Qt where UIs are full screen. On the desktop, we have laid most of the foundations required for this model, but it’ll take us until 5.1 or 5.2 to really take this into use." Nokia has posted the the source and detailed release notes on the Qt wiki.

35 of 117 comments (clear)

  1. Nokia's fate? by rrohbeck · · Score: 2

    What's going to happen with Qt if/when Nokia goes down the drain and gets swallowed by (probably) Microsoft?

    1. Re:Nokia's fate? by Anonymous Coward · · Score: 3, Informative

      In the event Qt Labs/Nokia don't maintain the Qt framework anymore the code gets passed over to the KDE developers. I believe the code would then be either under the BSD license of a dual BSD/GPL license. You can find the details here: http://www.kde.org/community/whatiskde/kdefreeqtfoundation.php

    2. Re:Nokia's fate? by harry1701 · · Score: 5, Informative

      Then the KDE Free Qt Foundation kicks in: http://www.kde.org/community/whatiskde/kdefreeqtfoundation.php

    3. Re:Nokia's fate? by transmetal · · Score: 5, Informative

      They've made an effort over the past year to move Qt into becoming an independent project. See http://qt-project.org/ and http://wiki.qt-project.org/The_Qt_Governance_Model . In some respects, Nokia's already put all their eggs in Microsoft's basket (their abandoning of Meego and non Windows Phone mobile OSs), and it doesn't seem to have impacted Qt's development in any noticeable fashion.

    4. Re:Nokia's fate? by Enderandrew · · Score: 3, Informative

      Qt is open source. Nokia could make all future iterations closed source, and then open source version gets forked like OpenOffice and LibreOffice.

      --
      http://blindscribblings.com - Tasty pop-culture in conceptual fashion.
    5. Re:Nokia's fate? by noahwh · · Score: 5, Informative

      They've been moving resources around for a while now to ensure that QT isn't tied to Nokia's success.

      Commercial support contracts have been sold to Digia. They've been the drivers behind several patch level releases already, including 4.8.1 a couple days ago.
      The QT project has adopted an open governance model, with members outside of Nokia. They've moved their web presence off of Nokia's servers. They switched to LGPL licensing from QPL over a year ago.

      If Nokia diverts resources progress may slow, but QT is not going anywhere. It will almost certainly outlast Nokia.

    6. Re:Nokia's fate? by fast+turtle · · Score: 3, Informative

      Why not read the QT Promise?

      QT is under a dual development and the source code is held in escrow by the FOSS foundation to be released under GPL should QT Labs go under.

      --
      Mod me up/Mod me down: I wont frown as I've no crown
    7. Re:Nokia's fate? by Daniel+Phillips · · Score: 4, Informative

      Correct. I believe the QT foundation has a longstanding agreement in place to ensure that.

      --
      Have you got your LWN subscription yet?
    8. Re:Nokia's fate? by Daniel+Phillips · · Score: 2

      QT is already licensed under LGPL and GPL v3 which answers the question of who has the right to continue developing and distributing QT libraries. The answer is: you, me and everybody.

      Furthemore, there is an agreement in place the ensure that QT continues to be licensed under LGPL. Here it is. Additionally, there is an open governance framework in place to guide ongoing development, which frankly places the QT project head and shoulders above Android in terms of community engagement, open development and good citizenship.

      --
      Have you got your LWN subscription yet?
  2. Why? by Darinbob · · Score: 3, Insightful

    Why is everyone heading to this "everything is a web app" model? A scripting languages embedded into an app is find but it should be used for quick mods and customization instead of core functionality, and should be layered on top of the application and not the base that the application is built from.

    1. Re:Why? by Anonymous Coward · · Score: 5, Insightful

      You don't have a clue what you're talking about. QML greatly simplifies 90% of the UI development while making it significantly easier to target multiple devices with the same UI, regardless of screen size or aspect ratio. A desktop-focused, c++-based UI model is hardly the better way to do it.

    2. Re:Why? by Carewolf · · Score: 4, Informative

      QML2 is pretty cool. I had the same attitude to QML1, but QML2 is a pretty good language to program the GUI in, while doing still all the real work in C++. Essentially QML is to Qt Designer what LaTex is to Word.

    3. Re:Why? by SQLGuru · · Score: 2

      Because it's the closest thing to a true write-once / run-anywhere model that's working. A web app will run on the desktop, tablets, e-readers, consoles (Wii has Opera), phones (even many of the average-intelligence phones). Mac, Linux, PC. Sure, there are some browser issues, but those can generally be overcome by switching browsers when that is an option. I still think we need native apps, but not everything needs direct access to hardware or complex calculations that would call for it.

      The biggest problem with non-native apps is that they don't model the host environment -- but that's more about the designer being lazy than it is a technological hurdle (it isn't "easy", but it can be done). If a web app looked like Metro on MS devices and iOS on Apple devices, who would care whether it was a web app or a native app?

    4. Re:Why? by harry1701 · · Score: 4, Interesting

      Why is everyone heading to this "everything is a web app" model?

      Qt isn't going for web apps. It's going for Qt Declarative / Qt Quick. Just write some GUI apps with classic Qt and with Qt Quick, then you'll quickly realize how much more powerful it is to write GUIs declaratively instead of imperatively.

    5. Re:Why? by DoofusOfDeath · · Score: 2

      So what is the case for declarative GUI programming?

      I'm a big fan of pure functional languages, but it's not obvious to me why declarative languages are especially suited to GUI's.

    6. Re:Why? by Lussarn · · Score: 2
    7. Re:Why? by bertok · · Score: 4, Informative

      That's a perfectly valid question, and the answer is not obvious at first.

      When you come from a programming background, you have a very powerful hammer, and everything ends up looking like a nail, including GUIs. The problem with this approach is that you can never have either a non-programmer or a GUI tool help design your user interface. For trivial applications this isn't a problem, but it quickly becomes limiting on larger projects.

      Microsoft had an interesting hack to make GUI design work with imperative languages -- split class files. One file would contain only a strict subset of the imperative language that the GUI designer could handle, the other matching file would contain the real code. This solution was fragile and would often result in the designer failing to open. This was already half way there to a declerative domain specific language, because the subset of the imperative language that the designer coud parse forbade any control flow. I first had the "lightbulb" moment when I saw Microsoft's next-gen XAML designers, where they basically formalized the GUI language into an explicitly declerative document format with a strict grammar. It allowed more complex GUI designs with well defined parsers, object models, design-time appearance, etc... All the problems just vanished.

      This is by no means a Microsoft invention, declerative visual languages have always been more successful, flexible, and interoperable. A case in point is HTML, which is a purely declerative language, which has lots of advantages that has contributed to its success. Try putting yourself into the shoes of a search engine developer and imagine if instead of declerative SGML-derived pages, you had index imperative PostScript? Not just any old automatically generated PostScript intended for printing, but developer authored PostScript with as much complexity as a typical JavaScript library! How would you go about writing a designer for a language like that? You'd start by restricting the problem to some strict subset...

    8. Re:Why? by Darinbob · · Score: 2

      Not all computers are bigger and more powerful. Some computers are still relatively tiny, some need to pull back on the horsepower to save cost, power, battery life, etc. There is more to computing than desktops. Can people let their smart phones run all week without charging? Probably not and part of this reason is that no one bothers much with efficiency anymore.

      Now for programming familiarity you're right. However the vast majority of Qt programmers are probably far more familiar with C/C++ than with Javascript and web stuff. Maybe it'll appeal to management better though.

      I don't mind quick and dirty proof of concept, if done right. But markup languages doesn't seem to be the same thing. Proof of concept apps also have a big tendency to turn into a shipping apps...

    9. Re:Why? by msobkow · · Score: 3, Insightful

      Of course if you've never worked with a document description language like Tex, you probably won't grasp the significance of that statement.

      I like the C++ object model Qt uses. It reminds me of the "Elements" environment from the company formerly known as Neuron Data. I was surprised to hear they're still around, and there are still production applications written with it that need maintenance and updates because they're not ready to be retired yet.

      But Qt is brought up to date with modern C++ features like template programming; I don't know if Elements has been similarly reworked. GTK is a pretty nice layer as well, but it's a portable graphics layer rather than a graphics abstraction like Qt or Elements. You can write custom widgets in Qt or Elements and have them work on multiple platforms, sort of like Java/Swing for C++. I'm not so sure about how to do so with GTK.

      It was refreshing to see them being honest that it's not really going to be ready for production use until 5.2 or thereabouts.

      --
      I do not fail; I succeed at finding out what does not work.
    10. Re:Why? by bertok · · Score: 2

      Less than a minute of Googling later: Qt Designer's UI File Format

      Your counter-example to my point uses an XML-based declarative UI file format with a strict validating schema.

      I'm not sure what you mean by Interface Builder you mean the Apple tool, which uses .NIB or XIB files. Those formats are -- if anything -- closer to XAML than even the QT format, as they contain XML representations of the GUI document object model.

      As far as I can see, neither format supports imperative concepts such as loops or other control flow.

    11. Re:Why? by shutdown+-p+now · · Score: 3, Insightful

      So what is the case for declarative GUI programming?

      Describing UI in markup is plainly more convenient than writing verbose code to construct widget trees. And declarative property bindings are much more concise than the usual OO way to plumb together model and views.

      Basically, it lets you focus on writing code where it's the best way to solve a problem - in your model - and use a more convenient DSL (in the case of Qt Quick, QML for markup and JS for bindings) for view-related stuff and plumbing between the two.

    12. Re:Why? by Daniel+Phillips · · Score: 2

      It was refreshing to see them being honest that it's not really going to be ready for production use until 5.2 or thereabouts.

      Indeed. It's important to note that QT 4.x is already nice to work with, stable and mature. I would like to see QT foundation really take their time getting 5 right, there is no good reason to push it out in a hurry.

      --
      Have you got your LWN subscription yet?
  3. come on by Anonymous Coward · · Score: 5, Funny

    How can you start that sentence but not finish it thusly:

    "After nine months of effort, Nokia's Qt Lab has given birth to..."

  4. No. by AdamJS · · Score: 2

    When your core users are using your software SPECIFICALLY for desktop C++ development, bastardizing the software in some schizophrenic, hopeless pursuit of an area few of them want is quite the wrong way to do it.

  5. Well by AdamJS · · Score: 2

    On the desktop, it is an extremely fluid, extensible, quick yet powerful way of developing visual applications in a language that many love (C++).
    I would quite like it if I could build applications for the core mobile devices under that exact same setup.

    But that isn't what they are aiming for, and you're right, their sights seem set on irrelevancy and failure.

  6. Re:Focus on Mobile development by Nyeerrmm · · Score: 3, Informative

    My interpretation is that Qt Quick is not yet suitable for desktop use, while the 'old-style' C++ objects should remain as usable as they are now.

    While I'd love to see how Quick could help with improving my workflow, since I only work on desktop interfaces I guess I'll have to wait.

  7. Re:One or two Questions... by Bill,+Shooter+of+Bul · · Score: 2

    Its not just open source, its an open community. If it doesn't work for you, work with the community to change it to work for you. Its not rocket science. You can't blame people who are open to suggustions and participation for not doing things you want, if you don't talk with them and explain your use cases.

    --
    Well.. maybe. Or Maybe not. But Definitely not sort of.
  8. Re:One or two Questions... by INeededALogin · · Score: 3, Informative

    Question is "have they changed this?"

    Whats the bug number where they were notified. Why did they refuse to fix it?

    AutoIt:

    AutoIt has been designed to work on Microsoft Windows 2000/XP/2003, Microsoft Windows Vista, Microsoft Windows Server 2008/2008 R2, Microsoft Windows 7.

    So you are complaining about an open-source development toolkit that supports every major OS and several Mobile OSs against a Windows-Only, proprietary application. I really don't think you are going to find many sympathizers here.

  9. Re:If they plan on going mobile then i'm afraid by tibit · · Score: 2

    They have nowhere near the functionality of Qt. Never mind the handwritten introspections in GTK. You'd think people could use, you know, computers to do the mundane for them. The distaste for using tools other than the holy compiler is awful. You've got all those beautiful resources, yet you choose to be confined to the expressiveness (rather, lack thereof) of C. Yay.

    --
    A successful API design takes a mixture of software design and pedagogy.
  10. Re:QML by djfreestyler · · Score: 2

    QML is as close to JSON as it can be while still supporting all the features that are needed for the concept to work. I'm not sure in what way you would like for it to be closer to JSON? I suppose the most major difference is that where JSON is weak typed QML is stronger typed. Properties are pretty strong typed, whereas the included JavaScript in signal handlers and other places is (obviously) completely weak-typed. But even the stronger-typed properties are not as strongly typed as they would be in C++.

    For example, objects use introspection to resolve functions, meaning that I can call any exposed method on that object. The same goes for properties on objects. Where the strong typing appears is when you want to assign something to that property - an object property will throw an error when you try to assign an int and vice versa. While I personally appreciate it, I believe this was mainly done to ease the integration between QML and C++, since it becomes easier to optimise method calls if you do not need to parse the type at every call.

  11. Re:Focus on Mobile development by shutdown+-p+now · · Score: 2

    Why Qt Quick is "focusing on mobile"? From what I've read about it, it looks like a (long overdue) open source alternative to WPF to me - it espouses largely the same principles with separation of UI markup and code and a convenient syntax to bind two together, with the only difference being that it's backed by C++ rather than .NET (and it's much faster).

  12. Re:One or two Questions... by GuB-42 · · Score: 2

    Qt supports UI automation via its accessibility framework.
    So either it is completely broken or autoit doesn't support it.
    And unless someone shows me an official bug report, I think that autoit is more likely to be the problem.

    I think the problem is that Qt, like most GUI toolkits, uses its own widgets instead of the windows API. There are pros and cons. And one of the cons is that programs designed only for built-in windows widgets may not work properly. It is probably the case with autoit.

  13. Re:If they plan on going mobile then i'm afraid by Daniel+Phillips · · Score: 2

    Properly designed C++ applications and frameworks don't have to be any slower than C.

    Faster even, because of additional optimization possibilities in cases like method calls and lambdas. Speaking as an inveterate C hacker.

    --
    Have you got your LWN subscription yet?
  14. A non-programmer will not touch QML either. by master_p · · Score: 2

    QML will seem like Chinese to anyone without some programming experience, so, if they are going to produce anything interesting, they will do it with UI designer applications, not by programming directly in QML.

    Poor unsuspecting C++ programmers will then be given the QML code produced by the UI designer tool and try to dhoehorn it to the C++ application. They will feel tortured, because the QML fed to them will be not that readable (most automated code production tools produce awful code), the UI designers will certainly have programmed many horrible abominations using the UI tools, like copying and pasting the same thing over and over, instead of doing it in an object-oriented fashion, and the C++ programmer will simply have to deal with it.

    Personally, I have not seen a web designer that he or she could or would code. They avoid coding like a plague. They just do not like coding, and that is why they chose to be designers. On the other hand, C++ programmers do not like scripting languages much. I seriously doubt QML will be of any use to anyone in any project, other than for toy projects.

    Fashion is a double edged sword. If you follow fashion, you will stay relevant and 'in'. But you may accidentally introduce problems, especially if you are a software company.

  15. Re:If they plan on going mobile then i'm afraid by tibit · · Score: 3, Interesting

    GObject introspection tool seems to be a recent thing -- that's what I glean from what passes for their documentation. Never mind that the tool itself is not documented within GObject documentation, so don't blame someone who refers to official documentation (not the live crapfest) for not finding it. Various anti-Qt-fanbois have been whining for the longest time about the fact that Qt uses an extra tool (like if that was hard, gimme a break). It was GTK's supposed win factor that you could do everything manually; of course if you feel so inclined you can code up QObject metadata by hand too, what moc does isn't magic.

    Suddenly --- boom, GTK has not one but two brand-new tools that generate C code: the introspection compiler, akin to moc, and Vala, a whole new language. I'd hardly call the GObject introspection project innovative in any way, I mean come on, moc has been with us for 15 years or so. Yes, they finally realized that not everyone is a masochist even if they write in C, so good for them, but IMHO it's a bit too little, too late. Oh, and good luck finding it if you don't know it's already there.

    As a professional developer, I would not really bother even looking at their stuff, the documentation is so bad. From my viewpoint, the fact that the Gnome project is cut up into so many libraries doesn't help at all, nor does it instill any confidence. The individual libraries are all a crapshoot from integration viewpoint: some use GObject, some don't, the API conventions differ, it seems like a loosely bound mess. When you work with a monolithic framework like Qt, at least you can count on some measure of self-consistency.

    --
    A successful API design takes a mixture of software design and pedagogy.