{"id":9740,"date":"2014-09-25T21:09:47","date_gmt":"2014-09-26T01:09:47","guid":{"rendered":"http:\/\/mjtsai.com\/blog\/?p=9740"},"modified":"2014-09-26T08:38:11","modified_gmt":"2014-09-26T12:38:11","slug":"private-api-and-open-source","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2014\/09\/25\/private-api-and-open-source\/","title":{"rendered":"Private API and Open Source"},"content":{"rendered":"<p><a href=\"http:\/\/www.codebykevin.com\/blosxom.cgi\/2014\/09\/24#private-api-open-source\">Kevin Walzer<\/a>:<\/p>\r\n<blockquote cite=\"http:\/\/www.codebykevin.com\/blosxom.cgi\/2014\/09\/24#private-api-open-source\"><p>It&rsquo;s hard for me to get past the absurdity of Apple&rsquo;s position here. It&rsquo;s simply baffling why one of the largest open-source projects they sponsor--WebKit--violates platform protocols by using private API&rsquo;s, and apps directly bundling such code can&rsquo;t be deployed on the platform&rsquo;s major distribution channel, the Mac App Store. Wouldn&rsquo;t it be better for Apple to open up these private API&rsquo;s, make them public, and allow third-party developers to use them if necessary? WebKit&rsquo;s use of these API&rsquo;s dates back to the earliest days of the project; I found commit messages from 2002 that report their inclusion. Tk would certainly benefit if use of those API&rsquo;s could be made legal. If a platform vendor&rsquo;s private API is used in a vendor-sponsored open-source project, how truly private is the API? If Apple is going to be consistent here, shouldn&rsquo;t WebKit remove these private API calls, and find another way to render browser windows in a smooth, crisp fashion?<\/p><\/blockquote>\r\n<p>In a way, it does make sense. Other core OS projects that Apple has open-sourced also use private API&mdash;that probably should stay private. But I agree that it would be nice to be able to ship a customized version of WebKit. And if a Web browser needs private API to get good performance, that&rsquo;s probably also a code smell.<\/p>","protected":false},"excerpt":{"rendered":"<p>Kevin Walzer: It&rsquo;s hard for me to get past the absurdity of Apple&rsquo;s position here. It&rsquo;s simply baffling why one of the largest open-source projects they sponsor--WebKit--violates platform protocols by using private API&rsquo;s, and apps directly bundling such code can&rsquo;t be deployed on the platform&rsquo;s major distribution channel, the Mac App Store. Wouldn&rsquo;t it be [&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":[2],"tags":[30,39,74,1013,71,1012,328],"class_list":["post-9740","post","type-post","status-publish","format-standard","hentry","category-technology","tag-mac","tag-macappstore","tag-opensource","tag-private-api","tag-programming","tag-tcl-tk","tag-webkit"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/9740","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=9740"}],"version-history":[{"count":3,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/9740\/revisions"}],"predecessor-version":[{"id":9743,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/9740\/revisions\/9743"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=9740"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=9740"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=9740"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}