Aaron Seigo On KDE SC 5.0 — and What Getting There Means 157
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."
QML (Score:4, 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
Controversial KDE to gnome3 weirdo (Score:2, Interesting)
Am I the only person in the universe who likes gnome 3?
I'm a sysadmin, so I usually have millions of windows open at once, and I've always been looking for ways to find the bloody one I'm after. I'm often in the middle of programming something when something urgent comes up, and I'm too lazy to switch to a new desktop so I just fire up a few more windows, then I always put my computer in standby every night (to keep my code open and remind myself what I was doing the following morning) until about twice a week I go about purging windows.
People complained about KDE4 because you couldn't put icons on the desktop. Instead that panel. Well, you could make it full-screen, but to me it was never a problem. If I have screen space available, I tend to put windows in it. Linus Torvalds talking about the number of mouse clicks to open a terminal hit two nerves for me:
1) To click an icon on the desktop, I would first have to stop using the keyboard and reach for the mouse
2) I would then have to drag possibly more than on window out of the way, possibly into some docs in another one I might be reading whilst I'm typing into another
3) I stopped having a backdrop image years ago for this reason.
So then there's the taskbar.
I used ION for a couple of years. I really liked it. It's a tiling window manager, but it uses "managed tiling"., KDE 4.5 gave us unmanaged tiling. It also gave us stacking, but the two don't work together. MASSIVE BUG. I want 5 windows on top of eachother in a tile, and well, people like the auto-tiling.. I don't.. it's unpredictable. it resizes your windows.
What I liked about ION is you created a tile, or at least moved your cursor to the tile you want your window in, THEN open the window, rather than opening the window and seeing where it turns up. WHY? because that 1.5 seconds of thought made me put it in the right place then it stuffed it into my short term memory and I could always remember where I put it.
Taskbar redundant.
Gnome3 tries to solve it by zooming out and clicking on the window. problem unless you have a very high res monitor is you can't tell one terminal from another. That will be resolved in time, but the taskbar has failed for me. "group windows by task" makes it worse. I'm a sysadmin. I've got 20 windows open.
I stopped using ION when the author started being a dick with the GPL and having an utterly uninformed opinion of antialiasing ("If monitors have the resolution of printers, then I would use antialiasing. If you want your fonts dragged through mud, use windows". Firstly, printers use floyd-steinburg dithering. They don't have shades of colour. They use very high resolution dithering for colour. Secondly, monitors do have shades. you increase resolution by antialiasing).
KDE 4.5 introduced stacking and tiling.
The tiling is auto-tiling. There's many who like the auto-tiling approach of WMs such as "awesome". I hate it. it's unpredictable. I would rather create the tile then put the window in it. It also has stacking, which awesome doesn't have. ION allowed you to put many windows in one tile. KDE has a MASSIVE BUG. tiling and stacking don't work together! and it forces you to put all terminals into one stack!!
KDE: either get more like ION for tiling, or allow zooming for gnome 3 users. some people like desktop icons and stuff. If I want to *click* on a terminal, I'll put it on the taskbar. I get that. So do you. Just do something for us who appreciate that the taskbar has failed. new era.
Re:QML (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.
Re:QML (Score:4, 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 [nokia.com].
Image {
width: 180
height: 180
source: "winter.jpg"
Text { // Create a new text object parented to the image object // Give this object an id to refer to // Automatically and constantly adjust to the size of the parent
id: theItem
anchors.fill: parent
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
font.pixelSize: 120
font.family: "Times"
color: "blue"
text: "Qt"
}
ShaderEffectItem { // Create a new ShaderEffectItem object // Automatically and constantly adjust to the size of the parent
anchors.fill: parent
property variant source: ShaderEffectSource { // The object that the shader will draw
sourceItem: theItem
smooth: true
hideSource: true
}
property real amplitude: 0.02 // Define new variables for the shader to interact with. // Animate the time variable. You can also make animations that automatically animate objects' size changes when you do, say, width = 300. // Embedded fragment shader code
property real frequency: 20
property real time: 0
NumberAnimation on time { loops: Animation.Infinite; from: 0; to: Math.PI * 2; duration: 600 }
fragmentShader: "
uniform highp float amplitude;
uniform highp float frequency;
uniform highp float time;
uniform sampler2D source;