| I maintain a number of Chicken packages and am a contributor to Geiser. With standardized libraries in R7RS-small the opportunity has existed for sometime for a community-created package manager to come into existence. There are several in existence, mostly targeting particular schemes, but Snow2 is the closest to what you desire. Why it hasn't caught on is unquestionably, IMHO, because of the limitations upon the R7RS-small language. Library writers often cannot write for standard R7RS and must ship implementation-specific code. For instance, the R7RS opted not to define a standard FFI of any sort. Even if your library is internally R7RS compliant it is often the case that it may rely on packages which are not, so deploying to the likes of Snow2 is a matter of porting code you didn't write to every scheme that Snow2 supports. The best reason I have been given for the decision not to define an FFI is because it would force writers of toy schemes to conform their data structures to the standard. And so in an effort to remain a toy language it has restricted itself to being only a toy language. Use Chicken, Chez, Gambit, Chibi or Racket. Forget about RnRS. |
On the other hand, Scheme has been a toolkit to test out ideas of programming languages since its origin. We still keep call/cc not because we use it for daily application development, but rather because it is invaluable to implement new idea of control abstraction portably. With this goal, we don't want to restrict implementation too much (hence the loose definition of "error"), nor want to raise the hurdle of standard conformance by requiring too many libs.
R7RS small/large split reflects this view, and I think it's a good thing. I also think SRFI process is working. If there ever is a common package manager thing, R7RS-large is a step to it. I've been using Scheme at work for last 20 years; let's see what we have in the next 20 years.