I use excel. I use google sheets. I've used Opencalc. And to really date me, I've used Visicalc.
I've come to the conclusion that spreadsheets are in essence the 'Basic' of tabular data.
I am looking for an alternative:
Documentable. You can sprinkle notes here and there, but if you are presented with a spreadsheet you've never seen before (or one you worked on a year ago) trying to figure out what you did is daunting.
Resuseable. When you do something clever, I want to be able to drag that somewhere else like I can a Perl module.
Clearer syntax for formulas. I don't like writing mini programs as one long line of nested functions. Nor do I like to have N columns of hidden intermediate results.
A better set of functions.
Features I like about excel:
- Lookups to other files.
- Conditional formatting
- Quick formulas at either end of a block to summarize the column or row
Features I don't like:
- Managing large numbers of named ranges is clunky.
- Formula editing sucks golf balls through a soda straw.
- Formula structure with multiply nested formulas is difficult to read.
I do like a spreadsheet for a quick and dirty lists. But I keep feeling like I'm trying use a screwdriver when I need a crescent wrench.
I've also used databases. dBase II, MS access (sort of a database), Filemaker. These are clunky to work with: You have to define each table. Doing a sum or a standard deviation of a column requires some extra hoops to jump through.
Apple's Numbers has some good touches: Multiple tables on a sheet. It also has some real weaknesses -- Inability to do lookups in separate files, limited conditional formatting.
I think I'm looking for somethat between a spreadsheet and a database. I want to do lookups. I want different views. I want a usable set of default views.
Excel with Matlab syntax maybe?
Small grids of cells connected to other grids of cells with formulas?
Dijkstra wrote "GoTo statement Considered Harmful" and nudged us away from Fortran and Basic.
I'm convinced that a using a spreadsheet for doing anything that takes over a day to write is much like trying to use MS Word to create a long technical document. Word is fine for a 3 page memo. More than that, I want something like Framemaker.
I'm looking for something that does to spreadsheets what Pascal is to Basic
iPython, mentioned below, looks possible.
pySpread is another one to check out. And it got me thinking:
In web design we go to some length to pull apart the content from the markup. In my own site I use a combination of perl scripts, templates, and markdown so that the markup doesn't get in the way of writing content.
In programing we have data structures: Arrays, hashes, lists, structs etc.
The latest versions of excel have the start of structured data with their idea of table. This at least allows you edit a formula once in a column, and have it apply to the column.
I think in spreadsheet-like app, I want a way to separate formulas from data, and a way to have structured data.