[Haskell-cafe] Speculation, OT: Program a Spreadsheet

trent shipley trent.shipley at gmail.com
Sun Nov 19 11:12:52 UTC 2017

Middle posting follows

On Sun, Nov 19, 2017 at 3:40 AM Sergiu Ivanov <sivanov at colimite.fr> wrote:

> Hello Trent,
> Thus quoth  trent shipley  on Sun Nov 19 2017 at 08:05 (+0100):
> >
> > I have a vision for a spreadsheet that is programmable as a spreadsheet
> > itself.
> [...]
> > * Is a spreadsheet you can program from the spreadsheet a reasonable
> > goal?
> What kind of use cases do you imagine for your programmable spreadsheet?
> "Reasonable" will usually depend on your context.
> The idea in itself is definitely interesting, but you really should
> define the application context to make it clearer.

I really haven't thought of specific use cases, but I have thought in
general terms about what you might do with a natively programmable

   1. It would be an interesting exercise in itself, and if it hadn't been
   done before, might be worth a paper. (I submit that this is actually a real
   use case.)
   2. It would be more elegant that the current solution to a programmable
   spreadsheet, which is a spreadsheet that is almost, but not quite
   programmable, with a helper imperative language and programming mode stuck
   onto the base spreadsheet.
   3. You could build a programmable spreadsheet on steroids with this
   idea, and I have some other interesting ideas, like "virtual spreadsheets"
   that would allow spreadsheets to extend into n dimensions (but I digress).
   4. So engineers, scientists, economists, and finance might have niche
   uses for a (n-dimensional) programmable spreadsheet on steroids--though I
   don't know in detail what those would be.
   5. I am a trained social scientist (anthropology) I know it is not
   uncommon for social scientists to have to deal with large, multidimensional
   datasets, and analyze the same. A multidimensional programmable spreadsheet
   might help a lot with that.
   6. I have heard that finance wizards often use Excel+VBA to do modeling.
   They might like a consistent, single language programming environment that
   offers more power and type safety that Excel + VBA. It would also need to
   be FAST if it is to be used for something like market analysis or automated

Finding plausible use cases is also hindered by both a version of an
existing spreadsheet enabling native functions, or a more full featured
Scriptsheets product both being vaporware.

> > * Has it been done?
> > (I don't have the academic CS chops to know what keywords to use, and how
> > search CS publications in English.)
> I haven't heard of anything like that expressly, but then the functions
> in conventional spreadsheets are technically sufficiently powerful to
> express any computation.
> The question therefore comes back again to what your application would
> be: you could design your spreadsheet around it.
> > It would be natural to use C++, but the astute will note that a
> spreadsheet
> > basically does not rewrite cells (unless you use a circular reference),
> so
> > I'd also like to use a functional language, maybe Haskel.
> Since you want to write functions in cells, you are probably better off
> using a language with a compact syntax.  Haskell is one of them, but not
> the only one.
> Using C++ looks in no way natural _to me_; "natural" will also depend on
> your use case ;-)

The main argument for C++ is that if you are "reusing" existing code from
GNUmeric or LibreOffice Calc none of that is in a functional language. It
will tend to be in C++ (and maybe Java for Calc). That's an unfortunate
fact if you want to pilot the central idea on a FOSS spreadsheet as a proof
of concept.

Also, if speed is of the essence, my impression is that C++ and C come to
the fore.

> > Note that a spreadsheet needs to give the satisfaction of immediate
> > results, or failing immediate results, the sensation of actively working,
> > so if the language could be interpreted that would be a huge help.
> Since your spreadsheet code will be heavily modularised, you could
> probably do some very granular (therefore fast) compilation.
> > Note also, that I have only the equivalent of an AA degree from a CIS,
> not
> > a CS, perspective, so the odds are the whole idea is vaporware, unless I
> > can determine feasibility and desirability, then sweet talk real
> developers
> > to help out.
> Having or not a degree is usually rather weakly (if not negatively)
> correlated with thinking or being capable of getting things done :-) So
> don't worry, go ahead and think big; there will always be people around
> to try and shoot down the hot-air balloons of your imagination for you.
> --
> Sergiu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20171119/652490b2/attachment.html>

More information about the Haskell-Cafe mailing list