[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