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
trent1967.48@outlook.com
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