{"id":2630,"date":"2010-05-21T14:02:59","date_gmt":"2010-05-21T17:02:59","guid":{"rendered":"http:\/\/brockerhoff.net\/blog\/?p=2630"},"modified":"2010-05-21T14:09:44","modified_gmt":"2010-05-21T17:09:44","slug":"re-ipad-time-4","status":"publish","type":"post","link":"https:\/\/brockerhoff.net\/blog\/2010\/05\/21\/re-ipad-time-4\/","title":{"rendered":"Re: iPad time"},"content":{"rendered":"<p><a href=\"http:\/\/blog.bigzaphod.org\/2010\/05\/21\/birth-of-a-platform\/\" target=\"_blank\">Interesting piece <\/a>by Sean Heber aka <a href=\"http:\/\/blog.bigzaphod.org\/\" target=\"_blank\">BigZaphod<\/a>.\u00a0\u00a0Remember my post about <a href=\"\/blog\/2010\/04\/15\/re-ipad-time-3\/\">the significance of Clang\/LLVM<\/a> on the iPad?<\/p>\n<blockquote><p>I think there\u2019s a chance that Apple is slowly building Objective-C into a managed environment similar to Java\/.NET. At some point in the future they could define an Objective-C HD (or whatever :P) that no longer maintains total compatibility with C. Since they use\u00a0<a href=\"http:\/\/llvm.org\/\">LLVM<\/a> a lot now, they can even use that to analyze your code to make sure that pointer accesses are safe and controlled. Anything that isn\u2019t safely confined to your own app would be an error. Access to the Objective-C runtime functions could possibly even be revoked. After which point, Objective-C HD no longer compiles to machine code but instead to an intermediate representation.<\/p>\n<p>By doing something like this, they can abstract the actual underlying CPU hardware and architecture out of the applications themselves as well as maintain a truly safe sandbox where private and undocumented APIs simply will not be allowed to work. Apps on the App Store would be submitted in this intermediate format which they can translate into the machine code that\u2019s native to whatever CPU happens to be in the device you\u2019re downloading the app for or they could simply put a JIT in iPhoneOS (although there\u2019s no reason to waste the CPU cycles on the device if they can translate them once on the backend &#8211; at least for mobile stuff).<\/p><\/blockquote>\n<p>Pretty much complementary to my reasoning.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Interesting piece by Sean Heber aka BigZaphod.\u00a0\u00a0Remember my post about the significance of Clang\/LLVM on the iPad? I think there\u2019s a chance that Apple is slowly building Objective-C into a managed environment similar to Java\/.NET. At some point in the future they could define an Objective-C HD (or whatever :P) that no longer maintains total [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3,4,19],"tags":[14,15,13],"class_list":["post-2630","post","type-post","status-publish","format-standard","hentry","category-apple","category-dev","category-software","tag-clang","tag-ipad","tag-llvm"],"featured_image_src":null,"author_info":{"display_name":"Rainer Brockerhoff","author_link":"https:\/\/brockerhoff.net\/blog\/author\/rbrockerhoff\/"},"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p1q3Zc-Gq","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/brockerhoff.net\/blog\/wp-json\/wp\/v2\/posts\/2630","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/brockerhoff.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/brockerhoff.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/brockerhoff.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/brockerhoff.net\/blog\/wp-json\/wp\/v2\/comments?post=2630"}],"version-history":[{"count":0,"href":"https:\/\/brockerhoff.net\/blog\/wp-json\/wp\/v2\/posts\/2630\/revisions"}],"wp:attachment":[{"href":"https:\/\/brockerhoff.net\/blog\/wp-json\/wp\/v2\/media?parent=2630"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/brockerhoff.net\/blog\/wp-json\/wp\/v2\/categories?post=2630"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/brockerhoff.net\/blog\/wp-json\/wp\/v2\/tags?post=2630"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}