Nokia's Maemo Switching To Qt
suka writes "During a keynote at the Gran Canaria Desktop Summit, Nokia's Quim Gil announced that a future release of Maemo is going to be built around Qt. Maemo Harmattan is going to switch away from GTK+ / Hildon, derStandard.at reports from the conference." Michael Pyne also writes with a post describing day one of the conference from a KDE perspective.
That's all fun and games, but why are there no new products in the Internet Table line? C'mon, it's been almost 2 years since N810. The OS lives while the hardware was abandoned? Weird.
Hardly surprising, considering Hildon really wasn't very good. Sluggish, clumsy, and tending to waste a lot of very precious screen real estate - not that I see how switching to Qt changes any of those things. Still, it sounds like they're basically throwing the whole UI and all the software written for it out, and that sucks. I've long been tempted to write a little music toy app to run on my N800, but I should probably just buy an iPhone or a Pre (given that I don't actually carry the N800 around anywhere anyway).
I know why.. Because QT was released under the LGPL, sorta recently.
Uh, maybe because Qt was bought by Nokia? They're the ones who decided to LGPL it, but they can do anything they want with it.
Live today, because you never know what tomorrow brings
There is a lot of software for the Nokia N810 and below. Switching out to a new UI means a lot of stuff will either get uprooted or there will be a lot of libraries loaded into the machine's precious little memory.
Still, if the developers of software port over to the new environment quickly enough, it won't matter but I can't imagine things will be quick enough.
What can be done under Qt that can't be done under GTK? Is Qt more efficient in some way? What are advantages of Qt over GTK? I've never been clear on the differences... I just know they are different.
It seems like they're still planning on using a lot of GNOME components, but putting a Qt skin on it. I just wonder if it is the best of both worlds, or the worst of both worlds...
What can be done under Qt that can't be done under GTK? Is Qt more efficient in some way? What are advantages of Qt over GTK? I've never been clear on the differences... I just know they are different.
Personally, I prefer Qt because of the superior documentation. I think Nokia prefers Qt because they own it now. It's sort of like when Microsoft bought Hotmail, and moved the servers from FreeBSD to Windows. It wasn't because it was better, but because it was theirs.
Exactly. Has nothing to do with the quality of either toolkit, some one at Nokia said "Why are we building this product with the competing technology?" I always make a point of supporting both myself where it makes sense. Even though Qt is a nutty blob of nonsense.
Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
Ubuntu is a distro. QT is more of a graphics and application framework.
You don't think they bought Qt because they thought it was better?
Fromt TFA: "Nokias motivation for this move as being mostly driven through the desire for easier cross-platform-development, citing Maemo, Symbian and the desktop as examples."
One thing that sounds incredible wrong to me is the fact that they are saying that Qt was chosen to make "easier cross-platform-development". The applications that were ported directly from desktop to Maemo (Xchat is the first one the comes to my mind) have an incredible bad look in the device. Building an interface for a device that runs in a small screen (4.1 inches) with a small resolution (800x480) that also uses a large pointer (e.g., most of the screen is designed to thumb usage) is not the same as building an interface for normal computer screens and resolutions.
The move is simple political: Nokia controls Qt now, so they will use their own toolkit. It's not based on merits of the toolkit (or problems of the other.) But hey! Why tell people the truth, right?
I was really liking the Debian chroot environment, but the Maemo overhead put the squeeze on.
Before you read too far, realize that Nokia owns Qt. It is not surprising that Nokia products use Qt.
I can tell you right now, this will kill Maemo. QT is a pretty good GUI toolkit, but this is going to draw in QT Embedded (QWS server and such). I personally have been working on an Embedded QT device for 2 years and can tell you, QT Embedded is horrible. Nothing more then a Demo written by Trolltech to try and expand the market share. The biggest pain with QT, is that since it tries to be cross platform is it re-implements everything (Networking, Audio, Mutexs etc... etc..). They make it fairly easy to use their bad, slow code, while the "beautiful" non-standard signal slot system makes it a pain to integrate with real C or C++ code. If they wanted C++ they should of gone with GTKmm.
What else should they do, buy FSF?
Nokia wants a common platform across their internet tablets and smart phones. Given that the Symbian is going to support Qt, and the Symbian user base is much greater, its makes sense that Maemo would want to have access to the 3rd party apps written for the user base that numbers in the millions
And really it was clear in the talk he gave that the Maemo stack is still mostly unchange, and still using most of the Gnome libraries including crucial stuff like Tracker. Really even with the change in UI toolkit, its more Gnome then KDE, especially as none of the Maemo stack actually originated from the KDE community, where as much of it did from the Gnome camp.
I can think of a couple like GStreamer and Telepathy, but in both cases the support isn't 100% yet. And both are really crossdesktop from the beginning (Telepathy is just a DBus spec after all)
With the Mono infection and the reliance on GTK, the best thing would be for GNOME to go away. It started because Qt wasn't LGPL. That no longer applies, so let it die.
GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
Can you name three apps that are available for Maemo that you would honestly miss?
The mail app blows, the browser sucks, the media player is lousy, and the application manager is beta-quality, at best.
Don't get me wrong, I love my n810, mostly for the hardware - Maemo is a drag.
-
Qt vs GTK: http://slashdot.org/askslashdot/01/11/21/0227206.shtml
The real story is the Nokia / Intel announcement of cooperation on Atom/mobile products. Intel seems rather focused on Mobilin for MID with a long term strategy for handsets. While Nokia will be pushing their Ovi stores/maps/content with a new UI for Symbian. I doubt that Nokia ever looked on Maemo for more than an R&D effort. Commercially it was never a success nor a viable consumer product - a geek toy yes, a popular consumer product never. Maemo is irrelevant. The real thing to watch is the Intel/Nokia relationship on handsets - see how that evolves from processor choice to OS. Sean
...except at least they were attemping to make a useful device from day one, while Nokia has totally let that ship sail into Apple's hands.
Is that Kool-Aid good?
Nokia sells 4x more smartphones than Apple does, with over 40% of the worldwide market. Nokia has won more design awards for phones than Apple, by a long shot. They even have smartphones (n97) that handily beat the iPhone. The problem is, Nokia caters to users NOT phone companies and thus the North American carriers don't sell their smartphones. All you can really get in the U.S. is their standard phones.
They're trying to get a bigger presence in the U.S. market, and are examining how to leverage QT, Symbian and Linux in doing that. At least they aren't sitting on their collective asses (like Motorola) and getting crushed.
Don't write them off.
http://money.cnn.com/2009/01/12/technology/hempel_nokia.fortune/
http://news.cnet.com/8301-13579_3-10245339-37.html
http://www.nokiausa.com/find-products/phones/nokia-n97/specifications
Learning HOW to think is more important than learning WHAT to think.
Pretty much everything I've done with Qt tells me KDE should be a much better desktop than Gnome. But the truth is that most of the large desktop distributions use Gnome, Ubuntu is much bigger than Kubuntu and same goes for the others. None of the big three hitters Firefox, OpenOffice or GIMP are KDE applications - ok not all are Gnome apps either but there's not many "killer KDE apps" around. Don't get me wrong, they're all perfectly okay but nothing really rocks the boat.
Sometimes I just want to shoot the people that did usability studies for KDE, like for example making dolphin's file transfer dialogs into notifications that disappear whether they're done or not. When I'm moving a file it's very often a point to know when it's complete, and it irritates me to no end that every time I must click the notifications icon to know when it's really done. To be honest, I think I'd love to see Gnome/Qt. Maybe we'd see more head-to-head competition - or even more shared components? That's kind of hard today, both need to invent the wheel in C/C++ respectively.
Live today, because you never know what tomorrow brings
Flamebait, maybe. These kids today do not respect a healthy, if inflammatory point. Makes sites like Digg a nightmare.
The reason GNOME was started is nearly the same the reason it should fade away. Because KDE relied upon (the then closed) Qt, GNOME was started, as a workaround using the GIMP Tool Kit. It's a similar situation with Mono, but hairier.
This is actually something to remember, thanks!
"I mailed Richard Stallman to let him know that this interesting project existed. KDE was licensed under the terms of the GNU GPL. I got a reply back from both Erik and Richard pointing out that KDE dependency on Qt resulted in a piece of non-free software. Qt did not end users the right to modify, redistribute nor distribute modifed copies of the code and violated the terms of the GNU GPL."
From The Story of the GNOME project.
I can tell you right now, Maemo will not use Qt Embedded.
'Bad code' is very subjective, and I would like you to prove Qt is slower than Gtk. Just because you say it's so, does not make it as such.
One reason they are going with Qt, is because they bought Trolltech. They could not have that much control over gtkMM, however ancient and unmaintained that code is.
-- "Perceptions create reality. By changing your perceptions you change your reality."
oh ya, I just love working with auto generated c++ code.
Nokia's ownership of Qt was the only reason Qt got re-licensed under the LGPL, and no, just having an LGPL license does not mean someone has full
control over it's development. So the two are very different things.
-- "Perceptions create reality. By changing your perceptions you change your reality."
They even have smartphones (n97) that handily beat the iPhone.
I have a n96. Hands down the WORST phone I have ever seen. It is the buggiest and slowest piece of crap and I blame it on a Symbian implementation which has been hacked to death. I prefer the $100 AUD LG phone I picked up two years ago.
However, I really like the idea of maemo (it seems exactly like what I want, except it doesn't have 3G built in or a phone yet) and so far I would happily give it a design award, and I think that QT will only make it better.
However, they really need to be careful or they will end up like OpenMoko - which is damn near dead. They switched tookit 3 times IIRC.
You seem to know what Maemo actually is. Since the summary doesn't care to enlighten us, could you maybe do the honors?
I have personally worked on QT embedded projects as well, for well over a year. Some platforms weren't supported out of the box, yet I didn't find it to be particularly painful. Neither was the signal/slot-system. I did use GTKmm before Qt though, and had to endure all the braindead API designs inherited from gtk.
This sig does not contain any SCO code.
Nokia has its own lightweight GUI library that they use with Symbian--and their UIs suck. They have built applications with Gtk+--and their UIs suck. They have build Windows and OS X desktop apps--and their UIs still suck. I think the problem Nokia has with GUIs and software has to do with how they develop software, not whether they use Gtk+ or Qt.
Another problem with their choice is that it ties them to C++; the trend in mobile development, however, is towards other languages, like Javascript (Pre), Java (Android), Objective-C (iPhone), and C# (Windows Mobile). Only Symbian steadfastly clings to C and C++. That would be fine if Symbian actually ended up being the fastest and having the best UI of the bunch, but it's actually the slowest and least responsive of the bunch.
I have a n96. Hands down the WORST phone I have ever seen. It is the buggiest and slowest piece of crap When I first got mine I was not exactly enamored by the battery life or UI responsivity. Switching off wifi scanning gives me 2.5 days on a charge now and switching off UI effects has made the UI quite usable. I really thought I'd made a bad buy in the beginning but I'm quite happy now. Plus, not even in Linux have I found a podcast client as good as the one in the N96.
Nope. It's true, Nokia bought Trolltech. Quote: 'Eirik Chambe-Eng, Chief Troll and co-founder of Trolltech continues "We are thrilled to join forces with Nokia." '
I wonder if the people who work with Qt (cutie) will continue the tradition of calling themselves "trolls"? A troll is "an imaginary creature of human-like form, very ugly and evil-tempered".
I doubt very much that the people who work with Qt are ugly and evil-tempered. What I think they meant is that, originally, they had a feeling of not belonging.
I wonder if they will continue calling themselves trolls now that they are part of Nokia.
The biggest pain with QT, is that since it tries to be cross platform is it re-implements everything (Networking, Audio, Mutexs etc... etc..). They make it fairly easy to use their bad, slow code, while the "beautiful" non-standard signal slot system makes it a pain to integrate with real C or C++ code.
This "biggest pain" of yours is what makes it cross platform.
You know what? You don't need to use these "slow" wrappers, you can use the file descriptors directly if you wish, and call to posix to your hearts content, if you don't care about running the code outside Linux. Good luck explaining that to your manager though.
I invite to you to investigate how "slow" these wrappers are by just reading the code:
http://tinyurl.com/loerlj
They make it fairly easy to use their bad, slow code, while the "beautiful" non-standard signal slot system makes it a pain to integrate with real C or C++ code.
PIBKCAP, probably.
Save your wrists today - switch to Dvorak
Nokia has won more design awards for phones than Apple, by a long shot.
Yes, but Nokia has been in the phone business for how many years compared to the short time Apple has been there... so its hardly surprising they have more awards.
I recently moved from KDE 3.5.* to KDE 4.2 on my desktop at work. I find it pretty stable and so far I'm happy with the components I have used. The big exception is Amarok which is .. not that good.
All the auto generated code is boring, boilerplate stuff that you could easily write by hand if you for some sadistic reason wanted to.
Have a look at a moc_*.cpp file some time, it's not rocket science. But I'm glad I don't have to remeber the order of the (integer) values in the meta data array - moc generates it automatically.
Pretty much everything I've done with Qt tells me KDE should be a much better desktop than Gnome. But the truth is that most of the large desktop distributions use Gnome, Ubuntu is much bigger than Kubuntu and same goes for the others. None of the big three hitters Firefox, OpenOffice or GIMP are KDE applications - ok not all are Gnome apps either but there's not many "killer KDE apps" around. Don't get me wrong, they're all perfectly okay but nothing really rocks the boat.
The think I like least about each of Firefox, OpenOffice and GIMP is the user interface, for which I blame GTK. For example, Firefox's application chooser dialog makes me want to slit my wrists.
Have you got your LWN subscription yet?
...this is going to draw in QT Embedded
What makes you think this?
Care to shed some more light on this too?
Not anything they want. They have to keep it open source due to the Free Qt agreement with KDE.
These interfaces are really and truly not GTK+'s fault. GTK's main failing is making everything look like a modernized CDE. Since they have already long since skinned away the Motif-look I see this as not being a bad thing. A certain stage of GNOME's development seems to have been to supersede CDE, also.
On the other hand, the GNOME project seems to be developing a serious case of "our way or the highway". If you take gnome-panel out of GNOME, it doesn't work right any more, and they've gone to great lengths to try to prevent you from doing so. The logout window has options for logout and shutdown options which you cannot use together... what? I seriously cannot have one dialog with all my shutdown/logout options? Basically you can easily replace every part of the GNOME desktop with a surrogate just to get decent performance (I am SO tired of tracker bugs cratering my #$#$^@# system... it just keeps happening!) and so what exactly are you getting, anyway?
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
Motorola didn't sit on their ass, they went nine conflicting directions at once. The result is similar, but more expensive.
Maybe I'm just a snob but I've found every Nokia interface I've ever used to be terribly painful. Mind you, Motorola is as bad or worse.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
When I'm moving a file it's very often a point to know when it's complete, and it irritates me to no end that every time I must click the notifications icon to know when it's really done.
I'm pretty sure the tray icon indicates the number of running transfers now. It also pops up a message briefly when the transfer finishes. (Of course, I'm probably using a newer KDE version than you.)
I absolutely agree with you that too many people write Nokia off the phone market due to nothing but "kool-aid". Either Apple or Google (android) kool-aid. Or the fact that they only know the US market, but have no idea of what happens elsewhere.
One point people seem to miss is that not everyone wants/can/will buy such ridiculously expensive phones to start with.
However.... I own a G1, have messed around with an iPhone, and played a lot with my GF's Nokia 5300 X-Press music. Nokia's current problem is that their phones are not designed around the expectation that the user has a "all you can eat data-plan". While this allows them to sell phones to people without a data plan. It has lead to a mess of connection settings, connection permissions, and syncing.
As a phone, and multimedia player the 5300 beats the shit out of the G1 (lousy battery, heavy). But Nokia really needs to clean their act regarding internet browsing, application download (ovi sucks!), and syncing.
Ok, it seems they got the audio recording of the talk up too.
Check it out at:
http://flors.wordpress.com/2009/07/05/maemo-harmattan-keynote-at-gcds/
Save your wrists today - switch to Dvorak
The Qt designers don't just create widgets etc, they design components that are easy to program with. As part of this, they avoid stuff that requires the tricky/ugly parts of C++. For instance, you rarely need to explicitly delete objects, because their libraries use reference counting to automagically delete objects at the earliest appropriate time.
So it is easy for any good programmer to learn enough C++ to use Qt effectively.
(Actually, Qt uses an extended version of C++, implemented via a preprocessor. The extensions provide "signals" (like no-op methods) and "slots" (methods which can be connected to signals), plus a limited-and-very-useful facility for run-time widget class information. As usual with Qt, these facilities are just extensive enough make it easy to do the things most people want to do, rather than trying to provide everything that anyone might want.)
Anybody with a hint of interest in the Maemo platform already knows this from Wikipedia and the project home page (at least 4 to 6 months)...
KDE is a highly integrated, cohesive environment, whereas GNOME mostly is a desktop, a file manager, a few applets and a bunch of assorted applications that happen to use gtk for drawing their ui stuff.
Gnome is also a project with decent "Human Interface Guidelines". Which KDE lacks. Badly.
Is your Google broken? You lazy git!
Qt isn't bad code and is probably faster the GTK. The previous product I did used GTK. The problems is QT Embedded. It wants you to use QNetwork and QSocket and QWhatever. Most of these are bad buggy wrappers on top of something else. The build system for QT embedded is bad as an entire system builder. As a whole QWS is not multithreaded safe. I can tell you that I personally have fixed 100-200(our team fixed more like 1000s)bugs, race conditions, threading problems and work arounds in Qtopia for our embedded product.
I'm not arguing over QT and GTK, either will do the job. However there is a lot of difference between QT the GUI toolkit and QT the system platform. In it's embedded form (Qtopia, QT Embedded) it is a pain to deal with. It is nothing more then a Demo that has never seen the light of day. If they only use the QT GUI toolkit with the current setup they have (X11, glib, dbus etc..) it might not be bad. However if they adopt QT Embedded the system platform, they will die a quick death.
KDE is a highly integrated, cohesive environment, whereas GNOME mostly is a desktop, a file manager, a few applets and a bunch of assorted applications that happen to use gtk for drawing their ui stuff.
Gnome is also a project with decent "Human Interface Guidelines". Which KDE lacks. Badly.
You mean like these??
Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
What?
Firefox application dialog is exactly what you said it is, FIREFOX APPLICATION DIALOG, it is *not* the Gnome's application dialog... So blame Firefox.
On linux, they are GTK+ dialog boxes, which is not-exactly-but-almost the topic at hand.
Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
"The sad thing is that people have been screaming for this now for years, and Apple essentially delivered it first."
For your definition of "essentially" perhaps but Apple was far from first.
Do you realize you just showed a link to a page last updated in 2004?
KDE may (formally) have HIG, but it is not as if anyone is doing anything with it.
Ignorance is bliss, isn't it? You do know that GNOME has a HIG because it NEEDS it, in order to specify every toothgrinding little detail that is mostly done automatically in Qt/KDE... Congratulations to the GNOME brainwashing team for making a virtue of necessity so successfully that people think it's a weakness of the competition to not have one as extensive. :>
Comment removed based on user account deletion
all fine and dandy, except I do not have to work/edit with the moc'd code at all.
-- "Perceptions create reality. By changing your perceptions you change your reality."
Because then they own it, and can do whatever they want with it, include release non-free software based on Qt as copyright holders.
It gives them Canonical. How significant that is remains to be seen - but Canonical have been pushing hard for business partnerships of this ilk.
I'm going to bite - and then some.
I'm not sure if you're referring to the fact that the Linux version of Skype is not as fully featured as the Windows version, or if you think that the Linux version of Skype is riddled with bugs or if you just think that the look and feel of Skype on Linux is not up to scratch - but here are a few pointers:
> Skype doesn't have as much incentive to work on their Linux version of their client
> Skype was heavily married to the Windows API's in their version 3 and 4 clients meaning that cross-platform support is hard
If you've read those two bullet points then it should become clear that this has nothing to do with QT, but rather with Skype's internal practices and motivations.
Amarok 2.2 is the release to hang out for. It will make you coffee, pay for your kids intuition and clean your car - or so they say.
If Nokia wanted full control then they wouldn't have just announced their GIT repositories. Everyone can effect the development of QT. Its interesting to see QT 4.6 progress - because there is a lot of downstream work being done and itches being scratched. I like it. =)
Haha what? You're talking about the move of a huge corporation from a consumers angle. No they didn't buy it because they thought it was "better". They bought it because they considered it profitable.
I am the lawn!
Clearly it is the most evil code on the planet. It kills baby seals I heard. GTK is responsible for all that subprime lending that triggered this massive economic meltdown too, right? Geeeez.
The think I like least about each of Firefox, OpenOffice and GIMP is the user interface, for which I blame GTK. For example, Firefox's application chooser dialog makes me want to slit my wrists.
Yes, GTK's ancestry is tied to GIMP in some long dark distant past...but to blame shortcomings in ANY of those applications you mention on GTK makes about as logical and sensible as the statement I made above. First and foremost it doesn't matter if you use the greatest toolkit/framework/tools/etc in the universe, you can make an application that is absolutely horrible to use. KDE and KOffice weren't horrible, but to many they've lacked in features, design and usability at various points in time. The massive upheaval between KDE 3.x and KDE 4.x wasn't just done on a whim--their development communities went headlong into what they had to know was going to be a long, painful process to make KDE relevant again, and all through that time qt adherents would probably argue that qt was a more elegant platform throughout. The thing is, GNOME had the upper hand from a usability perspective for some time because much was done to make the environment more usable, perhaps at the expense of the DEVELOPER experience. Now KDE is back to being competitive in that space and some might say has the upper hand again because in addition to being competititve as a user environment it has a more elegant native development toolkit in the form of qt.
With Mozilla and Oo.org in particular your assertion makes no sense at all--both of those applications don't even natively depend upon GTK OR qt at all! Integration with GTK (or, at a desktop level, GNOME) or qt (or KDE) in both of these apps is a "retrofit" and it sometimes shows. Since FF and Oo.org both place a very high degree of emphasis on cross-platform support they may make sacrifices in native UI environment integration from time to time--or at least questionable choices. FF does have its won XUL-based alternative if I recall, so you can still get around any GTK limitations. However, there is much that could be done by FF developers to better use the GTK wigit, and GTK being GPLed there is nothing at all preventing mozilla developers from contributing to the GTK project to address shortcomings pointed out by their users. Perhaps the argument is there that GTK ought to rethink the design of its file chooser, but that isn't really an example of an overall GTK design/architectural shortcoming but rather a higher-level discussion.
You have a point. Actually, I thought of it from an engineering angle. I simply don't know enough about business to make that connection. Hence, I'm not in that line of work.
Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
"Even though Qt is a nutty blob of nonsense."
We need a new moderation.
-1 mindless zealot.
I have worked with GTK and it is actually a good toolkit if you only want to work in c. The C++ bindings are iffy and I have not used Mono yet and may not ever due to a lack of time.
QT is also a very good toolkit and a much better choice if you want to work in C++.
See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.