[cells-devel] More newbie questions
Kenny Tilton
ktilton at nyc.rr.com
Mon Mar 7 04:38:39 UTC 2005
Mike J. Bell wrote:
>Hey Kenny...I've got sort of a philosophical question for you. (I'm
>much more interested in the intent of Cells rather than the mechanics,
>even though the mechanics define the intent...I'm sure you know what I
>mean).
>
>The spirit of Cells seems to be to very much like the declarative
>functional world of spreadsheets (ok, I cheated and actually *read*
>that in the docs. =). If I were to start a new project (and thus
>legacy code/app is irrelevant), why would I use Cells and not Haskell
>or some other pure lazy functional language?
>
>If the answer is along the lines of "CL is super cool 1337 d00d, why
>use anything else" that's fine. What I'm digging for here is any
>major philosophical differences between using Cells (and I mean
>*using*, like building your entire app on as much Cells functionality
>as possible and not mixing paradigms)
>
aside: actually, I think it would be hard to mix paradigms. I always
point out that Cells is a slippery slope: use them a little and pretty
soon you have to use them for everything.
the paradigm is not "lazy functional", it is "dataflow". In my apps, all
input gets fed into c-input cells, and all application behavior is
manifested by def-c-output methods. The web of cells is a working model
where slots have causal power over other slots.
The feel of the /programming/ is spreadsheet-y, but the result is,
again, a working model. Working in the sense that one simply SETfs an
input cell and the whole model reacts /and/ behaves automatically,
according to the supplied rules. Of course, a spreadsheet is also a
working model.
getting back to the slippery slope, I am not sure how one could combine
imperative, programmer-oriented control with the automatic dataflow
engine -- where would one put the hooks?
> and purely functional,
>declarative, lazy languages. What's the discriminator?
>
>
Sorry, I have never used anything like Haskell, so I have no idea what
it feels like or how to compare, other than what I said above. But maybe
this will be close (my apologies if I am muddying the waters): if you
have a lazy functional language, the control lies outside the
declarative authoring, because, as I understand lazy, nothing happens
until someone asks. So there must be a control flow programmed some
other way (imperative?) which finally does the asking. In which case one
is not really getting all the benefit possible out of the declarative
approach.
kt
More information about the cells-devel
mailing list