He unsuggested it after I walked through the umpteen problems involved in implementing this over hundreds of millions of accounts.
He unsuggested it after I walked through the umpteen problems involved in implementing this over hundreds of millions of accounts.
But even doing this server side isn't that bad, calculating the difference between two sets, the top 100 apps and the apps a user owns, iterating with more if the size of the result is less than 10, is a lot less work on a per-user per-request basis than a lot of sites do to customize their experience.
Of course, Apple most likely doesn't want anyone to know which app is the 11th or something, which means a lot of server side processing to customize the exact list of 10 sent to the client. Sites like Facebook already do this kind of stuff for calculating the timeline for hundreds of millions of accounts.
I appreciate there's a nerdy "IT MUST BE CORRECT" aspect to this but Apple are making billions - why would they bother doing work and creating potential support problems for themselves to gain maybe a fraction of a percent more?
You're welcome to start listing the actual umpteen problems that a billion dollar company would incur rather than just talking out of your ass about "Apple's billions" to a bunch of people, myself included, who have most likely implemented similar personalization systems at countless other sites using a lot less human, financial, and processing capital than Apple has. Apple "wastes" a megabyte for a picture of a wave on their current home page. Any change here is likely to move the needle in a positive direction more than the increased sales from having a massive picture of a wave on their home page.
It means it'll take multiple requests to get all the results, sure, but if you weigh the initial request statistically (for the first 10, I think we'll need 12..) and so on, you can avoid even that.
Why bother?
As I said, this wouldn't involve much more in the way of data transfer than the current setup. I assume that 15 apps instead of 10 preloading is the same order of magnitude; the latency is the kicker, not the tiny bandwidth required for metadata and icons.
Say you find the top 500 apps instead and cache that. You still have to iterate over that 200M times, looking up each users list of apps (~50-100 on the average, I have 400+ in my list), intersecting them, making sure there's still a top 10, and caching the results.
Either way, you've done a load of work - that needs development, maintenance, testing - to gain what?
The app store is already making billions for Apple with "flawed" top 10s. You might gain a few 10s of millions by implementing this scheme. What's the point?
to gain what To not annoy users and gain a little bit more of that perfection they are known for. Increase purchases by a few percent. Not striving hard when you are at the top is how you end up in MS, IBM, and every other fallen giant's shoes.
Who's going to steal Apple's #1 app store place if they can't be arsed doing per-user top 10 lists?