5 ms·
That’s not a bad idea. Spreadsheets are pure functional languages built that use literal spaces instead of namespaces. Notebooks are cells of logic. You could
by b_tterc_p 8y ago
That’s not a bad idea. Spreadsheets are pure functional languages built that use literal spaces instead of namespaces.
Notebooks are cells of logic. You could conceivably change the idea of notebook cells to be an instance of a function that points to raw data and returns raw data.
Perhaps this just Alteryx though
- FabHK 8y agoNotebooks are very much based on linear order and side-effects, though (while Excel is, as you say, a purely functional DAG). Not sure how they can converge.
- jacobolus 8y ago> Notebooks are very much based on linear order and side-effects Try https://beta.observablehq.com/ https://beta.observablehq.com/
- b_tterc_p 8y agoTwo types of cells. One type defines functions. Another are instances of those functions that require inputs. Arrange them in click n drag floaty space. Cells of type one exist in a name space. Cells of type two exist in spacey space. This kind of thing exists at a larger scale for pipeline visualization. I could see it working for notebooks.
- 20190205 8y agoThis is brilliant. I'm picturing the ability to write a Python function with the parameters being just like the parameters in an Excel function. You can drag the cell and have it duplicated throughout a row, updating the parameters to correspond to the rows next to it. It would exponentially expand the power of excel. I wouldn't be limited to horribly unmaintainable little Excel functions. VBA can't be used to do that, can it? As far as I understand (and I haven't investigated VBA too much) VBA works on entire spreadsheets. Essentially, replace the excel formula `=B3-B4` with a Python function `subtract(b3, b4)` where Subtract is defined somewhere more conveniently (in a worksheet wide function definition list?).
- deleted 8y ago[deleted]
- garrettdc 8y agoYou can build user defined functions in Excel with VBA as well as with Python through something like xlwings. One of the issues that I ran into with xlwings (or any third party integration into the Office suite) is portability between users. The ubiquity of Excel is both a blessing and a curse in that everyone has it, so everyone uses it, regardless of whether or not it is the best tool for the job.
- deleted 8y ago[deleted]
- rmbeard 8y agoGoogle Colaboratory is now Ubiquitous in the sense you use the term, as is Microsoft Azure Notebooks, so the Ubiquity argument is no longer unique to Excel. The big argument in favor of notebooks is transparency and the breadth of tools that they can make use of. Economists will increasingly move away from Excel as the QuantEcon website demonstrates. Perhaps accountants will still uses spreadsheets, after all they invented them, but it's unclear why anyone else really needs them when there are better tools available.
- afiori 8y agoThis would require a reactive recomputing of cells to be anything like a spreadsheet. > Essentially, replace the excel formula `=B3-B4` with a Python function `subtract(b3, b4)` as of now jupyter/ipython would not recompute `subtract(b3, b4)` if you change b3 or b4, this has positive and negative (reliance on hidden state and order of execution) effects. I too would really like something like this, but I think it is pretty far away from where jupiter is now.
- westurner 8y agoYou can build something like this with Jupyter today. > Traitlets is a framework that lets Python classes have attributes with type checking, dynamically calculated default values, and ‘on change’ callbacks. https://traitlets.readthedocs.io/en/stable/ https://traitlets.readthedocs.io/en/stable/ > Traitlet events. Widget properties are IPython traitlets and traitlets are eventful. To handle changes, the observe method of the widget can be used to register a callback https://ipywidgets.readthedocs.io/en/stable/examples/Widget%20Events.html#Traitlet-events https://ipywidgets.readthedocs.io/en/stable/examples/Widget%... You can definitely build interactive notebooks with Jupyter Notebook and JupyterLab (and ipywidgets or Altair or HoloViews and Bokeh or Plotly for interactive data visualization). > Qgrid is a Jupyter notebook widget which uses SlickGrid to render pandas DataFrames within a Jupyter notebook. This allows you to explore your DataFrames with intuitive scrolling, sorting, and filtering controls, as well as edit your DataFrames by double clicking cells. https://github.com/quantopian/qgrid https://github.com/quantopian/qgrid Qgrid's API includes event handler registration: https://qgrid.readthedocs.io/en/latest/ https://qgrid.readthedocs.io/en/latest/ > neuron is a robust application that seamlessly combines the power of Visual Studio Code with the interactivity of Jupyter Notebook. https://marketplace.visualstudio.com/items?itemName=neuron.neuron-IPE https://marketplace.visualstudio.com/items?itemName=neuron.n... "Excel team considering Python as scripting language: asking for feedback" (2017) https://news.ycombinator.com/item?id=15927132 https://news.ycombinator.com/item?id=15927132 OpenOffice Calc ships with Python 2.7 support: https://wiki.openoffice.org/wiki/Python https://wiki.openoffice.org/wiki/Python Procedural scripts written in a general purpose language with named variables (with no UI input except for chart design and persisted parameter changes) are reproducible. What's a good way to review all of the formulas and VBA and/or Python and data ETL in a spreadsheet? Is there a way to record a reproducible data transformation script from a sequence of GUI interactions in e.g. OpenRefine or similar?