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 <cryptworks@gmail.com> 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, <techlists@phpcoderusa.com> 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 - PLUG-discuss@lists.phxlinux.org
To subscribe, unsubscribe, or to change your mail settings:
http://lists.phxlinux.org/mailman/listinfo/plug-discuss

---------------------------------------------------
PLUG-discuss mailing list - PLUG-discuss@lists.phxlinux.org
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 - PLUG-discuss@lists.phxlinux.org
To subscribe, unsubscribe, or to change your mail settings:
http://lists.phxlinux.org/mailman/listinfo/plug-discuss