Spreadsheet Programming with User Defined Types and Functions (2013) [pdf]
homepages.inf.ed.ac.uk
homepages.inf.ed.ac.uk
This is why learning the history of your field is so important. Lotus Improv(1) was the "power-users" 1-2-3 (god I'm dating myself, aren't I). Lotus Improv essentially what this gentleman mentioned (it semantically separated the segment UDTs&UDF's) except in a cleaner fashion.
Let's examine that screenshot Lotus Improv screenshot briefly and allow me to espose its structural advantages over a traditional spreadsheet-
RE: Share - Worksheet - Untitled 2 - You have your traditional values of the cells in the primary pane. The selected cell is in grey. The derived value is in the cell. The expression evaluated to generate that value is in the bottom pane.
- An important thing to note is that there is an inherent hierarchy to your data (is-a, not has-a, sadly), which makes aggregate analysis easy right out of the box. No need to move into a OLAP star-or-snowflake schema BI platform. (This structure is displayed in the 3 rows of the bottom pane of the [Right Window])
- In "Untitled 2" to the [Left-bottom], you have annotations so you're somewhat self-documenting.
Joel Spolsky had an hour long talk on Excel to more or less use excel "right" (2) which is worth a watch, certainly, as the world is stuck in Excel. But for the most part it's constructing hacks around fundamental problems that exist in the platform. (I.e., according to his best practice methodology, you have to leave a r+1,r-1,c+1,c-1 border around all of your data. That should never, ever be required.)
It's been years since I've used Lotus Improv, so forgive me if I'm forgetting the terminology. Laudable work for an undergraduate, but it always reminds me of the old adage - those who fail to learn history are doomed to repeat it. ;)
(1) https://en.wikipedia.org/wiki/File:Lotus_Improv_screenshot,_...
Alan Kay keeps stressing this point and how many regard computing as pop culture.
I agree, when one delves into the history of computing, programming language research and OS design, there are dozen of pearls waiting to be brought to life again.
We could be so much more advanced, if many startups took the time to research our history instead of poorly reinventing the wheel.
Imagine being told to weave something overnight, the only needle is lost in a haystack. But there are plenty of thin sticks on the ground and some thread. Oh, and the product is expected to last 3 months at most.
Maybe with virtualization, containerization, etc we can archive executable environments that people can still play with in 20 years. The sands of time are brutal to papers, code, executables and people.
Also anyone that goes paper hunting and doesn't want to pay, can with some effort, also find drafts of most papers.
That is the biggest problem and it wouldn't change if ACM and IEEE were free.
People need to be willing to search for them.
I've heard tales of people I know presenting their work at a conference. At the end, an old Russian professor raised his hand and said: "Are you aware of this Russian paper from 1964 that wasn't translated due to Cold War tensions that already did this?"
The issue with the paper is it tries to shoehorn in functional programing into the spreadsheet paradigm. Being able to break out is pretty important to make the user experience worthwhile.
I also remember Improv, it was a great application and I used it a great deal. Borland did some extensions of their ideas in Quattro and I preferred their improved interface.
All of this is a long way too get around to iheartmemchache's point, there is a lot of history out there and doing some more indepth research may get you to a better solution.
A little known feature of LibreOffice is that the whole suite, including Calc, is scriptable with Python. It is not super convenient or user-friendly now, but with some love from developers it could become quite powerful tool.
Sadly, it looks abandoned...