Nokia n900 vs. Apple iPhone 3GS vs. HTC (OOpps.. Google) Nexus One
by Jerome Kehrli
Posted on Sunday Jan 24, 2010 at 09:37PM in Geeks-up !
I'm looking for a new phone. The 3 models I found appealing are the ones mentioned in the title of this post. I'm posting here the criterions I ran through when looking at these phones and the reasons that make me choose one or the other.
As an introduction, I have to say that I'm a software engineer and linux addicted. I'm using linux at home (unfortunately not always at the office) since almost 10 years now and besides a few journeys in the BSD world I don't have such a deep knowledge of any other Operating System. I'm stating this as an introduction so that the reader understands that my critera might not necessarily be his.
The first aspect we will be looking at is the hardware :
|n900||iPhone 3GS||Nexus One|
|3.5' screen in 800 x 480||3.5' screen in 480 x 320||3.7' screen in 800 x 480|
|32 GB internal memory (extensible with mSD-Card)||32 GB internal memory (no extension possible)||512 MB internal memory (extensible with mSD-Card)|
|ARM Cortex-A8 600 MHz (TI OMAP 3430) proc.||ARM Cortex-A8 600 MHz (TI OMAP 3430) proc.||Qualcomm Snapdragon 1Ghz proc|
|dedicated graphic chipset PowerVR SGX (OpenGL ES 2.0)||dedicated graphic chipset PowerVR SGX (OpenGL ES 2.0)||dedicated graphic chipset integrated in the Qualcomm SD|
|front camera||No front camera||front camera|
| hardware keyboard
The device is quite fat though
|Thin device||Thin device|
For me the n900 is a winner here: the screen might be a bit smaller that the Nexus One's screen but the resolution is the same, the internal memory is the same than the iPhone 3GS but it can be extended (at least to 48 Gb with a 16 Gb micro-SD card) and as the iphone it has a dedicated graphic chipset supporting OpenGL ES 2.0 (with open specifications).
In addition, although the Snapdragon runs az 1Ghz, trust me guys, these Qualcomm processors are really crappy. In terms of pure processing, the high frequency is interesting but the integrated graphical chipset is ridiculous. I don't know if any of you remembers the 7201 on the Diamond or the Rapahel, even with better drivers it was just impossible to get decent performance for most games or high quality videos.
I don't know for you but I'm pretty sure I wont have any other Qualcomm based device in a short future. I still wonder why HTC keeps using those procs...
Now let's have a quick glance on the system software stack :
|n900||iPhone 3GS||Nexus One|
|Linux / X.org / Hildon (GTK-based) with Qt compatibility||MacOSx ... Well, sort of||Linux / Dalvik VM (java like))|
Regarding the iPhone, I can't help but admire in a very general manner Apple's engineer's work on Nextstep ... OOpps I mean MacOSX. It's a unbelievable system with a revolutionnary (but not new) kernel architecture. It's very usable and it looks damn' good, alright.
But it's a commercial and closed system in which most layers are grey-zones and an extended set of system APIs and features are poorly documented or hidden. Without any document nor the source code how does one uses the system or changes it the way he wants ?
Besided it's unclear what exactly of MacOSX is in the iPhone and there are odds limitations like the lack of a proper multitasking support which seems unclear to me.
Now about Android : OK it's Open-Source, looks good and the big picture of it seems not bad at all.... but personnaly I'm no big fan. The problem for me comes from this Dalvik machine. It's roughly a VM running an extended subset of the Java spec. The linux kernel is used for nothing more than low-level interactions with the hardware and provides the ground abstraction from which the virtual machine is build up. Google's engineers applied a few changes on the kernel to make it fit as directly as possible the VM needs and I don't like that. This seems to me quite a hack and I would have preferred a good old standard linux/GNU standard libs deployment. In addition the display layer is not X compatible.
So how do you port usual *nix applications on it ?
Well so much google once again. And I'm way not a google fan besides the search engine and gmail.
Let's look at the n900 now. the maemo 5.0 system is Open-Source (98%) and built using good old debian tools (deb, apt, etc.). It is mostly maintained by an open communitiy growing constantantly (with every problem that implies). It is fully based on Linux, the GNU standard libs, BusyBox, X.org, GTK etc. The Hildon GUI is strongly based on gnome.
In addition there are QT compatibility libraries for hildon. You can also progam it in python which is extensively used by the maemo community.
A few components mostly related to drivers and telephony features are nokia proprietary but 98% of the software stack is Open-Source.
The n900 is available since a few weeks only (not even worldwide publicly launched before end of January) and you can already find hundreds of nifty applications on maemo's extra (and -testing, -devel) repositories. Features as MMS not officially supported by the original nokia applications set are now fully supported using open-source and free third parties apps.
Well, let's face it. I'm choosing the n900 as a phone for the same reason that makes me choose Linux for my home and work computers. That does not mean the n900 is reserved to computer professionals or geeks, I really don't think so. I won't try to convince you here but I might tell you in a future post about my wife and children all using exclusively linux notebooks everyday for everything they need a computer for, even gaming (wine rules).
Other concerns :
To be honest, the n900 is not necessarily an iPhone killer either. There are hundreds of thousand of applications available for the iPhone, most likely several thousands already available for Android. There are far from that many available for the n900.
Don't get me started about the hundreds of thousands of applications available for the iPhoine. I would be really glad to know how many are useful. But anyway, let's be honest, there will never be that many apps available for the n900.
Still, I have a smartphone now for quite a while and the applications which are mandatory for me are : a very good media player (or several good media players), A GRRS/UMTS connection monitor, a good web browser with download manager, a good mail software, a ssh client, a vnc client, a good ftp/scp/sftp client, a console, a good GPS software and lots of other little things.
And I have all of these on the n900 and in the best possible way : *nix standard, free and open-source.