Christophe Rhodes wrote:
Robert Goldman rpgoldman@sift.info writes:
Yes, I know that the user can do this him/herself, but given that the user inevitably will want to add the commands
I'm sorry, but "inevitably" is not the right word.
seems to me a strong argument for doing it. After all, libraries are supposed to save work, not make it!
But the work has already been done: support for loading ASDF systems without any new ASDF operator is already present in Cusp, Slime, CCL, SBCL, Allegro-like REPLs, LW-ADD-ONS and almost certainly other development environments.
While Kenny's review of his first experience with ASDF was, perhaps, unhelpfully inflammatory, I do agree with the central thesis that it's too hard to use ASDF out of the box and that we should make it easier.
Is it too hard to load a system, or too hard to write a system definition? If the former, will that actually be addressed by changing (to the newbie) one cryptic incantation for another, or would the effort be better spent working on other barriers to entry?
Look, I don't have a veto; you guys will end up doing what you want anyway. I would like to say that I think it's a mistake; that Kenny's (and others') public complaints aren't going to go away as a result of this change; that people will still find it weird and odd; and that the loss of generality in the interface will eventually come and bite. (Though perhaps not before ASDF gets replaced by a newly-named mostly-backwards-compatible successor; here's hoping).
Point of clarification: no one is talking about replacing the existing operate and OOS interfaces with a less general one. All we are talking about doing is providing an easy api function that covers the most common cases in a way that's simple to use for a newbie.
So the first few times you type the command at a repl you can just do
(asdf:load-system 'foo)
instead of
(asdf:oos 'asdf:load-op 'foo)
Later on, if one prefers, one can go to using asdf:oos directly.
I agree about the alternative support on the different platforms, but that makes for difficulties for the learner. In particular, now the learner needs to search outside the asdf documentation to find out how to load. I certainly agree that, for example, if one is using SLIME, one will be happier when one has learned the slime command (and the same for other environment-specific commands). On the other hand, as one who moves back and forth between different environments (lisp implemenations, ELI and SLIME, development workstations), I find myself falling back on the functions quite a bit.
This addition seems to me to do no harm to anyone. At worst, it will be useless. At best, it will help people starting up with ASDF.
Best, Robert