Re: Scriptsheets

Top Page
Attachments:
Message as email
+ (text/plain)
+ (text/html)
+ (text/plain)
Delete this message
Reply to this message
Author: trent shipley
Date:  
To: Main PLUG discussion list
Subject: Re: Scriptsheets
Right, it's not scripting using a classic programming environment, like
VBA, the BASIC that comes with LibreOffice, or Python.

The idea is that you extend the spreadsheet idiom to program the
spreadsheet from a sheet or virtual workbook in the spreadsheet without
leaving the spreadsheet to work in a classical imperative programming
environment like VBA or Python.


  |A               | B              | C              |
1|PARAMETERS(B1,C1)|<put input here>|<put input here>|
2|                 |                |                |
3|RETURN(B1*C1)    |                |                |
FUNCTION SHEET("MY_FUNCTION")


You have data, it's a spreadsheet.
The moral equivalent of sequence is referencing another cell, including one
that contains a function.
You have selection with the IF() function.
With the addition of just two keywords, PARAMETERS and RETURN you have real
functions.
You have looping with functions calling themselves (recursion), and
possibly circular references.

My understanding is that's a complete programming paradigm.

Trent.


On Thu, Nov 2, 2017 at 9:58 AM Stephen Partington <>
wrote:

> Google and LibreOffice both have similar functionality. (not VB, but they
> have built in scripting tools)
>
> On Thu, Nov 2, 2017 at 8:03 AM, <> wrote:
>
>>
>> How would this be different from using Visual Basic for Applications
>> (VBA). It has literally been 20 years since I used VBA, however I seem to
>> recall that the VBA was built in and internal so one would not need to use
>> external resources to do the VBA automation.
>>
>>
>>
>> On 2017-11-02 01:51, trent shipley wrote:
>>
>> Dear PLUG list,
>>
>> I've been working on a think-piece about a programmable spreadsheet
>> product and project. It runs 29 pages. I'm going to try to find a way to
>> put the "proposal" on the internet.
>>
>> However, I've included the introduction and conclusion below, and I'd be
>> interested in people's thoughts, especially Joseph Sinclair's or anyone in
>> academia. I'd also very much like to know if anyone knows if anything like
>> this exists or existed.
>>
>> Note that I'm not proposing using something like VBA or Python. I am
>> proposing that spreadsheets themselves be programmable without leaving the
>> spreadsheet environment or paradigm.
>>
>> The long paper should be ready to put on the internet in a week or two.
>> I'd be interested in any thoughts about how to do that too.
>>
>> Regards,
>>
>> Trent
>>
>> ------------------------------------------------------------------------
>>
>> Scriptsheets: A Spreadsheet You Can Program from the Sheet Environment
>> Scriptsheets v0e0r0b0. First Proposal (unstable, draft)
>>
>> Trent Shipley
>>
>> 2017-11-02
>>
>>      1  Concept

>>
>> To program in current spreadsheets you typically use a built-in scripting
>> language like VBA. There are those who claim that spreadsheets are very
>> close to a pure functional language. Others have claimed to implement a
>> multi-tape Turing machine in Excel. You can ALMOST program in Excel without
>> resorting to VBA.
>>
>> The goal of Scriptsheets is to create a spreadsheet environment where you
>> can program natively from within a spreadsheet itself, without resorting to
>> a separate programming language and programming environment. It is expected
>> that Scriptsheets will be useful to scientists, engineers, and data
>> scientists, and even in economics and finance. However Scriptsheets will be
>> more complex than a typical spreadsheet product, and thus should have less
>> appeal ingeneral business than existing spreadsheet products. Scriptsheets
>> will be more powerful than existing spreadsheet products, but also harder
>> to use.
>>
>>      2  License1

>>
>> Scriptsheets will have a free, open source, and minimally viral license.
>>
>>      6  Summary

>>
>> In this paper I proposed developing a spreadsheet that would be
>> programmable from the native spreadsheet environment, without resorting to
>> a more traditional language like Visual Basic for Applications or Python.
>> The working name for the product is Scriptsheets. The core of the
>> spreadsheet product's programmability would be the designated function
>> sheet, accompanied by the PARAMETER "function" keyword. It is expected that
>> an inherently programmable spreadsheet would have applications in
>> engineering, data science, science, economics, and finance. The added
>> complexity would make Scriptsheets less useful in general business
>> applications.
>>
>> Design of Scriptsheets would emphasize security first. The security model
>> would be comprehensive and fine grained. It assumes a client-server
>> architecture with a system administrator, application administrator, and
>> users, including developers.
>>
>> The core Scriptsheets product will be a functionally complete, but
>> minimal spreadsheet. The core product will be highly extensible, and will
>> encourage modularity. I proposed some critical plugins that should exist
>> before the v1e0 release of Scriptsheets. In this paper, the concept of
>> virtual workbooks were presented briefly. Virtual workbooks can exist in
>> the file-based workbook. Virtual workbooks can nest, and provide one way to
>> extend a spreadsheet beyond three dimensions. It will be possible to make
>> packages of file-based workbooks. Unlike other spreadsheets, Scriptsheets
>> will be typed. However, the dynamic type will be the default type, and will
>> allow Scriptsheets to behave like a typical spreadsheet. Since Scriptsheets
>> will be programmable, developers will be able to perform IO from the
>> spreadsheet itself. Scriptsheets will provide objects, likely through
>> prototyping.
>>
>> Scriptsheets will re-purpose as much material as possible from license
>> compatible spreadsheet products. Much of this essay drew on LibreOffice
>> Calc documentation.
>>
>> A rich native development environment will exist by the v1e0 release.
>>
>> I said that, if feasible, the development team would use a polyglot
>> development environment consisting of Scala, Java, C++, and C, pretty much
>> in that order. Since Scriptsheets' native spreadsheet programming
>> environment in many ways will approximate a functional programming
>> paradigm, I suspect it will be convenient to program much of Scriptsheets
>> in a typed, functional programming language like Scala.
>>
>>
>> ---------------------------------------------------
>> PLUG-discuss mailing list -
>> To subscribe, unsubscribe, or to change your mail settings:
>> http://lists.phxlinux.org/mailman/listinfo/plug-discuss
>>
>>
>> ---------------------------------------------------
>> PLUG-discuss mailing list -
>> To subscribe, unsubscribe, or to change your mail settings:
>> http://lists.phxlinux.org/mailman/listinfo/plug-discuss
>>
>
>
>
> --
> A mouse trap, placed on top of your alarm clock, will prevent you from
> rolling over and going back to sleep after you hit the snooze button.
>
> Stephen
>
> ---------------------------------------------------
> PLUG-discuss mailing list -
> To subscribe, unsubscribe, or to change your mail settings:
> http://lists.phxlinux.org/mailman/listinfo/plug-discuss

---------------------------------------------------
PLUG-discuss mailing list -
To subscribe, unsubscribe, or to change your mail settings:
http://lists.phxlinux.org/mailman/listinfo/plug-discuss