
Middle posting follows
On Sun, Nov 19, 2017 at 3:40 AM Sergiu Ivanov
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 spreadsheet. 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 trading. 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