Live data from Hacker News

Applying programming language research ideas to transform spreadsheets

microsoft.com

31–40 of 129 posts

Re: Applying programming language research ideas to transform spreadsheets

#31
This is awesome (let expressions in formulas!!), but Mesh Spreadsheets has offered most of this for a couple of years, and in a free, open-source form.

Specifically:

- arrays and objects living in a cell

- mix of spreadsheet and textual views

- functions in spreadsheet cells, and running spreadsheets as a messaging service (as a lambda function / API)

- dynamic array sizes

We deliver this by offering a grid view of (structured) JavaScript code.

http://mesh-spreadsheet.com/

Re: Applying programming language research ideas to transform spreadsheets

#32

It's interesting to note that one of the people behind this work is Simon Peyton Jones, known (among other things) for creating haskell and being the lead developer of the GHC.

It's why MSR has employed him for almost as long as he's been working on GHC. Not specifically to work on Excel, but to have him help integrate ideas from GHC into Microsoft products.

And I've got to say, they made a great choice. He's one of the most effective communicators I've ever seen when it comes to teaching new ideas.

Re: Applying programming language research ideas to transform spreadsheets

#34
If we're talking about Spreadsheet programming, the work of Felienne Hermans [1] [2] (former mentor of mine) is definitively worth a read. She and her group have done a lot of research into how spreadsheets are used as software in companies and how software engineering research can be applied to them.

[1] "Spreadsheets are Code" - https://www.youtube.com/watch?v=bdfNvYPxkOY

[2] http://www.felienne.com/publications

Re: Applying programming language research ideas to transform spreadsheets

#35
post #9

Having Excel save and load readable and editable source file would be the best improvement for me... Version control, easy editing with vim etc while interoperable for people who like Excel. No programming language research needed for that; just normal programming best practices.

XLSX files are just zipped XML files: https://en.m.wikipedia.org/wiki/Office_Open_XML

Hint: as far as I remember compression ratio is 0 (stored) - best to keep such on re-save for compatibility.

Re: Applying programming language research ideas to transform spreadsheets

#36
post #35
post #9

Having Excel save and load readable and editable source file would be the best improvement for me... Version control, easy editing with vim etc while interoperable for people who like Excel. No programming language research needed for that; just normal programming best practices.

XLSX files are just zipped XML files: https://en.m.wikipedia.org/wiki/Office_Open_XML Hint: as far as I remember compression ratio is 0 (stored) - best to keep such on re-save for compatibility.

Not really readable or editable though.

Re: Applying programming language research ideas to transform spreadsheets

#37
post #7

Earlier quoted context omitted.

Banks, insurers, accountants; I know a company with 100M euro rev per year that runs entirely on Excel with VBA. Their office car park gate is opened, closed and managed with Excel. It sounds crazy but the CTO is a cofounder and he found it is much cheaper to just do everthing that way. They have been running like that for over 20 years.

It isn't the language for everything, but I've found you can do so much with a spreadsheet and a little VBA. Optimization, graphics, math...whatever. I also figure the company you refer to has some real benefit by focusing on one technology everyone knows. But how and the heck do they manage a gate in a spreadsheet?

I've done some pretty mindbending things with VBA on Excel.

They work but they are not pretty and not easy to maintain. VBA is technically a "complete" language (I want to say Turing-complete but that is not a meaningful trait), so it is possible to do a lot with it, but one ends up having to re-implement (sometimes badly) stuff found in other languages in order to write the main parts of the code.

Part of what makes VBA deceptively easy is the control over the interactive elements of Excel (a lot of stuff is done with the Range object), but unfortunately that also introduces state that you can't always control, which entails write extra checks to make sure the state is correct before proceeding. This is especially true if your users are on different versions of Excel (I once wrote something in 2010 that doesn't work in 2016).

There are now other options like QueryStorm [1], which lets you write C# in Excel and connect to SQL databases.

There are also a bunch of Python-Excel solutions that are based on manipulating COM objects, but I've learned that when dealing with a Microsoft stack, there are advantages to using Microsoft-native languages like C#.

Coming back to the article, it mentions adding arrays, vectors, and records to Excel itself; this will make Excel much more powerful because it has traditionally been a cell-based computation system, which has disadvantages that higher-level abstractions overcome (like vectors and tables).

It also mentions writing Excel functions in a first class manner instead of relying on a separate procedural language like VBA. Operations on arbitrary sized arrays will also help it transcend Excel's issue of operating on fixed size arrays -- this will clean up a lot of very messy formulas.

These developments will be interesting to watch, because it brings Excel much closer to a true functional computing system, and gets closer to Quantrix [2] territory.

[1] https://www.querystorm.com/

[2] Quantrix is a multidimensional spreadsheet, and a commercial successor to Lotus Improv.

Re: Applying programming language research ideas to transform spreadsheets

#38
post #2

The ideal spreadsheet should be a mix of Excel, Geogebra, reactive Jupyter Notebook (like ObservableHQ or Vue.js computed properties), programmable in Python, C#, JavaScript and/or other languages with the ability to embed third-party widgets like maps or custom charts. And decent data connectors with SQL-like query syntax (including JOINs).

Check out blockpad.net. It’s getting there.

Re: Applying programming language research ideas to transform spreadsheets

#40

This is awesome (let expressions in formulas!!), but Mesh Spreadsheets has offered most of this for a couple of years, and in a free, open-source form. Specifically: - arrays and objects living in a cell - mix of spreadsheet and textual views - functions in spreadsheet cells, and running spreadsheets as a messaging service (as a lambda function / API) - dynamic array sizes We deliver this by offering a grid view of (…

The problem is that your software does not run on top of Excel. Nowadays it is not as much of a problem, but in the past, Excel was often the only software you could use to do something like this - enterprise computers used to be incredibly locked down.
Post reply on HN