On 30/12/15 02:25, Pascal Costanza wrote:
Hi,
- 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.
- 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 ;).
You're saying that because there are only 1279 systems in quicklisp so it's still manageable as a flat list. But wait a little with tens or hundreds more systems and packages!
Probably, you've never worked with a big source base with a directory hierarchy didn't match the naming scheme.
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.
Agreed.
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.
Oh, you're right. Now I see the light. I will therefore rename my com.informatimago.* package into 2915BB3ECC3D45029DBF41BD48508E2E.* And let's not talk about the 3 or 4 different CLON packages we have...
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.