Google says Nexus One too old for Android 4.0
electronista.com
electronista.com
So here we have Google, arguably a company which can hire all of the worlds best engineers, why are they succumbing to the code first and ask questions later philosophy that gave Microsoft such heartburn?
Andy, I know you read HN, tell the team that their bonus depends on Android 4.0 being runnable on a Nexus 1. It isn't about supporting the platform with the least market share of any Android phone, its about instilling in the team a philosphy that taking the time to run great on hardware of that capability pays huge dividends in the phone world.
Many engineers today were brought up in a world where the next PC will be 1.5 - 2x the 'size' of the current PC so bloat is fine, schedule is king. This is a bad philosophy in the embedded space. That 1.5 - 2x the 'size' phone means you can't cut your phone costs, you can't grow your market, you are stuck waiting only the latest / greatest chips which are always in short supply to ship volume. Help those engineers break the habit, I know they can they are smart folks. Challenge them, as Ben Horowitz would say use your lead bullets on this one.
It really won't though, that's the problem.
The Nexus One is nearly two years old. It's somewhat of an anomaly because it'll have a higher than average number of off-contract purchases, but in general once a person's contact has run for two years they get a new phone.
Two year old phones just aren't that important. Speaking as an N1 owner, I'd love for them to be. But they aren't.
(That said, if there really is a performance bottleneck preventing the port, the most likely candidate would be the GPU. And once you've made the decision to finally embrace the GPU, there's not anything you can do to fix the problem of going with a lame GPU when speccing out the hardware 3 years ago).
That kind of market calculus made sense before the recession. Now the value proposition has changed, and while people may still buy newer hardware (such as tablets) they expect better value from their tech purchasing because increasing wealth is no longer a given. Also, people are more suspicious of corporations in general, especially ones that are sitting on a large cash pile. Public sentiment is fickle and can quickly bite a company in the ass - look at how far the stars of Groupon and Netflix have fallen in just two quarters.
The idea that everyone should replace their smartphone every two years says either that your firm is not interested in supplying the less well-off, or else that it doesn't much care whether its products end up in landfill or not. Sure, Apple locks down its hardware platform so tightly that maintaining backwards compatibility is far easier than it is for Google, but note how Apple products maintain a high resale value and that allows them to sell new ones at a premium price point without hurting demand. Apple may be hard to deal with for developers, but Apple consumers feel the firm treats them like Kings or Queens. Google overlooks this market positioning strategy at its peril; loyalty is a two-way street, and the firm should know this very well given its historical disruption of the Yahoo/Altavista/Lycos triumvirate that dominated search back in ~1998.
I'm not so sure about that. You can (probably- I'll be honest, I haven't checked for sure) get a more powerful Android handset than a Nexus One for free if you sign a new two-year agreement right now. There's very little to lose there- except having to take on a two year plan. Except...
Also, people are more suspicious of corporations in general, especially ones that are sitting on a large cash pile. Public sentiment is fickle and can quickly bite a company in the ass - look at how far the stars of Groupon and Netflix have fallen in just two quarters.
I'm extremely skeptical of the former claim- people's anger is directed towards banks, not large corporations with hordes of cash (by and large). If they were, people would hate Apple.
Groupon and Netflix are both things that you can quite conceivably do without. A cellphone these days is seen as an essential, so signing up for a new two year term isn't such a friction point. You're going to need cellphone service from somewhere, after all.
Creditworthiness is a major barrier for many people. Many more resent being tied to a single vendor. Hence the increasing market share of non-contract vendors, although they've been taking a beating too because cell service demand at the bottom end is highly elastic compared to food and housing.
I was certainly not the only one: http://appletoolbox.com/2010/06/iphone-3g-slow-after-ios-4-0...
None of the suggestions worked.
I have a Motorola Atrix now.
iOS 4.2 improved some things and made it usable again, but the phone was still nowhere near as responsive as under iOS 3.1
On the other hand, rsheridan6 had bought a year-old design.
Well, yes, my previous 3G had been stolen, I needed a replacement right away, and I couldn't afford the premium for the 3GS right then. But if the 3G was intended to be obsolete less than a year after I bought it, it was a dick move to sell it with a 2 year contract. I don't think it's too much to ask that a phone not be obsolete before the contract runs out.
But I have learned my lesson. I'm only buying top-of-the-line from now on. I need to switch to Verizon because I moved to an area where they have the only decent network, and I'm holding out for the Rezound or Nexus Prime (Nov 10th).
But this also favors Android over the iPhone. New iPhones only come out every so often. Suppose your iPhone broke/got lost/got stolen at a time when the current iPhone is 8 months into its lifecycle. Your choices are to sign a 2 year contract for a phone that will be likely be obsolete before the contract runs out, pay an exorbitant cash price, go without a phone until the next release, or buy a cheap phone with no contract and wait for the next release. Or you could buy Android. There's always a latest and greatest Android phone that's not more than a month or so old.
Point being, all of the Android phones released around the original iPhone and iPhone 3G have most definitely been cut off. However, the Nexus One is newer than the 3GS, not to mention the benchmark model for that generation of Android device, and it has already been cut off.
This is separate from the 3G issue which was bad, but is in the past at this point. It's also arguable that even slow 3G users are better off than users of the same era stuck with Android 1.5/1.6. Hell, just throw ultrasn0w on your 3G and it becomes perfectly usable again.
You have a weird view on how Kings are treated, or on Apple itself.
I appreciate you acknowledging the products ending up in a landfill.
We really need to change the way we do things not just because of the recession but because it is entirely unsustainable.
I had hope google would recognize this problem but it seems they are more interested in the bottom line.
My girlfriend cares way more that her 3GS runs iOS5 than she does that it doesn't have a 4.5" screen.
Its UMTS radio wouldn't make the cut on today's store shelves, and its camera sucks. But fundamentally this is about planned obsolescence. Google doesn't want to have to pay to maintain the driver stack and QA infrastructure for an old phone.
The Nexus One has 512MB of internal storage. The Nexus Galaxy has 32GB of internal storage. If ICS weighs in at much more than 400MB and has the stellar (read as: "perfunctory") MicroSD support we've come to expect from Android, it'd be about as enjoyable as a fart in a spacesuit on a Nexus One.
There are a fair few modes of encryption (such as CFB, OFB and CTS) out there which ensure that the encrypted data is the same size as the input data. Even if Apple uses a mode which requires padding, the padding should not be so large as to increase the size of the iOS image to the size that you are suggesting.
If you compress first and then encrypt, you can then get smaller file sizes than the input, because the compression algorithm can work on the plaintext.
Let me get this conversation straight.. Someone says that it's strange that android is so large. Someone else says iOS is big too. Then someone comes in to say that they are not large, they just suck at getting the compress/encrypt issue right. No one, other than obtino, thinks that it was simply a mistake that Xuzz put 'then' in his/her post?
So, it is my understanding that an IPSW file is a ZIP archive containing a number of files, the largest one being where the main filesystem is stored. This file is encrypted, and does not compress very well at all.
However, that file is itself a dmg (Apple disk image) file, which is a compressed file format: a dmg is a compressed HFS+ image. Therefore, the encryption is happening after the compression.
Therefore, I do not believe it is accurate to claim that this is key to the problem. While it is humorous that the files are being compressed, encrypted, and then compressed again, that is not what is causing them to fail to compress: the first compression should work.
Instead, if we go one level deeper, we can ask the question "what is Apple even storing on this filesystem", and the answer is "maybe one or two hundred megabytes of executable code, and a few hundred megabytes of graphics".
The images are stored as PNG and JPEG: file formats that are already compressed. We therefore would not expect the version in the final output file to be much smaller than that on the filesystem. These files are, in essence, being compressed, compressed, encrypted, and compressed. ;P
The executable code, meanwhile, really doesn't compress well with algorithms like deflate: while it has reasonably low entropy, its encoding looks irritatingly random to algorithms that are looking for sequences of bytes (or bits) that are actually identical, especially over small window sizes.
The problem is that you may see "add one, compare, branch if equal" all over the place, but it is "add one (to X), compare (with Y), branch if equal (to Z)", which breaks up the nice sequence. Even just reorganizing the data bits based on the instruction encoder then helps /tremendously/.
However, it is also often the case that X is one of just a few numbers, Z is one of a small range (loops aren't usually that large), etc.: however, normal algorithms look for "exactly this", not "something similar to this with an offset" (or even switching to a general integer encoder); again, minor details, but it breaks deflate.
...and, indeed, there are better compression algorithms out there already that are designed to handle code well. I swear Google even had some cool stuff for this, but I'm not finding it right now :(. Regardless, a quick (silly) citation for validity:
"""While we have not addressed the compression of machine code, others have shown that it is possible to compress machine code by a factor of 3 using a specially tuned version of a conventional compressor [Yu96] and by as much as a factor of 5 using a compressor that understands the instruction set [EEF +97]."""
-- http://www.usenix.org/event/usenix99/full_papers/wilson/wils...
So, yeah: I think the key problem is that Apple is not wasting disk space on the device. And, when you put it that way, it is obvious: why would Apple waste 700MB of flash on a 32GB device, space the user would probably really love to be storing music in, when they only have 100MB of entropy?
The answer is: "they wouldn't", and so (modulo the further compressibility of binaries, an interesting and partially open academic problem) the result is that most of the data on the filesystem is already compressed images/audio, and therefore compressing, encrypting, and even compressing again, doesn't matter to the result.
dd if=/dev/zero of=/tmp/file count=50k bs=100 # create 5MB file of zero
aes -e -f file -o file2 -p asdfasdf # create aes encrypted version of the file
tar -czf file.tar.gz file # compress file
tar -czf file2.tar.gz file2 # compress encrypted file
du -sh file* # check size of all files
Here is the output I got: 4.9M file
5.0M file2
8.0K file.tar.gz
5.0M file2.tar.gz
These results pretty much speak for themselves. Just think of it this way, compression works by finding patterns (like every byte is zero), and only storing the patterns. If the encrypted data has patterns, then the plain text could more easily be found.If I happened to be showing how compressed codecs like jpeg, mp3 or h264 weren't compressible, I would definitely pick something more like an actual text file.
Really? Says who? The imaginary Apple-fanboy strawman?
> also made several hardware updates that left older Macs behind. So who is right?
What's "right" in this context? It's an engineering tradeoff. Considerations:
1) the cost of adding support for newer features for soon to be obsolete hardware 2) the benefits of using the added capabilities of newer hardware with no backward-compatibility restrictions (new sensors, etc). 3) the engineering effort required to make something performant in older hardware with less memory / cpu power.
From a customer standpoint, it's only wrong if the above don't hold, and the sole company's incentive is to artificially obsolete perfectly fine older devices.
Most of abandoned devices out there are by third party Android cellphone makers, who have a lot of incentive of making users just buy the new version. After all, it's their only revenue stream.
Apple, on the other hand, besides being traditionally nicer to its customers (as shown by them toping the user and support satisfaction surveys every damn year), also have the iTunes and iPhone App Store to get money off of customers with older iPhones, so they can afford to give them a new iOS version. And they also use the iPhone as a lure to their other device offerings (iPad, Macs, etc), so the benefit from users of an older iPhone not feeling left behind iOS-wise.
Perhaps the biggest reason is this: Apple still sells older models (such as the 3GS, 4G etc), especially to other parts of the world. So it's an added incentive that those are upgradable to the latest iOS.
Now, since you asked, perhaps Google doesn't want to add to their Android dev expenses the potentially huge expense of supporting older devices.
HTC Desire which basically is a Nexus One clone, couldn't even upgrade to Gingerbread+Sense, because there wouldn't be enough free storage left, so they had the choice of either using only stock Gingerbread to upgrade it, or leave it to Froyo+Sense.
Now I assume ICS is even bigger than Gingerbread, so I'm pretty sure it wouldn't fit in there. Now, will we see CM9 with ICS on Nexus One? It's possible, but maybe the CM team will be able to cut what the Android team can't cut from it, and offer a more stripped down version of it.
I can't help but note that the iPhone 3GS and iPod Touch purchased the same month are already running iOS 5.0 and I haven't noticed any speed issues.
There are already ongoing efforts to port the 4.0 SDK images to run on the Nexus One and the Nexus S, and I guarantee there will be even better options once the source code is released.
Use the freedom you paid $600 for to run ICS on your phone anyways.
http://www.anandtech.com/show/4956/apple-ios-5-review/15
Basically, as fast or faster than 4.3. But mine is a development-only device with no music or other content, so maybe that's the difference.
I was pleasantly surprised how many upgrades my phone (which the vendor never took past 2.1) continually got from Google. I managed to get most of the other features from later AOSP releases, without rooting or anything harder than browsing the market.
In the end I added a custom froyo rom to get the benefit of the JIT (since the device had enough RAM to benefit from it) and will probably jump to CyanogenMod soon.
All in all, in not sure why people are so keen for Google to follow such an archaic and monolithic release model. It's as baffling as the people who care that their browser's version number is changing too fast, except in reverse. It's a mostly meaningless number.
You can start complaing the first day Google switches the new version of Youtube or Maps to supporting 4.0 or above and you actually miss out on features. Most of the stuff they are putting in the OS is hardware-related like dual-core support, NFC beam or soft-keys to replace missing buttons. Even the new font is designed for high-DPI screens.
"I managed to get most of the other features..."
"I added a custom froyo rom... and will probably jump to CyanogenMod soon."
Punchline: "All in all, in not sure why people are so keen for Google to follow such an archaic and monolithic release model."
Even the stuff that you have to seek out, like installing a new launcher or keyboard from the market is hardly at the level of recompiling a kernel and wouldn't even be necessary if you've already chosen a 3rd party replacement such as Swype for typing, again updated on its own schedule via the Market.
I could and did do the rest (rooting, seeking out and installing custom Roms) because I enjoy fiddling with things. I don't think a JIT is the kind of thing an average person cares about, or can make decisions about its hardware requirements. I don't recommend, or see much reason, for anyone else to do it if they are not also geeks. Your phone will not disappear in a puff of smoke, on the contrary it will still silently get better without any action on your part even if the version number on the about screen doesn't tick up.
But the facilities that lets me do all that customisation are the same thing that lets anyone use Opera or Firefox as their main browser, set to open URLs by other apps, unlike in iOS where Safari will always be the default browser. Or to change the launcher, use a different dialer or theme my phone differently. These are all good things, even if you don't use them. And there is no need to if you don't wish to.
Yet, she likes new features and improvements just as much as anyone else. She might not know what a JIT is, but she'd sure notice if her web browsing got more snappy. Apple's update scheme allows everyone to enjoy new features. Google's leaves non-technical with a lesser experience.
Your girlfriend, if she had bought the same phone as me, from the same vendor, would still be on Android 2.1 but without her having to do anything (apart from possibly agree to some updates when prompted on the phone) she would have the latest versions of apps such Google Maps (only requires Android 1.6 and up) which was better than iOS Maps when the phone was sold, and is still better than iOS Maps in the very latest iOS 5. It has many new features like offline maps, Google location integration, 3D vector maps etc. and she can look forward to more being added.
Meanwhile, if she'd bought a 3G (which has near identical hardware) she'd have had to plug her iPhone into a computer, updated iTunes, and then updated the iPhone to get iOS 3 after a year. She'd have had to do this again to get iOS 4, which would have nearly bricked her phone due to it's lack of speed (despite not actually providing many of the actual features of iOS 4). She could then partially fix this by updating iTunes and the iPhone again after a few point updates were released and then would no longer receive any updates to anything Apple considers part of the OS.
Both systems have ups and downs (e.g. I'm surprised that the Android browser isn't something that's updated independently as you'd think that would fit Google's goals very well, but I assume there's technical issues I don't understand). A fixation on the version number of the OS, or false stereotypes about Android and iOS, obscures all of this.
Finally, the point about the JIT (which I realise I wasn't clear about) is that it only provides benefit if the phone has sufficient RAM. Random people on Android forums would naturally assume newer=better and be disappointed that they didn't have the new shiny, but my phone was somewhat unique in having a large amount of RAM (relative to the rest of the hardware specs anyway). It's therefore a good example of people feeling like they're missing out on something, that would actually hurt their performance if they got it.
Too bad the update won't be straight from Google this time. One of the key benefits of the Nexus One for nearly 2 years comes to an end.
Thus, what do you think cyanogen can do to make ICS properly run on the N1 hardware?
CM, on the other hand, will appear on any device that somebody is dedicated enough to bring it to. So if somebody really wants ICS on the N1, then they'll do it.
Apple handled this a lot better with iOS 4 and the old iPhone 3G. They simply took out features that the 3G couldn't handle. My N1 handles Gingerbread perfectly without any hiccups. Incredibly, every version of Android seemed to make my N1 faster. You couldn't say the same for iOS 3/4 on the 3G, which got worse, and any reasonable person wouldn't expect Apple to support the 3G beyond iOS 4. The N1, on the other hand, seemed like it could support at least two more versions of Android.
It is one of the reasons I switched to Apple.
Google has never really cared about support.
> They'd have nothing to lose.
They'd have to spend time porting and validating it.
Well, besides how much easier it will be for third parties to add ICS to Nexus One.
here are two issues:
1) Android is suffering from feature creep / bloat
2) Unresolved design issues are biting them in the ass
I do still like it too, it just could've been that much better without much more effort put into it.
And they say fragmentation isn't an issue...
It's Nokia and Symbian all over again.
The other thing that really stinks on the iPad compared to the N1 is the non-multi-tasking of apps. Everytime I switch to a different app it starts all over again... Really? Really.
In general iOS was really pretty, and really usable. Maybe I was just aculturated to the android way of handling multi-tasking and notifications, but those two things alone made me think, "I can't believe people put up with this stuff..." :)
You may want to note that iOS was released more than a year before Android. The notifications have been essentially untouched between iPhoneOS 1 and iOS 5.
> The other thing that really stinks on the iPad compared to the N1 is the non-multi-tasking of apps. Everytime I switch to a different app it starts all over again... Really? Really.
Not really no, you might want to update your iPad at least to the OS released 16 months ago.
Wrt notifications... I just don't understand _why_ they didn't touch it between iOS1 and iOS5. It was so bad :) I'm sure it's much better now.
My guess is: limited engineering power and other things they considered more critical to user-experience (however misguided their consideration was).
Those are the reasons I chose a N1 over the 3gs that was available at the time. Now that Apple is releasing a truly unlocks 4s I'm taking a serious look.
Nexus One was seriously "flawed" for having only 512MB of internal storage. I had to uninstall tons of applications just to update the built in ones.
I am constantly making calls of which 1MB non-SD app to evict, while Browser and Maps and friends pile on 5-10MB each. And there isn't even any piracy(?)-related reason to make these apps internal-only, like there is for paid apps.
My N1 is a constant state of "Browser storage full" since the latest round of app updates.
"won't run on Nexus One", you say?
it'll run back-to-back Ironman triathlons
As a side note, at these speeds, feels like windows xp has less hardware reqs than android :P