Wednesday, January 06, 2010

key quest: device spectrum

The idea of a "device spectrum" is a bit easier of a topic compared to the "deployability" one I covered in the last blog entry. It's really more of a concept and a possible way of thinking about things than a set of concrete technological challenges/opportunities KDE faces.

Here's how I've been explaining it to people in person: one of the innovations the Linux kernel brought into the mainstream during its evolution was the idea of viewing the idea of "a computer" as a generic concept made up of a set of very different kinds of devices. On the one hand you have tiny little (by today's standards, anyways :) system-on-chip devices and on the extreme other hand you have high performance computing (both of the single system image and cluster variety). In between lies everything else: desktops, laptops, workstations, server appliances, business servers of various sizes. Instead of providing a different operating system for each of these targets, Linux aimed to provide one, reconfigurable collection of source code that would just as handily power your wrist watch is it would the world's most powerful super computers. Instead of building walls between kinds of systems and targeting each in a separate-silo type project, Linux took it all on. This opened my eyes (and I assume many others) to the idea of computing as a spectrum, from small to large, in which software can scale from one end to the other successfully.

Yes, there are niches at both extreme ends of the spectrum where specialized software is the best fit. You won't be getting the Linux kernel on an Arduino any time soon, right? :) Being able to cover 9x% of the computing spectrum is enough, however.

While systems software has been doing this like it was nothing special anymore for a while, we in user interface land haven't been. There have been some brave and visionary types out there, like the people behind Qt, who have realized that large portions of the GUI frameworks can travel from device to the largest of workstations. I still get all giddy thinking about how Qt apps run just swell on, say, a Symbian phone and that it's the same Qt that powers electronic design apps that do real time simulations of data sets so large that you have to run them on 64bit systems to have enough memory address space. Amazing!

The challenge here for KDE is: what do we have that can also be spread out across the spectrum?

Not everything will move very much. I don't see Digikam making the leap to smart phones, for instance, nor should it try to in my opinion. That's not the point of Digikam, and trying to do so would probably ruin it.

Other applications will travel very well across parts of the spectrum. Take Gwenview for instance. (Hm... what's with my KDE Graphics obsession today? :) It has a user interface that scales down very nicely to netbooks/smartbooks and up very well to very large displays. Will it be an answer for image viewing on, say, smartphones? I don't know. (I haven't tried it, and haven't really given it much though, to be honest :) Perhaps it won't, and that's OK, of course. Knowing, however, that it's appropriate for that area of the device spectrum might be useful for its developers: perhaps they want to push the boundaries out further, or maybe they just want to preserve their current stance and ensure they don't shrink it accidentally by making it uncomfortable for use on netbook sized screens.

Some of our applications have been written from the ground up to fill as much of the device spectrum as possible. We can see this in how Plasma applications are running not just on desktops and laptops, but also netbooks (with a different primary UI, but the same special sauce under the hood) as well as phones (again, with a different primary UI).

Then there are our libraries: which work across the device spectrum? Which don't? Which could do better? Which library facilities are we missing that would be good to have to expand our device spectrum reach, in both directions?

I thought it was interesting when Akonadi people blogged about how Akonadi wasn't really designed for or necessarily ready for things like smartphones right now. That's important and useful information to have, both for those working on Akonadi as well as those who might use it in their own applications.

What I'm suggesting by all of this is that we may want to keep our eyes and minds open as we are developing our software. Instead of just assuming that we're working on "desktop software", consider that it lives in a larger world where there is a spectrum across which devices of various sizes and shapes and purposes live. Consciously placing our software, and our software's targets, on that spectrum will help us create a coherent set of solutions (and information about them) across the wide range of computers people have today in their pockets, backpacks, briefcases, server rooms and on their desks. And that can't hurt. :)

9 comments:

Ignat said...

(This is not intended to be a rant, even if it looks like one ;)
Speaking of device spectrum : to be able to run on all those small devices, you need to be very memory-efficient. However, currently, if I open the new widgets explorer, Plasma memory usage grows by a few megabytes and never drops later, even if the widget explorer is closed. Same behaviour can be observed with any Popup Applet or with adding a new widget. Why is that? And is this going to be solved to target the small form-factor devices?
(Not only those, but also old computers. Not all of us have i5 4GB GTX285 machines you know ;)

Frank said...

What do you think of tablet devices. I think, that will be the future and the evolution of netbooks. In combination for use as ebook-reader, mobile internet platform and multitouch handling, this will be the new hype. It would be cool, if kde could offer a innovative shell with multitouch handling for such devices, especially because the big other software company coudn't offer a useful operating system for such small devices, because of reasons like Ignat said.

Aaron J. Seigo said...

@Ignat: memory is managed by the kernel. the memory that is set aside for the application by the kernel doesn't tend to "shrink" after it's finished being used; future allocations made by the app will use that memory. so if you open the widget explorer, close it, then open a popup applet (or something that allocates more memory), it will use some of that already-allocated-to-plasma-desktop-by-the-kernel memory. so the "max size" of the application's memory usage is pretty important. (well, it's a bit more complicated than that in reality, but that's close enough for the purposes of this conversation :)

on very small devices, i don't think we'll use the add widgets interface we use for the desktop and netbook interfaces. the UI isn't designed for those screen sizes. the memory profile is different on smaller devices due to such differences in the UI as well.

as for old computers, i don't think there's been a retail desktop computer that's come out this century that can't run the Plasma Desktop. if we go back into the 90s, we can eventually find machines that would have troubles with it; they simply aren't part of our target.


@Frank: i'm not sure how much of a market there will be for tablets (aside from smartphones and eBook readers, i think it will be pretty limited), but Plasma Netbook already does fairly well with such devices. it does multitouch and gestures and has a UI that is well suited to those kinds of systems.

there is one hole still, though: text input is an issue. we have an onscreen keyboard widget, but we don't have a way to bring it up automatically when a text entry area gets focus. this is obviously doable as can be seen on devices that already do this, we just need to hook up the appropriate bits and pieces.

Frank said...

@Aaron: Hm, i'm not sure, if you are right with your prediction, especially after the heavy rumours about an apple ebook-reader device (iSink). I'm sure, this kind of device will replace the actual netbooks, because they will have the same or equal size, the same normal functions, but a touchscreen (maybe also for phone functions), can read and display ebooks, have innovative shells etc. Think of an apple ipod touch in bigger size or an amazon kindle with colour display, and believe me or not: this will be the new hype in the year 2010 and beyond. And excuse me for my bad english: i think, the plasma netbook shell is a beginning, but not the real answer for multitouch devices; KDE can do more than this.

Ettore said...

"Which library facilities are we missing that would be good to have to expand our device spectrum reach, in both directions?"

Uh... I know you already axed it in deployability blog entry but... input device support? It would help on the desktop (would be a godsend to activate stuff like Present Windows without travelling back and forth between mouse and keyboard) and lay foundations to be able to handle exotic devices as well.

Frank said...

Correction: What the hell is an iSink? An iSlate was meant!! Played too many iPod games.

binarylooks said...

I actually agree with Frank here. The tablets/slates will change everything in the same kind that the netbooks changed things (actually they didn't change things but more filled a gap) But this does not only concern plasma, also Gwenview and amarok (also Okular and ...) should try to think on how their apps look on smaller screens in Fullscreen mode.
Right now the netbook shell is really evolving nicely, but without a mouse I do not see how i could get the panel to unhide?

Ignat said...

@Aaron: Thanks for the clarification. And I had already started to file bugs... :) Well, that was the kind of answer one could expect from you.
BTW, how do you manage to write a few blog posts that large in a line?

ezjd said...

Originally I thought I should move part of my comment of your previous blog to here but after reading this one and comments, I realize that probably I'm thinking in different way.

Maybe you guys are right that KDE will never do small device with 3 or 5 inches screen, which I put my bet to maemo now :-)

However, I do believe in tablet's future (as I am right in this "business" :-) ), and I'd say I see same issue with netbook UI because it is too desktop-ish and should think more about how to use screen more efficient and be more attractive.