20 karma · joined July 1, 2017
Then there's things like PII protections as you said, data provenance, that you could imagine baked into the spreadsheet directly. We haven't gone in that direction but I think it's interesting to consider.
What sort of features around data security would you hope to see in a spreadsheet?
That does sound like a fitting use case. Technically speaking it should be OK with 70k rows, but we've got some optimizations that might need to go out before it performs well. Ideally, you should be limited only by the memory allocated to the Python kernel, but today there are some other limitations that get in the way.
All great tools to be sure! I am a huge fan of numpy and pandas especially. For plotting in Neptyne I usually opt for plotly over matplotlib/seaborn. Agreed too on the shell -- that's why we built one into our product.
I am curious though, do you typically share/collaborate on these spreadsheets with others? Do you have a neat way of packaging up the spreadsheet+Python code?
If you go straight to https://neptyne.com/neptyne/tutorial that should work.
We do support live collaborative editing, though it isn't all built out yet. If two people are working on the same tyne, you'll see the presence of other collaborators and you'll see their changes reflected live, but the code panel updates with last-writer-wins at the moment. We're working on making that better.
Equals is a great product -- I'm a fan!
The main technical difference between us and something like Equals is that we give you a full Python environment (in the form of a Jupyter kernel running in a Docker container) for maximum programmability and flexibility. This means that you, as a Neptyne user, can connect to virtually any data source by importing the appropriate package and setting credentials. And of course you can use Python in the actual functioning of your spreadsheet, not just as a one-way data import step.
That's probably something we should dig more into in the docs, yeah. Neptyne works like a ipython/Jupyter notebook in that everything is in scope all the time. So you can write your code in an imperative way (e.g. `B10 = some_value`) within a function, or you can do use a functional style.
We handle spreadsheet-style reactivity by building the dependency graph out of any cell addresses mentioned in the cell itself. So if you have `=my_func(A1)` in one cell, it will re-run when A1 changes. But if my_func reads from, say, B1, it will not automatically re-run when B1 changes.
We see Apps Script is a strong signal that this kind of thing is useful. Apps Script adds so much power to Sheets but it could be so much easier to use. With Neptyne, since your spreadsheet engine runs in a Jupyter kernel, you get an interactive REPL and a very straightforward bidirectional API for reading/writing data.
EDIT: this should work now. Just click the new button that says "Skip signup and let me try it out first"
I wouldn't rule it out for the future though -- a lot will depend on where we see Neptyne being used.
To answer your question, it's cloud-only -- we wanted to build Neptyne as a collaborative platform where teams of programmers and non-programmer types could get things done together. I think you're right in that this will mean it doesn't work for a certain class of user, but for now at least, we're focused on Neptyne as a web app.
Thanks for mentioning this! I came across Resolve One recently in another HN thread. Were you a user yourself? What did you think of it?
Our biggest challenge as you say is definitely the fact that lots of users will be entrenched in Excel. Our goal right now is to appeal not to those who are happy in Excel today, but to those who have grown disillusioned: lots of users today build up amazingly complicated things in Excel and grow frustrated by the difficulty of maintaining that complexity. Python can be a much better fit in many cases for a lot of that complexity.
And as a platform for data science, we've found Neptyne really nice for sharing results. I was surprised at how often I heard from users: "well, we usually do everything in Jupyter, but then whenever management wants to see the output, they ask for it in a spreadsheet".
With Google Sheets you get a flavor of JS called Apps Script, a flavor of JS with some limitations. Some ways in which our use of Python differ are:
- run Python directly in the spreadsheet cells, not just as an "extension"
- a full runtime in a Jupyter kernel, so you can import and use effectively any Python package, as long as it runs on Linux
- an interactive REPL that gives you a nice test environment, but also a command line of sorts for working with your spreadsheet. (e.g. you can say `A1 = requests.get(URL).json()`) to do a one-off fetch of some data from an API.
Generally speaking we hope to give you a much more powerful/seamless integration between spreadsheet/Python than what you get with Sheets/JS
You're spot on in that, if you're a Python developer, you're probably using Jupyter and/or Streamlit, gradio, etc. and spreadsheet users are most comfortable with Excel-style formulas. What we've done with Neptyne is create an environment where teams of both types can be productive in a shared environment: the usual spreadsheet formulas are there, and so is a full Python/Jupyter runtime.
As with any tool that attempts to combine the best of multiple great tools, there's always the risk that it falls short of one or the other. Our aim is to make Neptyne a better alternative to both standard spreadsheets and Jupyter notebooks.
One more thing that surprised me a bit: in talking to spreadsheet power users, you see a lot of interest in using more Python. Neptyne is a great way to start off with a spreadsheet and gently incorporate more Python into your work!