This page is part of the web mail archives of SRFI 84 from before July 7th, 2015. The new archives for SRFI 84 contain all messages, not just those from before July 7th, 2015.
I'm in the midst of moving, so I haven't yet had a chance to read Zooko's Triangle. I do have time this morning to comment on one thread, without meaning to imply that I'm not paying attention to the other ideas. In "module naming" (http://lists.gnu.org/archive/html/guile-devel/2001-04/msg00285.html), Neil Van Dyke writes: > We *might* also socially consider that hypothetical Apache team to > have "ownership" of the `(apache)' namespace, such that it would > be understood that other people probably shouldn't be naming modules > `(apache ...)' without approval from the team, unless the team already > gave blanket approval for anyone to add modules into that namespace. Alex Shinn writes: > For a centralized naming authority, we'd setup some sort of > registration system at a server like schemers.org, and delegate module > namespaces to separate "entities," either organizations or individual > authors, presumably identified uniquely by a public key. This is > complicated, rigid and doesn't scale well. OK, let's not do that. :-) Are you familiar with CPAN (http://cpan.org, the Comprehensive Perl Archive Network)? CPAN is ten years old, so I'm sure that CPAN has made mistakes that we could learn from. Various adjectives (not all complementary...) come to my mind when I think of CPAN. "Rigid", however, is not one of them. In CPAN, if you write a module that interactions with, controls, tests, analyzes, works with, improves, extends, or otherwise has something to do with Apache, you can put your module in the "Apache::" namespace. Control over the "Apache::" namespace is not delegated to a separate entity. I haven't thought about what a schemers.org library registry might look like in any kind of detail, but what I had in mind was along these lines. (If we use a flatter namespace as Neil recommends, replace all "web-server:apache" with "apache" in the following description). One person would be able to register their open source library as "web-server:apache:foo", someone else could use "web-server:apache:bar", and a third person could use "web-server:apache:baz". Now, once you have a universal identifier, you and only you may create additional symbols with that particular name using the double colon extension mechanism in the current specification. For example, suppose Apache was written in Scheme, and the Apache webserver itself had the schemers.org name of "web-server:apache". Using the extension mechanism in the current specification, various parts of the server could be named such things as "web-server:apache::front-end", "web-server:apache::internals", or whatever. Only the Apache team could name things like that. However this would not give the Apache team control over the "web-server:apache" namespace. Other people can still use "web-server:apache:foo", "web-server:apache:turbo-charge", "web-server:apache:hate", or whatever. But once you had "web-server:apache:foo", you and only you (or people you delegated your authority to...) could name things such as "web-server:apache:foo::abc". Andrew