{"id":1628,"date":"2007-12-01T13:38:51","date_gmt":"2007-12-01T17:38:51","guid":{"rendered":"http:\/\/mjtsai.com\/blog\/2007\/12\/01\/developing-with-leopard\/"},"modified":"2007-12-01T13:38:54","modified_gmt":"2007-12-01T17:38:54","slug":"developing-with-leopard","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2007\/12\/01\/developing-with-leopard\/","title":{"rendered":"Developing With Leopard"},"content":{"rendered":"<p><a href=\"http:\/\/www.mikeash.com\/?page=pyblog\/leopard-first-impressions.html\">Mike Ash<\/a> posts his thoughts on what&rsquo;s new in Leopard for developers.<\/p>\n\n<dl>\n<dt>Garbage Collection<\/dt>\n<dd>Yes, this is a big deal, and Apple seems to have done a good job. I don&rsquo;t know why people thought this would be impossible, though, given that other versions of Objective-C have had garbage collection for a long time.<\/dd>\n<dt>Objective-C 2.0<\/dt>\n<dd>Like Ash, I&rsquo;m not really a fan of properties and find the new <code>for&#8230;in<\/code> syntax unexciting. However, given the addition of garbage collection and the changes in the 64-bit runtime, I think it definitely deserves to be called 2.0.<\/dd>\n<dt>Xcode 3<\/dt>\n<dd>You&rsquo;d think that having a rock-solid IDE would be a high priority, but Xcode (like Project Builder before it) has consistently been &ldquo;buggy and weird.&rdquo; Like Ash says, it&rsquo;s not as if there&rsquo;s an alternative, but I spend as little time in it as possible.<\/dd>\n<dt>Interface Builder 3<\/dt>\n<dd>Overall a huge improvement. Too bad about 2.x palette compatibility, though.<\/dd>\n<dt>Instruments<\/dt>\n<dd>I haven&rsquo;t had a chance to use it much yet, but it looks promising. DTrace is great.<\/dd>\n<dt>Core Animation<\/dt>\n<dd>Good technology, but there&rsquo;s little guidance on when and how it should be used.<\/dd>\n<dt>CFStringTokenizer<\/dt>\n<dd>I&rsquo;ll be using this.<\/dd>\n<dt>Miscellaneous API additions<\/dt>\n<dd>As with Tiger, Leopard includes <em>lots<\/em> of small improvements to the APIs, many of which I&rsquo;d already rolled my own versions of. Eventually, if the Apple versions prove solid and flexible enough, and when I&rsquo;m no longer supporting Tiger, I&rsquo;ll be able to delete some code.<\/dd>\n<dt>64-bit support<\/dt>\n<dd>This is going to be important, and I&rsquo;m glad it made the Leopard release. Apple&rsquo;s treatment of Carbon developers has been shameful, even though the actual decisions have been unsurprising and were arguably the correct ones.<\/dd>\n<\/dl>\n","protected":false},"excerpt":{"rendered":"<p>Mike Ash posts his thoughts on what&rsquo;s new in Leopard for developers. Garbage Collection Yes, this is a big deal, and Apple seems to have done a good job. I don&rsquo;t know why people thought this would be impossible, though, given that other versions of Objective-C have had garbage collection for a long time. Objective-C [&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":"","apple_news_api_id":"","apple_news_api_modified_at":"","apple_news_api_revision":"","apple_news_api_share_url":"","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":[4],"tags":[],"class_list":["post-1628","post","type-post","status-publish","format-standard","hentry","category-programming-category"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/1628","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=1628"}],"version-history":[{"count":0,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/1628\/revisions"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=1628"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=1628"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=1628"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}