I get triggered when someone thinks that they are smarter and know more about someone’s code than the person who wrote the code, when they themselves haven’t even seen the code, nor understand the challenges that presented themselves at the time. I expect this from the tech journalists with English degrees who understanding little about the inner workings of computers and how software works. I do not expect this, however, from people with computer science degrees, which is why I was disappointed to hear John Gruber postulate confidently that increasing the VIP limit in iCloud mail from 100 to 500 would pose zero problems from a technological standpoint. We have no idea if it would or not, but using our degrees we can make a pretty educated guess, and the result of that guess is that it absolutely would come with a perf cost.
I have no idea how Apple’s VIP system works, but if I were building it, I’d have an array, probably coming from a database, of all the VIP email addresses. When determining whether to notify about an email or not, I’d check the email address in question against that array, to see if it exists in that array or not. Searching an array gets more expensive the larger your array is. This is basic computer science. I can’t say to what extent increasing the limit to 500 would be a performance cost, but make no mistake — it would absolutely be benchmarkable.
If this computation were happening on Apple’s servers, and I don’t know why it wouldn’t be, then a software change like this one will be amplified by scale. If we’re talking a few milliseconds on a single email, multiply that by every single email of every person who uses this feature. Soon you’re potentially looking at minutes of daily server time spent on accommodating the increase of the VIP list from 100 to 500.