{"id":27282,"date":"2019-11-18T16:05:32","date_gmt":"2019-11-18T21:05:32","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=27282"},"modified":"2020-03-05T09:04:02","modified_gmt":"2020-03-05T14:04:02","slug":"the-hotel-cupertino-clause","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2019\/11\/18\/the-hotel-cupertino-clause\/","title":{"rendered":"The Hotel Cupertino Clause"},"content":{"rendered":"<p><a href=\"https:\/\/twitter.com\/slightlylate\/status\/1191026446715604993\">Alex Russell<\/a> (Google employee):<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/slightlylate\/status\/1191026446715604993\">\n<p>There seems to be confusion about how, exactly, Apple keeps the web second-class on iOS.  Understandable! It&rsquo;s the interplay of several interlocking effects. Let&rsquo;s examine them (thread).<\/p>\n<p>First, no matter how app-like it is, Section 4.2 of the App Store Review Guidelines excludes web experiences from being discovered via the search box where users go to add things to their homescreen.<\/p>\n<p>[&#8230;]<\/p>\n<p>Next, Apple under-invests in Safari&rsquo;s engine (WebKit) in ways that cumulatively make it difficult to do anything new and ambitious.<\/p>\n<p>[&#8230;]<\/p>\n<p>On every other OS, the way we have dealt with laggard browsers is through competition.<\/p>\n<p>[&#8230;]<\/p>\n<p>Section 2.5.6 is the Hotel Cupertino clause: you can pick any browser you like, but you can&rsquo;t choose a better web. In fact, iOS prevents other browsers from even replacing Safari as the system default.<\/p>\n<p>2.5.6 caps web progress at the rate that Apple (under) invests.<\/p>\n<p>All of this has been done to preserve the linkage between proprietary OS\/APIs, an exclusive software ecosystem, and the hardware sales that software ecosystem supports.<\/p>\n<p>If you&rsquo;re a web developer, this means that iOS -- the whole OS -- is the new IE6. Your CEO and wealthiest users won&rsquo;t switch off it, so it taxes everything you do. They also can&rsquo;t imagine the web being great because, for them, it isn&rsquo;t.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/xenadu02\/status\/1191066822361022465\">Russ<\/a> <a href=\"https:\/\/twitter.com\/xenadu02\/status\/1191067804285358080\">Bishop<\/a> (Apple employee):<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/xenadu02\/status\/1191066822361022465\">\n<p>That&rsquo;s rich, coming from the company that abused its #1 search position to drive adoption of Chrome, forked Blink from WebKit, and slams new APIs through without considering perf\/privacy.<\/p>\n<p>&ldquo;Open Web&rdquo; from Google is code for &ldquo;whatever Is best for Google and ad-tech this week&rdquo;<\/p>\n<\/blockquote>\n<blockquote cite=\"https:\/\/twitter.com\/xenadu02\/status\/1191067804285358080\"><p>You were the ones that decided to fork from WebKit, dividing what had been the largest community of devs working on web technologies.<\/p>\n<p>You did it because YOU want control of the web.<\/p>\n<p>As if best battery life and privacy is &ldquo;under-investing&rdquo;.<\/p><\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/tonyarnold\/status\/1191108575063461888\">Tony Arnold<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/tonyarnold\/status\/1191108575063461888\">\n<p>Google forking WebKit was a thin cover for breaking down standards bodies of the time.<\/p>\n<p>It wasn&rsquo;t altruistic. It wasn&rsquo;t about users.<\/p>\n<p>Google are an advertising company that uses their tech to gather data to better sell ads.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/migueldeicaza\/status\/1191335938863108097\">Miguel de Icaza<\/a> (Microsoft employee):<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/migueldeicaza\/status\/1191335938863108097\">\n<p>1. This has the upside of preventing the web to have a single provider in the form of Chromium.   This is the last bastion of defense for diverse engines.<\/p>\n<p>2. It also slows down the standardization of fringe features that are done purely for Google&rsquo;s needs and have no reason to be standardized.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/orta\/status\/1191071690194923521\">Orta Therox<\/a> (Microsoft Employee):<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/orta\/status\/1191071690194923521\">\n<p>I&rsquo;m pretty glad for the App Store rules that keep chrome from monopolizing all web browsers in every context, personally. Never been a Chrome user, but I think Safari do a good balance on user features vs dev wants.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/mattetti\/status\/1191092055910387712\">Matt Aimonetti<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/mattetti\/status\/1191092055910387712\">\n<p>Both companies are terrible and both of you have valid points. Apple opts to be conservative and closed (therefore safer but also in a closed ecosystem), Google is pushing features, often for its own benefit, which leads to fragmentation and security threads<\/p>\n<\/blockquote>\n\n<p>Yes, both companies are pursuing policies that benefit them and which they also think are better for users. Users have multiple concerns, which are only partially addressed by each browser.<\/p>\n\n<p>On the Mac, I choose Safari because I like its emphasis on privacy, and I think it&rsquo;s a better Mac app. But seemingly everyone I know who is not picky about such things uses Chrome because it&rsquo;s always compatible. (Or, perhaps, it has such marketshare that sites are forced to adapt to it, but to the user that amounts to the same thing.) I am seeing increasingly many sites that don&rsquo;t work properly with Safari, so for them I use Chrome or Firefox. The <a href=\"https:\/\/trac.webkit.org\/wiki\/WebKitGoalsfor2020\">WebKit Goals for 2020\n<\/a> (via <a href=\"https:\/\/news.ycombinator.com\/item?id=21489686\">Hacker News<\/a>) don&rsquo;t have much to say about this. It also annoys me that Safari beachballs for a few seconds every time it auto-fills a login. So I am always tempted to switch, but I don&rsquo;t like any of the other choices that much.<\/p>\n\n<p>On iOS, of course, there is no choice. Microsoft famously <a href=\"https:\/\/en.wikipedia.org\/wiki\/United_States_v._Microsoft_Corp.\">got in trouble<\/a> merely for privileging its browser, not actively blocking competing browsers from running.<\/p>\n\n<p><a href=\"https:\/\/twitter.com\/kylealden\/status\/1191132629560709120\">Kyle Pflug<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/kylealden\/status\/1191132629560709120\">\n<p>There&rsquo;s a third axis here, which is &ldquo;good for competition.&rdquo; It&rsquo;s difficult to deny (at least, in good faith) that iOS policies have the effect of making it more difficult for compelling alternate device ecosystems to take root (Google Play policies do the same thing.)<\/p>\n<p>The web has remarkable potential to be an equalizer and Apple is strongly disincentivized to invest in capabilities that enable that.<\/p>\n<p>Even when there are also good-faith reasons to prefer a walled garden (and there are many), it&rsquo;s hard to not notice the more cynical motivations.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/jamie_gaskins\/status\/1191038000265863175\">Jamie Gaskins<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/jamie_gaskins\/status\/1191038000265863175\">\n<p>I really wish people would stop using the phrase &ldquo;the new IE6&rdquo;. There is literally nothing in web development today that compares to developing for IE6.<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/CongoCart\/status\/1191047836709924864\">Nathanael Anderson<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/CongoCart\/status\/1191047836709924864\">\n<p>Actually I tend to agree it is the new ie6.  Been around since pre-ie6.    IE6 froze API in that era; so all these cool new API were unusable because of IE6.   Safari is doing the same thing now.  Lots of new shipping api&rsquo;s are unusable because of having to support iOS...<\/p>\n<\/blockquote>\n\n<p><a href=\"https:\/\/twitter.com\/bridgermax\/status\/1191209284220182528\">Bridger Maxwell<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/bridgermax\/status\/1191209284220182528\">\n<p>FWIW, when I port features from my iOS app to the web app version it is often Safari that is missing the APIs. The little examples add up. For example, touch and scroll input APIs don&rsquo;t support Retina resolutions yet (they are all whole numbers). Other browsers do.<\/p>\n<\/blockquote>\n\n<p>There are <a href=\"https:\/\/twitter.com\/zwaldowski\/status\/1191074397429358592\">lots<\/a> <a href=\"https:\/\/twitter.com\/drance\/status\/1191116432290959360\">of<\/a> <a href=\"https:\/\/twitter.com\/dgregor79\/status\/1191109825448427520\">people<\/a> making fun of Google for counting the number of Web APIs implemented. But what other metric would make sense? It&rsquo;s pretty funny because in the early days Apple bragged about the percentage of Web specs Safari implemented vs. other browsers, and at each WWDC it touts the number of new iOS and macOS APIs that it&rsquo;s added.<\/p>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2019\/11\/07\/apples-new-privacy-page\/\">Apple&rsquo;s New Privacy Page<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2019\/11\/04\/electron-apps-rejected-from-the-mac-app-store\/\">Electron Apps Rejected From the Mac App Store<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2019\/09\/26\/safari-13-and-extensions\/\">Safari 13 and Extensions<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2019\/08\/01\/safari-wont-load-google-sites\/\">Safari Won&rsquo;t Load Google Sites<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2019\/06\/21\/chrome-to-limit-ad-blocking-extensions\/\">Chrome to Limit Ad Blocking Extensions<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2019\/03\/11\/skype-for-web-drops-support-for-safari\/\">Skype for Web Drops Support for Safari<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2019\/02\/28\/we-need-chrome-no-more\/\">We Need Chrome No More<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2017\/01\/18\/the-problem-with-amp\/\">The Problem With AMP<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2015\/08\/01\/safari-vs-chrome-power-consumption\/\">Safari vs. Chrome: Power Consumption<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2015\/06\/30\/safari-is-the-new-ie\/\">Safari Is the New IE<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2013\/04\/14\/code-hard-or-go-home\/\">Code Hard or Go Home<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2013\/04\/03\/blink\/\">Blink<\/a><\/li>\n<\/ul>\n\n<p id=\"the-hotel-cupertino-clause-update-2019-11-20\">Update (2019-11-20): <a href=\"https:\/\/docs.house.gov\/meetings\/JU\/JU05\/20190716\/109793\/HHRG-116-JU05-20190716-SD036.pdf\">Apple responds to Congress<\/a> (via <a href=\"https:\/\/news.ycombinator.com\/item?id=21587191\">Hacker News<\/a>):<\/p>\n<blockquote cite=\"https:\/\/docs.house.gov\/meetings\/JU\/JU05\/20190716\/109793\/HHRG-116-JU05-20190716-SD036.pdf\"><p>Users cannot uninstall Safari, which is an essential part of iPhone functionality; however, users have many alternative third-party browsers they can download from the App Store.<\/p>\n<p>[&#8230;]<\/p>\n<p>iPhone users cannot set another browser as the default browser. Safari is one of the apps that Apple believes defines the core user experience on iOS, with industry-leading security and privacy features.<\/p>\n<p>[&#8230;]<\/p>\n<p>The purpose of this rule is to protect user privacy and security. Nefarious websites have analyzed other web browser engines and found flaws that have not been disclosed, and exploit those flaws when a user goes to a particular website to silently violate user privacy or security. This presents an acute danger to users, considering the vast amount of private and sensitive data that is typically accessed on a mobile device. By requiring apps to use WebKit, Apple can rapidly and accurately address exploits across our entire user base and most effectively secure their privacy and security. Also, allowing other web browser engines could put users at risk if developers abandon their apps or fail to address a security flaw quickly. By requiring use of WebKit, Apple can provide security updates to all our users quickly and accurately, no matter which browser they decide to download from the App Store.<\/p><\/blockquote>\n\n<p><a href=\"https:\/\/news.ycombinator.com\/item?id=21587764\">rgovostes<\/a>:<\/p>\n<blockquote cite=\"https:\/\/news.ycombinator.com\/item?id=21587764\"><p>Google pioneered the out-of-process architecture that Safari now uses, developed the Safe Browsing program that Safari also uses, drove the adoption of HTTPS, put pressure on misbehaving certificate authorities and shepherded certificate pinning and then Certificate Transparency, and found many vulnerabilities in WebKit through security research that Apple was not itself doing.<\/p>\n<p>Moreover, on the desktop, Chrome and Firefox both have automatic update channels that allow them to push out security fixes much more rapidly than Apple&rsquo;s heavy OS updates. (On iOS, they would be limited by Apple&rsquo;s App Store approval process.)<\/p><\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Alex Russell (Google employee): There seems to be confusion about how, exactly, Apple keeps the web second-class on iOS. Understandable! It&rsquo;s the interplay of several interlocking effects. Let&rsquo;s examine them (thread). First, no matter how app-like it is, Section 4.2 of the App Store Review Guidelines excludes web experiences from being discovered via the search [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2019-11-18T21:05:39Z","apple_news_api_id":"852070ce-eccb-4cda-a9f6-e472dad0596d","apple_news_api_modified_at":"2020-03-05T14:04:05Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAABg==","apple_news_api_share_url":"https:\/\/apple.news\/AhSBwzuzLTNqp9uRy2tBZbQ","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[2],"tags":[91,1930,38,411,412,51,456,31,1667,209,30,1666,386,355,103,96,328],"class_list":["post-27282","post","type-post","status-publish","format-standard","hentry","category-technology","tag-appstore","tag-app-store-review-guidelines","tag-apple","tag-blink","tag-chromium","tag-google","tag-googlechrome","tag-ios","tag-ios-13","tag-legal","tag-mac","tag-macos-10-15","tag-mobilesafari","tag-privacy","tag-safari","tag-web","tag-webkit"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/27282","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=27282"}],"version-history":[{"count":5,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/27282\/revisions"}],"predecessor-version":[{"id":27320,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/27282\/revisions\/27320"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=27282"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=27282"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=27282"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}