{"id":322,"date":"2004-04-07T21:31:00","date_gmt":"2004-04-08T01:31:00","guid":{"rendered":"http:\/\/www.markbaker.ca\/wp\/?p=351"},"modified":"2004-04-07T21:31:00","modified_gmt":"2004-04-08T01:31:00","slug":"robert-obrien-an-economic-metaphor-for-constrained-interfaces","status":"publish","type":"post","link":"http:\/\/www.markbaker.ca\/blog\/2004\/04\/robert-obrien-an-economic-metaphor-for-constrained-interfaces\/","title":{"rendered":"Robert O&#8217;Brien; an economic metaphor for constrained interfaces"},"content":{"rendered":"<p>Robert sent me a great email that deserves to be on the Web.  He doesn&#8217;t\nhave a weblog, but gave me permission to post it here.<\/p>\n\n<pre>\nMight be of interest to you, if you haven't seen it already. Came across\nthis justification for constrained interfaces and unified namespaces...it\nties the argument to economics and the \"Wealth of Nations\" (Adam Smith).\n\n<a href=\"http:\/\/www.namesys.com\/v4\/v4.html\">Reiser File System v4 ( http:\/\/www.namesys.com\/v4\/v4.html )<\/a>\n\n\"The expressive power of an information system is proportional not to the\nnumber of objects that get implemented for it, but instead is proportional\nto the number of possible effective interactions between objects in it.\n(Reiser's Law Of Information Economics)\n\nThis is similar to Adam Smith's observation that the wealth of nations is\ndetermined not by the number of their inhabitants, but by how well connected\nthey are to each other. He traced the development of civilization throughout\nhistory, and found a consistent correlation between connectivity via roads\nand waterways, and wealth. He also found a correlation between\nspecialization and wealth, and suggested that greater trade connectivity\nmakes greater specialization economically viable.\n\nYou can think of namespaces as forming the roads and waterways that connect\nthe components of an operating system. The cost of these connecting\nnamespaces is influenced by the number of interfaces that they must know how\nto connect to. That cost is, if they are not clever to avoid it, N times N,\nwhere N is the number of interfaces, since they must write code that knows\nhow to connect every kind to every kind.\n\nOne very important way to reduce the cost of fully connective namespaces is\nto teach all the objects how to use the same interface, so that the\nnamespace can connect them without adding any code to the namespace. Very\ncommonly, objects with different interfaces are segregated into different\nnamespaces.\n\nIf you have two namespaces, one with N objects, and another with M objects,\nthe expressive power of the objects they connect is proportional to (N times\nN) plus (M times M), which is less than (N plus M) times (N plus M). Try it\non a calculator for some arbitrary N and M. Usually the cost of inventing\nthe namespaces is much less than the cost of the users creating all the\nobjects. This is what makes namespaces so exciting to work with: you can\nhave an enormous impact on the productivity of the whole system just by\nbeing a bit fanatical in insisting on simplicity and consistency in a few\nareas.\"\n<\/pre>","protected":false},"excerpt":{"rendered":"Robert sent me a great email that deserves to be on the Web. He doesn&#8217;t have a weblog, but gave me permission to post it here. Might be of interest to you, if you haven&#8217;t seen it already. Came across this justification for constrained interfaces and unified namespaces&#8230;it ties the argument to economics and the [&hellip;]","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-322","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/322","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/comments?post=322"}],"version-history":[{"count":0,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/322\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/media?parent=322"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/categories?post=322"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/tags?post=322"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}