Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Simon Peyton Jones (of Haskell fame) is part of a group at Microsoft Research that has taken this idea and run with it! See for instance [1,2,3]

[1] Applying Programming Language Research Ideas to Transform Spreadsheets -- https://www.microsoft.com/en-us/research/blog/influencing-ma...

[2] McCutchen et al. 2020, "Elastic Sheet-Defined Functions: Generalising Spreadsheet Functions to Variable-Size Input Arrays" -- https://www.microsoft.com/en-us/research/publication/elastic...

[3] Gordon & Peyton-Jones 2021, "LAMBDA: The Ultimate Spreadsheet Function" -- https://www.microsoft.com/en-us/research/blog/lambda-the-ult...



In the a similar spirit, here is another research paper that Simon Peyton Jones is a coauthor of: Build Systems à la Carte[1]. It describes a formalism for representing build systems and classifies the recalculation algorithm in Excel as a type of build system:

[1]: https://www.microsoft.com/en-us/research/uploads/prod/2018/0...


View maintenance, rendering and compilation are instances of the same underlying problem: efficient incremental calculation of an acyclic computation graph, a.k.a. differential dataflow. When the graph has cycles or feedback, you enter control theory country. It’s not surprising that neural nets look like feedback control systems.


Outside of differential dataflow (the library) and Materialize, what do you consider the cutting edge work or research in this area?


I've been interested in the theoretical side of this since forever (my first love was node based CGI software which actually exposes the graph as your main interface) and never go to it. Any control theory book suggestion before I hit springer ?


SPJ has been coming at this from the angle of let’s add things to Excel because Excel itself is already established.

This, in my opinion, is putting lipstick on a pig. The inputs and outputs work represents a very stretched contortion of trying to do real programming in a limited environment.

I am coming at it (commented elsewhere in the submission my project, avoiding spam) from the other end: start with a fresh, language take all the tried and tested programming language research useful to this way of working and connect it to a UI which fully comprehends this language. Throw out the grid and coordinates.

Row types, polymorphic variants, FRP for time/streams/events, type classes for arithmetic, CAS for cells, etc. We really do know what works, and therefore we can actually start from scratch and have some thing that is actually nice to use.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: