I would personally like to have a command line tool as well (similar to e.g. 'ri' for Ruby). And it would be nice to be able to look up the same stuff from a Scheme REPL even when the REPL is not running in a text editor.
I think the command line option is already given for any VM/runtime based Scheme, the command line tool could then just be a small wrapper script invoking the whole thing. In addition it can be an interesting option for one of the executable-building Schemes, so we could e.g. have a Gambit/Bigloo based standalone executable, which does not require any installed Scheme and still allow access to the documentation. IIRC for both Gambit and Bigloo the REPLs are limited/stripped off for the executables, hence we might loose some features, but the convenience of a simple executable can very well be worth it. And as you write below, if we're smart with our Scheme sources (common, R6RS, R7RS, implementation specific), the executable build can rather be a deployment option than a different source tree.
I love all of these ideas :) Enthusiastically agree with all of them!
It might be good to keep our code as portable we can, and then
let individual Scheme implementations package it as they want (if
they want to package it at all :) I don't know whether we should
publish our own command line tool independent of the
implementations. It's probably a good idea, at least as the
beginning. Scheme implementors are generally busy people and like
to see concrete proof that something is useful before
incorporating it into their Schemes.
The ruby 'ri' tool has its own mini-REPL (which is not really a REPL, but just a shell-like command line that can be used to look things up). It looks like this:
bash$ ri
Enter the method name you want to look up.
You can use tab to autocomplete.
Enter a blank line to exit.
>> String.chomp
We could have a similar mini-shell built into it. Or just leave
it out and have people use a real Scheme REPL or use command line
arguments to give the query they want.
If someone wants to use the API from an editor without running a Scheme REPL, there could also be an Emacs mode to talk to the API directly.
That's what my option 1 means. And as you note, this does not necessarily need to be an either/or, the options can also can also be mixed. I think we're now getting into a quite abstract/fuzzy area, where many thinks "could be done". I would like to map the options to the individual features, and then try to find a decision per each feature and architecture option. I already mentioned a list of features before - if you have more, please add, otherwise I'll start there.
Very true. If you have concrete ideas you'd like to try, please go ahead :) On the technical side, I'm personally most excited about designing the API and figuring out how to get all the data into it. If you are excited about the Emacs/REPL/web frontend stuff, you could take the lead on designing that stuff. You seem to have a vision for it and the drive to implement things so things are looking very good indeed :)
My main wish for the client side is to share as much code as possible (and make everything as portable as possible, within reason). I think it's important that both R6RS and R7RS users can have the same interface (even if the implementations have to be different). Otherwise, I don't have strong opinions on much :) You are probably better qualified to think about that stuff especially if you've used SLIME a lot.
Also a reminder to other people that if you have some ideas,
please feel free to share them!