<div dir="ltr">Middle posting follows<br><br><div class="gmail_quote"><div dir="ltr">On Sun, Nov 19, 2017 at 3:40 AM Sergiu Ivanov <<a href="mailto:sivanov@colimite.fr">sivanov@colimite.fr</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello Trent,<br>
<br>
Thus quoth  trent shipley  on Sun Nov 19 2017 at 08:05 (+0100):<br>
><br>
> I have a vision for a spreadsheet that is programmable as a spreadsheet<br>
> itself.<br>
[...]<br>
> * Is a spreadsheet you can program from the spreadsheet a reasonable<br>
> goal?<br>
<br>
What kind of use cases do you imagine for your programmable spreadsheet?<br>
"Reasonable" will usually depend on your context.<br>
<br>
The idea in itself is definitely interesting, but you really should<br>
define the application context to make it clearer.<br></blockquote><div><br></div><div>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 spreadsheet.</div><div><br></div><div><ol><li>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.)</li><li>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.</li><li>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).</li><li>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.</li><li>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.</li><li>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 trading.</li></ol><div>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.</div></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
> * Has it been done?<br>
> (I don't have the academic CS chops to know what keywords to use, and how<br>
> search CS publications in English.)<br>
<br>
I haven't heard of anything like that expressly, but then the functions<br>
in conventional spreadsheets are technically sufficiently powerful to<br>
express any computation.<br>
<br>
The question therefore comes back again to what your application would<br>
be: you could design your spreadsheet around it.<br>
<br>
> It would be natural to use C++, but the astute will note that a spreadsheet<br>
> basically does not rewrite cells (unless you use a circular reference), so<br>
> I'd also like to use a functional language, maybe Haskel.<br>
<br>
Since you want to write functions in cells, you are probably better off<br>
using a language with a compact syntax.  Haskell is one of them, but not<br>
the only one.<br>
<br>
Using C++ looks in no way natural _to me_; "natural" will also depend on<br>
your use case ;-)<br></blockquote><div><br></div><div>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. </div><div><br></div><div>Also, if speed is of the essence, my impression is that C++ and C come to the fore.</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
> Note that a spreadsheet needs to give the satisfaction of immediate<br>
> results, or failing immediate results, the sensation of actively working,<br>
> so if the language could be interpreted that would be a huge help.<br>
<br>
Since your spreadsheet code will be heavily modularised, you could<br>
probably do some very granular (therefore fast) compilation.<br>
<br>
> Note also, that I have only the equivalent of an AA degree from a CIS, not<br>
> a CS, perspective, so the odds are the whole idea is vaporware, unless I<br>
> can determine feasibility and desirability, then sweet talk real developers<br>
> to help out.<br>
<br>
Having or not a degree is usually rather weakly (if not negatively)<br>
correlated with thinking or being capable of getting things done :-) So<br>
don't worry, go ahead and think big; there will always be people around<br>
to try and shoot down the hot-air balloons of your imagination for you.<br>
<br>
--<br>
Sergiu<br>
</blockquote></div></div>