
Spreadsheet Programming with User Defined Types and Functions (2013) [pdf] - joubert
http://homepages.inf.ed.ac.uk/dts/students/williams/report.pdf
======
iheartmemcache
I read the whole thesis, because on Saturdays I read papers, thats just how I
roll. He does a great job identifying the problems (especially in finance) but
his only source referencing Prior Work is Endnote #7 and that's an Excel
resource.

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,_...](https://en.wikipedia.org/wiki/File:Lotus_Improv_screenshot,_NeXTSTEP_version.jpg)

(2)
[https://www.youtube.com/watch?v=0nbkaYsR94c](https://www.youtube.com/watch?v=0nbkaYsR94c)

~~~
pjmlp
> This is why learning the history of your field is so important.

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.

~~~
sitkack
Findability and access is also an issue. The _old_ papers are still locked up
behind an ACM and IEEE paywall. Only those lucky enough to have a campus wide
access policy can search and even then, the search interfaces are slow and or
horribly broken.

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.

~~~
pjmlp
I used to pay for ACM Membership, why does everything need to available for
free?

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.

~~~
sitkack
I also used to pay for ACM Membership and I would often get banned for
"excessive search activity". Semantic scholar, arxiv and citeseer are 10x
better than the ACM. The ACM archive is total mess, bad search, slow access,
no annotation. Looks like the same broken cold fusion site from the 90s. It is
a chicken and the egg problem, making search better will encourage and enable
more people to find untapped knowledge. The ACM could open up every paper
older than 1990 and not have it effect their bottom line. So many other income
streams than the library of old papers.

------
AstroJetson
Based on iheartmemchache's post I read the paper too. I wasn't as excited
about the project. There are similar things out there. One is Pyspread (which
is referenced) that allows the functions to be written in Python (vs Basic).
One of the engineers used this to do some pretty amazing analysis that would
have well exceeded the capabilities.

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.

~~~
zokier
> There are similar things out there. One is Pyspread (which is referenced)
> that allows the functions to be written in Python (vs Basic). One of the
> engineers used this to do some pretty amazing analysis that would have well
> exceeded the capabilities.

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.

~~~
AstroJetson
Didn't know that, thanks!

------
vmorgulis
I found the repo:
[https://github.com/jackhmwilliams/jeksy](https://github.com/jackhmwilliams/jeksy)

Sadly, it looks abandoned...

------
jarmitage
Related: [http://www.alphasheets.com](http://www.alphasheets.com)

~~~
AstroJetson
Very, very spiffy.

