Modular At-Names

Allen Wirfs-Brock allen at wirfs-brock.com
Mon Oct 15 11:51:49 PDT 2012


The gist of Kevin's proposal seems to be two key points:
 1) allow implicit declaration of (non-private) symbols rather than requiring explicit declaration
  2) use module scope rather than lexical scope for symbols.

Registration/lookup of symbol values in a global registry using string keys seems like a separable concept

Both of the key points seem to be classic design alternatives for which the pros and cons have been widely argued.  The generally accepted consensus seems to be that explicit declarations are better (less error prone) than implicit and that lexical scoping is better than  (semi-) global scoping.  It's not clear to me that we really have a situation that is strongly contrary to the classic resolution of these arguments.

I agree that at-names need to be exportable and importable, but I don't see why we need anything more than support for things like:

import @iterator from '@System";

 or 

import {@save, @load} from Persistable;

For the case of importing "37" at-names, I would expect that * imports would take care of it:

import * from ModuleDefining37NameInterface;

For exports I would think you need to be explicit regardless:

export symbol @sym1, @ym2, @sym3, ... , @sym37;

Allen














More information about the es-discuss mailing list