Books of Note

Practical Common
LispThe best intro to start your journey. Excellent coverage of CLOS.

ANSI Common
LispAnother great starting point with a different focus.

Paradigms of Artificial Intelligence
ProgrammingA superb set of Lisp examples. Not just for the AI crowd.

Saturday, October 17, 2009

LispForum membership is over 700 

Wow. I have been swamped with other things lately and didn't notice that LispForum membership has grown to over 700 people. That's very cool. We also passed one year of life back in June 2009. Ah, well, I sometimes forget my wedding anniversary, too. Unfortunately, my wife doesn't hack Lisp or she probably would have reminded me.


Holy needless asdf-install, Batman! 

Okay, so I decided to do a bit of hacking tonight that involved installing cffi. Before I started, for the first time in a long time, I actually upgraded SBCL and blew away my ~/.sbcl directory. Then I typed it:

(require 'asdf-install)
(asdf-install:install 'cffi)

Those commands managed to pull down 21 different packages! In itself, that might be the right thing to do for something that has a lot of dependencies, but after looking in ~/.sbcl/systems I found that I had:

alexandria.asd
babel.asd
babel-streams.asd
babel-tests.asd
cffi.asd
cffi-examples.asd
cffi-grovel.asd
cffi-tests.asd
cffi-uffi-compat.asd
iterate.asd
lift.asd
lift-documentation.asd
lift-test.asd
metabang-bind.asd
metabang-bind-test.asd
rt.asd
stefil.asd
swank.asd
trivial-features.asd
trivial-features-tests.asd
trivial-gray-streams.asd

So, that included five different unit test packages, plus the three different unit test frameworks (Lift, RT, and Stefil) dedicated to running them. I also got Swank thrown in. Honestly, I was waiting for the free set of Ginsu knives. ("But wait, there's more...!")

Here's the thing, people. When I install a package, I don't want your unit tests. Or the unit test framework necessary to run them. That's all just cruft that takes time, space, energy, etc. I mean, I'm glad that people are using unit tests and all, but as a user of your package, I shouldn't have to care about unit tests. Presumably, when developing/releasing your package, you ran your tests. That's all good. But if they passed for you, they'll also pass for me. Unless I'm going to start hacking your package, they're just a nuisance for me. If I am going to start hacking your package, I'm probably going to pull the source directly from git or darcs or CVS or Subversion, not asdf-install. At a minimum, can we all agree to remove dependencies on Lift, RT, and Stefil.

If I really want to run your tests, and I have installed them using asdf-install, I'm perfectly willing to install those other packages using a separate asdf-install command.

As for Swank, while I love it, again, if I want it in my environment, I'll install it separately, thank you very much.

Summary: Please keep your package dependencies to a minimum. If you really need to have a package that pulls in a huge set of dependencies to create a full environment (e.g. Swank and such), please separate your core library functionality from the top-level environment package and allow those of us with minimal tastes to simply install your core library functionality by itself.


This page is powered by Blogger. Isn't yours?