What kind of syntax should we use to denote the module? Something like:
(module::function args)
This idea comes from Ruby, though I am not sure it necessarily plays well with the function composition operator (func1:func2). I wouldn't want to use -> or "." because of the concept collisions those would create. Could we just use something that doesn't have a mainstream meaning, like (module#function) or (module>>function)?
module::function looks good to me. Someone else suggested allowing user-defined syntax characters; this would be a good use-case. It only has to expand into (module 'function), so the implementation is basically trivial.
Why not module:function? Abuse the property that : stands for composition. A more lispy solution of (module function) might also work, and its only an extra character. Though if I were going for an Arc solution, it should probably be (bin fn) or (md fn).
I would think that Arc is not yet stable enough to use for large projects. I think that the missing module system is the major concern. I am not so concerned about unstructured data because it can be mitigated with access methods and because if you are properly creating your DSL it should be pretty obvious what is going on. Also, how big of a project would you have to have before you needed enough Arc to make it confusing? The language spec is < 5,000 lines of code.
I still can't get Arc working on my windows machine. I got MzScheme 372 installed and it appears to work fine. I downloaded and untared it. I added MzScheme to the path, and put in the standard: mzscheme -m -f as.scm. I got the following error message and I appear to be opening into MzScheme (w/ no Arc). Here's the error message:
"compile: bad syntax; function application is not allowed, because no #%app syntax transformer is bound in: (quote nil)
"That's pretty much all Arc can bring to the table at this stage: a throwing out of all the old cruft that was preventing LISP from moving forward." ~ from the article
If Arc can bring excitement back to Lisp I feel that is a much larger accomplishment than any possible technical accomplishment. Already Arc is being tested by hundreds (thousands?) of people playing with it. It's only going to get better as more libraries get implemented and more people use it. I'm actually really excited about the possibility of building something cool in it.
It may be the case that PG has enough juice to actually get a cult following going for Arc. Wouldn't that be awesome? An active community around a decent version of Lisp, does he really need to accomplish more than that?