<div dir="ltr"><div>Dear PLUG list,</div><div><br></div><div>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. </div><div><br></div><div>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.</div><div><br></div><div>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.</div><div><br></div><div>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.</div><div><br></div><div>Regards,</div><div><br></div><div>Trent</div><div><br></div><div>------------------------------------------------------------------------</div><div><br></div><div>Scriptsheets: A Spreadsheet You Can Program from the Sheet Environment<br></div><div>Scriptsheets v0e0r0b0. First Proposal (unstable, draft)</div><div><br></div><div>Trent Shipley</div><div><a href="mailto:trent1967.48@outlook.com">trent1967.48@outlook.com</a></div><div>2017-11-02</div><div><br></div><div>     1  Concept</div><div><br></div><div>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.</div><div><br></div><div>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.</div><div><br></div><div>     2  License1</div><div><br></div><div>Scriptsheets will have a free, open source, and minimally viral license.</div><div><br></div><div><div>     6  Summary</div><div><br></div><div>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.</div><div><br></div><div>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.</div><div><br></div><div>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.</div><div><br></div><div>Scriptsheets will re-purpose as much material as possible from license compatible spreadsheet products. Much of this essay drew on LibreOffice Calc documentation. </div><div><br></div><div>A rich native development environment will exist by the v1e0 release.</div><div><br></div><div>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. </div></div><div><br></div></div>