Show HN: Spreadsheets using Python - Have you seen this?
pyspread.sourceforge.net
pyspread.sourceforge.net
I have always thought it looked awesome, but is Windows only so I haven't been able to try it.
Best regards,
Jonathan
It looks pretty cool and improves upon Resolver One (for my purposes) by using pure Python (vs. IronPython) and an EC2 back-end to parallelize calcs. It's also obviously cross-platform.
Disclaimer: I don't work for them, just a happy customer.
What is truly cool about this one though is that you can leave any python object into a cell. Very cool. Its like programming python in a visual functional language. I suspect that this will be abused. "Yo, look at this slick web app that is run through a spreadsheet".
Edit:
I almost forgot my favorite way to write any code in any language for Excel. Remote User Defined Functions. http://msdn.microsoft.com/en-us/library/ff475859.aspx They are bloody awesome and totally asynchronous in Excel 2010.
I think a "slick web app through a spreadsheet" is a beautiful thing for noobs like me. If "business guys" were able to mock up sites like they make Excel sheets, I think the world of programming would be better off. This is the modern version of full literacy!
Haha - why is Mac Numbers so buggy and lame?!? KeyNote is awesome, but I guess none of the UXers at Apple use spreadsheets... They don't even have freaking trendlines on the charts - for shame.
I do use Google Docs quite a bit. I could see Google releasing a Python-esque DSL.
Anyone else interested in something like this? I just stumbled across it and wanted to get people's thoughts.
1) Spend 3 weeks requesting permission to install your favorite programming tools
2) Look around your Start Menu, suck it up and code it in Excel.
(That is ignoring VB's tight integration, first mover advantage, and the fact that an entire generation of kids grew up coding MS-BASIC.)
For a spreadsheet, Excel's a not-too-bad IDE!
As I was Exceling it up tonight, and I thought to myself if I used Python as the spreadsheet language I'd be quite good by now. Excel feels like an extension of my body - I want Python to feel that way.
To be honest, my first thought was having a Scheme-based spreadsheet. I'm already used to lots of parenthesis and Excel script is sort of functional already. Not sure it'd work though.
I keep thinking that Python(Scheme?) + Spreadsheets = what Yahoo Pipes wishes it was. gDoc's ability to pull from APIs and data functions was a good step as well in this regard.
At least making programming a step closer for noobs like myself.
You may be interested in the "Siag" spreadsheet tool, which stands for "Scheme In A Grid": http://siag.nu/siag/
I was debating whether I should clean it up enough to share it (or maybe even sell it!). Seems like there's some interest in this, so maybe I will.
So instead of a spreadsheet with a programming language, go the other way around!
It's worked for the various things I've done with it, but as far as I know it's not maintained.
http://www.parsemydata.com/tabular/
It's built on top of Numpy so it's very fast and plays well with the rest of the Numpy/Scipy ecosystem. I've been using it daily for the last couple of weeks on relatively large data sets (>300MB) and have been very pleased with how elegantly and efficiently it handles things like pivot, join and aggregation.
There is a line in the source (_datastructures.py) that generates a KeyError("Circular dependency at %s" % str(key)), so I'd guess that it won't let you do anything that generate cycles on the dependency graph. And once the graph is acyclic, it should be fairly obvious in what order to update things.
It turns out this problem of computed cell references is a nontrivial one. (Excel can do it, but slowly and I suspect not with full generality.) The trouble is that you need the reference graph to compute the spreadsheet, but now computing the spreadsheet can modify the reference graph, so you have to maintain the graph dynamically as you calculate.
I'd be interested in discussing this further if you are, but email would be better than here. (My address is in my profile.)
In all serious I play with data in CSV format with python all the time so this could be extremely useful especially when I want to automate something spreadsheet related for a client/friend/coworker.