Hi,
1) I believe package-local nicknames are very useful. Being able to use abbreviations and avoiding conflict between nicknames from the use site are just good ideas.
2) I don’t believe hierarchical package names are useful. That’s a Javaism which just makes things too complicated (especially if they then also are reflected by the directory hierarchy - beurk ;). Also, I agree with Kenny that splitting libraries into too fine-grained small little packages is not a good recipe for organizing your projects. Lisp packages want to be big, and there is no major disadvantage in doing so, and I fear that hierarchical package names encourage unnecessary fine-grained splitting. That just creates visibility problems, and distract from solving /actual/ problems.
Basing package names on domain names provides the illusion that you have unique names, but domain names come and go, companies change owners, repositories move to different hosting servers, etc., etc., so they are not as stable as one might think. If people use sufficiently long package names that can then be renamed locally using package-local nicknames, that’s sufficient, IMHO.
My primary CL implementation is LispWorks, so I don’t use package-local nicknames in practice, but I have used other languages with similar features (most notably Oberon), and they were just very handy.
I hope this helps.
Pascal
Packages are over-rated. We lived (and suffered) with packages for months and when I finally rolled everything up into one package it presented zero problems and ended a steady stream of problems. As one Lisp venerable said, "It was a package problem. It is always a package problem."
--
Pascal Costanza
The views expressed in this email are my own, and not those of my employer.