{"id":27495,"date":"2019-12-06T16:44:48","date_gmt":"2019-12-06T21:44:48","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=27495"},"modified":"2019-12-17T16:28:28","modified_gmt":"2019-12-17T21:28:28","slug":"apples-technology-transitions","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2019\/12\/06\/apples-technology-transitions\/","title":{"rendered":"Apple&rsquo;s Technology Transitions"},"content":{"rendered":"<p><a href=\"https:\/\/pilky.me\/apples-technology-transitions\/\">Martin Pilkington<\/a>:<\/p>\n<blockquote cite=\"https:\/\/pilky.me\/apples-technology-transitions\/\">\n<p>While this saving of disk space and RAM usage certainly benefits the Mac, there are arguably more important reasons to Apple for dropping 32 bit on the Mac. They don&rsquo;t actually have much to do with 32 bit itself, but more with decisions that were made in 2007 when 64 bit was finalised.<\/p>\n<p>[&#8230;]<\/p>\n<p>When Apple introduced 64 bit with Mac OS X 10.5, they also introduced Objective-C 2.0. Part of this was a new and improved runtime, designed to fix problems with the old runtime. Unfortunately, these fixes were not compatible with existing apps, so they made the decision to only make this runtime available in 64 bit. However, this meant the (now) legacy runtime would have to stick around as long as 32 bit apps existed.<\/p>\n<p>[&#8230;]<\/p>\n<p>The behaviour of the legacy runtime effectively means that Apple can never update their existing objects with new ivars without breaking existing apps.<\/p>\n<\/blockquote>\n<p>PDFKit accidentally did just that in Sierra, causing crashes in 32-bit apps that displayed PDFs, as the framework tried to access variables that didn&rsquo;t exist.<\/p>\n\n<p>ARC has been off-limits, too. Apple&rsquo;s framework developers have been working with one hand tied behind their backs.<\/p>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2019\/10\/15\/apps-lost-with-catalina\/\">Apps Lost With Catalina<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2016\/12\/21\/more-macos-preview-pdf-trouble\/\">More macOS Preview PDF Trouble<\/a><\/li>\n<\/ul>\n\n<p id=\"apples-technology-transitions-update-2019-12-17\">Update (2019-12-17): <a href=\"https:\/\/twitter.com\/PierreLebeaupin\/status\/1203250470334152704\">Pierre Lebeaupin<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/PierreLebeaupin\/status\/1203250470334152704\">\n<p>Leopard (10.5) only ostensibly added support for 64-bit GUI apps. It was considered still rough and very few 64-bit GUI apps shipped until Snow Leopard (10.6), but the best indicator is iTunes, which ended up requiring Lion (10.7) to run as 64-bit.<\/p>\n<p>[&#8230;]<\/p>\n<p>the major reason why 68k ended up being supported as long as it was was that it supported mixed-mode. This meant no duplicate use of RAM, since all apps were using the same copy of all OS-supplied code, and no duplicate maintenance effort, for the same reason.<\/p>\n<\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Martin Pilkington: While this saving of disk space and RAM usage certainly benefits the Mac, there are arguably more important reasons to Apple for dropping 32 bit on the Mac. They don&rsquo;t actually have much to do with 32 bit itself, but more with decisions that were made in 2007 when 64 bit was finalised. [&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-12-06T21:44:57Z","apple_news_api_id":"51824dcb-e0a1-4afc-b216-0a58a812b342","apple_news_api_modified_at":"2019-12-17T21:28:31Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAAAg==","apple_news_api_share_url":"https:\/\/apple.news\/AUYJNy-ChSvyyFgpYqBKzQg","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":[575,55,30,1381,1666,760,345,71],"class_list":["post-27495","post","type-post","status-publish","format-standard","hentry","category-technology","tag-64-bit","tag-arc","tag-mac","tag-macos-10-12","tag-macos-10-15","tag-objective-c-runtime","tag-pdf","tag-programming"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/27495","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=27495"}],"version-history":[{"count":4,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/27495\/revisions"}],"predecessor-version":[{"id":27595,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/27495\/revisions\/27595"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=27495"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=27495"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=27495"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}