Slashdot Mirror


Aaron Seigo On KDE SC 5.0 — and What Getting There Means

An anonymous reader writes "After years of focusing on further improving KDE4, two weeks ago the developers of the free desktop announced the next big step for their project: KDE Frameworks 5.0. But as long-time developer — and Plasma team leader — Aaron Seigo points out in an interview with derStandard.at/web, the source-incompatible changes shall be held to a minimum. He also calls Frameworks 5.0 only the 'first step;' new Applications and Workspace releases are to follow later. Seigo goes on to talk about their chances in the mobile market with Plasma Active and further areas of collaboration with the other big free desktop: GNOME."

3 of 157 comments (clear)

  1. QML by Psychotria · · Score: 3, Interesting

    Aaron spend a lot of time speaking about a transition, in the long-term, to QML (I had to look it up) in the interview. He mentioned that it makes prototyping interfaces quicker, and I assume that also means implementation of the GUI aspects would therefore be quicker also. But I am confused. Is QML just for GUI stuff, or do you write the entire application using it? What other advantages over C++ does it offer?
    Cheers

    1. Re:QML by Kjella · · Score: 5, Interesting

      QML is pretty much like HTML/CSS+Javascript, except that you can do more Javascript magic to manipulate the UI. In theory the whole application can be written in Javascript, but I'd say normally just for the UI or things closely related to the UI. Personally I consider it a step backwards, to me it's more like trying to use web app tech to build a "real" app. I always thought that the only reason you'd want to use a declarative UI is because you need to send it as one big HTTP page, rather than set one and one property as you can do locally. To me at least the whole system seems way less intuitive. With an imperative system I always call setWidth() to set the width, in a declarative UI it's set in the declaration one way and I have to change that property some other way. Maybe I'm wrong but IMO it's throwing away the best part Qt has.

      --
      Live today, because you never know what tomorrow brings
    2. Re:QML by EvilNTUser · · Score: 3, Interesting

      You misunderstand how QML is supposed to be used. It's nothing at all like building a web app. Its biggest problem right now is that there aren't any good books about how to use it correctly, and what your overall design philosophy should be.

      If we are to stay with the web analogy, in terms of usefulness QML/C++ is to plain C++ like CSS/HTML is to plain HTML. Positioning, reacting to changes, tasteful animations etc. are all extremely simple in a declarative UI. Explaining how to use it would be too much for one post, but it's becoming so powerful you'll soon be able to manipulate your UI using shaders. I've added comments to explain the basic QML, but the original article is here.


      Image { // Create a new image object
      width: 180
      height: 180
      source: "winter.jpg"

      Text { // Create a new text object parented to the image object
      id: theItem // Give this object an id to refer to
      anchors.fill: parent // Automatically and constantly adjust to the size of the parent
      horizontalAlignment: Text.AlignHCenter
      verticalAlignment: Text.AlignVCenter
      font.pixelSize: 120
      font.family: "Times"
      color: "blue"
      text: "Qt"
      }

      ShaderEffectItem { // Create a new ShaderEffectItem object
      anchors.fill: parent // Automatically and constantly adjust to the size of the parent

      property variant source: ShaderEffectSource {
      sourceItem: theItem // The object that the shader will draw
      smooth: true
      hideSource: true
      }

      property real amplitude: 0.02 // Define new variables for the shader to interact with.
      property real frequency: 20
      property real time: 0
      NumberAnimation on time { loops: Animation.Infinite; from: 0; to: Math.PI * 2; duration: 600 } // Animate the time variable. You can also make animations that automatically animate objects' size changes when you do, say, width = 300.
      fragmentShader: " // Embedded fragment shader code
      uniform highp float amplitude;
      uniform highp float frequency;
      uniform highp float time;
      uniform sampler2D source;

      --
      My Sig: SEGV