Proposal: Package aliases
Bill Baxter
dnewsgroup at billbaxter.com
Wed May 14 14:29:37 PDT 2008
Bill Baxter wrote:
> Using packages for modules in D is good. It prevents name clashes. But
> you need a unique package name. The more unique (i.e. longer), the more
> a pain it becomes to use a bunch of modules from that package.
>
> For example in Java, all of SWT is in the org.eclipse.swt package. For
> DWT Frank just shortened the package to "dwt" because having to type
> something longer so many times would be a pain (and I guess because dwt
> isn't really an Eclipse project.)
>
> Anyway, putting code inside uniquely named packages is a good thing. But
> nobody wants package names to be very long, because you have to type
> them every time you do an import. Hence we have "std", and "tango". The
> longest "vendor" package name I know of is "derelict". And quite a bit
> of D code out there uses no package at all.
>
> I think it would be convenient if packages could be aliased.
>
> Right now this is not possible:
>
> alias tango.io tio; // this alias actually compiles, but...
> import tio.Stdout; // import using it doesn't work
>
> (Note for the Tango non-savvy: import tango.io.Stdout *is* valid.)
>
> So my proposal is simply to make the above code work.
> I was actually mildly surprised that it didn't.
>
> If we had this then people would be more free to name their packages
> whatever they like, comfortable in the knowledge that users will only
> have to type the full package name once.
Another possibility would be a new form of "with" for packages:
with(dwt.widgets) {
import Button,Control,Display,Shell;
}
--bb
More information about the Digitalmars-d
mailing list