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

We need spreadsheet oriented programming. A lot of people use Excel for all kinds of programming but it gets pretty complicated. Even something as simple as being able to name a column or a cell could go a long way towards improving these Excel programs.


Lotus Improv did this in the early 1990's.

Improv was an attempt to redefine the way a spreadsheet program should work, to make it easier to build new spreadsheets and to modify existing ones. Conventional spreadsheets used on-screen cells to store all data, formulas, and notes. Improv separated these concepts and used the cells only for input and output data. Formulas, macros and other objects existed outside the cells, to simplify editing and reduce errors. Improv used named ranges for all formulas, as opposed to cell addresses.

https://en.wikipedia.org/wiki/Lotus_Improv


Improv was too good for people to take. Quantrix reproduces most of that functionality today.


You already can name cells in Excel, and use those names as references, rather than B5, or whatever.

https://support.office.com/en-us/article/Define-and-use-name...


The biggest problem with spreadsheet-oriented programming is that we haven't yet found the way to abstract table sections into reusable 'functions', which currently leads to tons of copy/paste.

There was a proposal to add user-defined table-based functions to Excel, by a group of authors including none other than Simon Peyton Jones, a major contributor to Haskell and GHC. Here's that paper: http://research.microsoft.com/en-us/um/people/simonpj/Papers...

Curiously, the paper is titled 'Improving the world's most popular functional language: user-defined functions in Excel'.

(And by the way, you can already name and refer to any range of cells in Excel, not just a row or a column. There's also a GUI dialog that lets you manage the names, e.g. rename, delete etc.)


I wonder if functions, or their equivalent, is what makes programming complicated for many. Because now you have one set of code that crops up in multiple places, and have different states depending on how it gets used in those locations.

The reason people reach for spreadsheets seems to be because they are visual. much like the register panel "blinkenlights" on early computers, spreadsheets allows someone to glance across and check the state of things.

And in an earlier discussion about this, someone pointed me to Apple's Numbers spreadsheet. There you can have multiple freely moveable and expandable sheets on screen at the same time, each addressable via its own name.


Many people, including Microsoft, have tried and failed extrapolate on spreadsheeting towards a more general purpose programming environment, and it turns out to be very hard. A 2D grid of editable cells without a type system makes for a great scratchpad environment, but those features are also a barrier for abstraction.


The reason this keeps failing is that people don't want to do programming in Excel. They definitely don't want to do general purpose programming in Excel. They just want to use some formulas to calculate some things.

Of course, what they're doing is programming, but the genius of spreadsheets is that it lets "non-programmers" program while hiding from them the fact that they're programming.


> A 2D grid of editable cells without a type system

That sounds like a big improvement on the model we all use every day: a 1D grid of editable memory locations without a[n inherent] type system.


Who uses such a model? Unless you write assembly language?



Almost every B2B venture eventually recreates Excel so I'm inclined to agree with you. A popular (and good) common methodology would go a long way.


I'm not a B2B venture, but I've reacreated Excel: https://share.sheets.ninja/


Excel can name columns using tables. Tables make Excel much nicer to use for complicated things.


Agreed - I'm a heavy Excel user and I use tables for 90% of data. Tables enforce unique column names, what is missing is the same for unique row names or ids plus an easier way to relate rows, without having to use index match everywhere, which soon becomes a real pain in the arse.

A separate me product - power pivot does something like this - ms needs to add this as native functionality to Excel, since normal pivot tables are so unflexible, I never use them anymore.




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

Search: