> I think porting Cells is a very good test of Arc as a practical
> language (even at this early stage),
Yep, but it occurred to me that Mr. Graham would protest that transliterating a project however interesting is about as far as one can get from exploratory programming and he would be right. Hell, even someone working from a system spec still has to come up with the code.
> I appreciate you jumping in
> as the guinea pig.
I must confess, it is more like guinea frog (inside cll joke). But this dry material probably will not make me the next Imus in the Morning.
> I think it's much more informative than the "I
> wrote a wiki in 10 lines" that we've been seeing. What's your
> impression so far? Is there anything that really stands out, good or
> bad, while you've been working on the Cells port?
With 1% of the polls reporting, I miss my mud (the forty-six page index of Common Lisp the Language). No matter whether I reach for the #3 Torx driver or the articulating socket wrench extender I come up with the same vice-grip. I doubt I will ever get over this.
As for the brevity, that feels more like friction than grease, and I cannot even touch type.
But most of all I feel like I was right: it will be hard to tell until I have done a lot more Arc coding, because the brevity might feel like friction only because I have not gotten used to it. Especially fun is stuff that newly appeared in Arc 1 (click only to download) such as a hashtable lookup normally coded thus:
(my-table sought-key)
...which can now be coded thus:
my-table.sought-key
...and when the key is a literal we can rewrite:
(oed 'peloria) as oed!peloria
This notation is generally applicable where one has a one-parameter function:
abs.-42 -> 42
So the potential for code obfuscation is terrific. :) To get Cells to work I will have to write readers and writers, so you might see code like:
(pressure my-boiler)
...which could as well be:
pressure.my-boiler
...and since the boiler will be a hashtable, one would normally read the hashtable like this:
my-boiler!pressure
My head is spinning. With Cells that would be a backdoor which would bypass the Cells mechanism entirely a la slot-value in Common Lisp. Bad client! Bad!
If Lisp is a local maximum in language design, all-sexprs-all-the-time might be the knife-edge ridge on which it stands. See we will.
No comments:
Post a Comment