[racket] Help On User Libraries - The Basics

From: Neil Van Dyke (neil at neilvandyke.org)
Date: Sun Aug 21 13:50:43 EDT 2011

Ray Racine wrote at 08/21/2011 01:06 PM:
> So here is the scenario.  Joe the some what experienced coder hears 
> lisp is cool and Racket is the coolest lisp around.

I understand what you're saying, and I think you've convinced me to 
change my answers.  Before, I wanted Joe to use PLaneT development links 
early and often, to smooth the transition to sharing code, but they are 
a little annoying even when you know how to use them and you have 
scripts to help automate.

What if we initially tell Joe to just using relative filenames in his 
"require"s for his own multi-file project for now?

If Joe wants to get into packaging reusable libraries, which it sounds 
like you're doing, then he'll have a problem in most any language of 
where to put the files and how can they be found later.  In the case of 
Racket, we tell him how to do his Subversion/Git/Perforce checkouts so 
that he can keep using relative filenames.

Then, only once Joe gets to the point that he wants to share his 
libraries as open source, do we tell him about PLaneT development links 
and the rest of PLaneT.

Finally, we have a section buried somewhere for people who have a lot of 
proprietary reusable collections and don't want to hassle with PLaneT 
development links for it, and for whatever reason don't want to just 
have the configuration management checkouts put the files in standard 
relative locations... when we tell them the secret of "PLTCOLLECTS".  
Then we tell them life will be easier if they just use relative 
filenames for proprietary code, and PLaneT development links for open 
source code.

Every time Joe expresses confusion about whether he should be using 
PLaneT development links or "PLTCOLLECTS", and he's not sure they're the 
right way and not sure he's doing it right... we apologize for ever 
mentioning those, as well as for what we're about to do... and hypnotize 
him and clear the slate, and when he wakes, he will remember only 
relative filenames.


Posted on the users mailing list.