On Sep 20, 2007, at 8:12 PM, Ramon Leon wrote:
Magritte and Magma already both very nearly use the same prefix, "MA" and "Ma", respectively. It's hard for me to accept, after all this discussion and effort and say Göran's finally makes it into the base image, that I could very easily collide with Magritte unless at least one of us renames a bunch of stuff.
We use two letter prefixes because we're forced to see them and type them constantly, with Göran's proposal, it'd be much more common to use Magritte:: or Magma:: as the prefix since you wouldn't be typing it, it'd resolve naturally when you just used the short class name. Granted this doesn't help existing packages with short prefixes, but it'd help new code. If it worked well, I'd sure take the time to rename my code to use it.
Actually, you are not forced to use two letter prefixes - you can use ten letter prefixes if you like. But it would get tiresome to type those - unless you created export names. How's that? When you build a package, use long names. But create a subclass of SharedPool with short names for all your classes bound to your classes. So if I create the FlamingWicked package, I would create a FlamingWickedExports subclass of SharedPool with the short names of my classes as class variables and a class initialize method that initializes the elements.
FlamingPoolExports>>initialize Foo := FlamingWickedFoo. Bar := FlamingWickedBar....
Users of my package just add FlamingPoolExports to the PoolDictionaries in the class definition. No tool support required.
-Todd Blanchard