Hacker News new | past | comments | ask | show | jobs | submit login
Launch HN: Neptyne (YC W23) – A programmable spreadsheet that runs Python
399 points by dosinga on Feb 16, 2023 | hide | past | favorite | 211 comments
Hi HN! We are Douwe and Jack, founders of https://neptyne.com. Neptyne is a programmable spreadsheet that runs Python. It’s like Google Sheets, but for software engineers and data scientists. If you have three minutes, go to https://neptyne.com/neptyne/tutorial and it gives you a taste.

The world runs on spreadsheets, and for good reason: they are a universal data canvas. But building on top of and around the spreadsheet is clumsy: limiting scripting environments, APIs and file formats get in the way of making the spreadsheet a part of a broader application. Excel workbooks become monolithic and unmaintainable. Google Sheets data become static and stale.

Both Excel and Google Sheets offer some level of programmability but we have yet to find any user who liked the experience. It’s harder than it should be, using programming languages that are more limited than you expect. With Excel you've either got VBA or an extension like pyxll to deal with. With Google Sheets, your options are AppsScript or the REST API. These tools are mediocre but the need for programmable spreadsheets is such that people use them anyway.

With Neptyne, the spreadsheet itself runs in the Python runtime, so you can write to it or read from it like an in-memory data structure, because that's exactly what it is.

Neptyne primarily solves problems that exist at the boundaries of what other spreadsheet tools can do. We make Python a first-class citizen of spreadsheet-land, meaning you don't need a clumsy integration or extension to make your code work with spreadsheets. You can use standard off-the-shelf Python libraries to build on top of an Excel-like spreadsheet environment to build collaborative applications. You mix Excel style cell addresses (A1, C3) and ranges (B2:B20) with Python code (e.g. `A1 = "foo" if B2 > 0 else "bar"`, or `for num in B2:B20:`).

Before starting Neptyne we worked at Sidewalk Labs, where we built models in Python that would typically be shared or used via spreadsheets on an interdisciplinary team. The final step of many pipelines was "write a .csv with the results", which was a great way to share data but only in one direction. What we really needed was a way for users to interact with our Python models through a spreadsheet: tune inputs, see results, make quick aggregations. After making some version of this work with the Google Sheets API, we knew this could be better. What we wanted was basically a Jupyter notebook embedded in our spreadsheet, that could give us the full power of Python while keeping the accessibility of a spreadsheet. We built a proof of concept, found some interest in it, and formed Neptyne.

Neptyne differs from lots of modern takes on the spreadsheet tool in that we really wanted to preserve the "data canvas" nature of a true spreadsheet. While there is value in making spreadsheets more like SQL databases with column-based types and formulas, Neptyne gives you the freedom to structure your spreadsheet as you would with Sheets or Excel. Mix and match data types, table dimensions, graphs, charts, and buttons as freely as you might with those tools.

Neptyne behaves exactly like a spreadsheet but is secretly an alternative frontend to a Jupyter Notebook that has an embedded spreadsheet engine. Because it runs a Jupyter kernel, we support anything you can run in a Jupyter notebook, including all the expected visualization packages (matplotlib, plotly, etc.). This is not merely scripting using Python—you can use any (stateful) Python framework to get serious work done.

Things users have built with Neptyne so far include a Twitter bot, a private spaceflight schedule optimizer, and a CRM that pulls from several different data sources.

Neptyne's basic tier is free to use. As we add more capabilities to the product, certain features will be introduced at paid tiers. For individuals building interesting stuff to be shared with the community it will always be free. For teams that need private documents, sharing and custom images, we will charge a team fee.

Here’s a link to some videos: https://www.youtube.com/@neptynehq that show how Neptyne works. If you really want to get a sense of the product, the best way is try out our three minute tutorial: https://neptyne.com/neptyne/tutorial.

We’d love to hear about things you’ve built in spreadsheets and what new things might be possible with a native Python integration! Fire away!




Hey, this is awesome! As someone who primarily codes in Python, I love that it's first class with a REPL! Nothing frustrates me more then when I have to figure out Javascript for scripting in Google Sheets.

I ran through your demo and I have some feedback:

- Tab completion in the REPL would be great.

- When I change code in the editor, it doesn't update the cell where that code is used until I click on the cell, click away, and click back.

- When I ran the append function, it worked, but if I look at the array in the cell, it's unchanged. If I click on the cell and hit enter, it wipes out the append. I'm honestly not sure what the right behavior here is, I can see use cases on both sides. But initially I did expect the cell with the array to update with the new array.

- When I tried to do autocomplete on the capitals, it failed silently. I assume the API failed to fetch the capitals? It worked on the second try (but took a while).

- When I add a column into the sheet, it breaks all the code that has cell references. I'd expect the code with cell references to get updated unless my references are $F$4 for example, just like in the sheet itself.

Overall though this is a great start!


Thanks, this is excellent feedback:

* The REPL is supposed to do autocomplete where it makes sense. If you enter A1. it should show you a list of things you can do there. That always feels better than asking for it explicitly. Let me know if that doesn't work.

* Yeah, code changes don't rerun the affected cells. It is something we've debated, and maybe we should? It feels like it could also cause unexpected things to happen. Hmm. Maybe we should though.

* This is tricky. Spilling from a function, doesn't fill the cells and then append does. Open for suggestions on how to make this better.

* We call the OpenAI API - they don't always answer these days :-(

* That's a good point. We should fix that!


Excel has an option for formula calculation, automatic vs manual. The default is automatic. There is also a 'calculate now' button to use for if you have manual calculations set. I would expect that if automatic calculations set, then my code changes would trigger calculations on affected cells. I can't speak for Sheets, but most Excel users would probably expect that behavior.


Maybe? The closest analog in Excel would be to define a VBA function call it from a sheet, go back to the VBA editor, change the definition and see the function be run automatically everywhere with the new code. That does not happen, I just tried


For the tab completion, I think I tried typing the beginning a function name (hello) and then hit tab and it didn't complete.

> Yeah, code changes don't rerun the affected cells. It is something we've debated, and maybe we should? It feels like it could also cause unexpected things to happen. Hmm. Maybe we should though.

You know your customers better than I do. :). But generally when I use spreadsheets I expect bidirectional connections and updates.

> This is tricky. Spilling from a function, doesn't fill the cells and then append does. Open for suggestions on how to make this better.

I honestly don't know. Depends on your user's use cases. Even just for me I can see cases where I would want the cell updated and others where I wouldn't. Heck maybe even just ask the user "Do you want to update the cell?"

> We call the OpenAI API - they don't always answer these days :-(

That's fine, just tell the user it failed. :)


> We call the OpenAI API - they don't always answer these days :-(

Yikes. That's worrying. Is this rate limiting or API timeouts that need some retry logic wrapped around?


I think it might have been a quote issue actually ... But we should handle failures better, I agree


My worry was more about random failures on Open AI side (I'm building something with it). Thanks for sharing. I'd love to see a blog post on how you are handling the quoting issues.

Are you planning on sticking with Open AI or is it a stop gap until you train your own models?


>quoting issues Did you mean quota issues?

As for our own models, it depends on the use case. If you click the code assist and type "Insert a pie chart of the sources of income into B3", the Open AI models do a hard to beat (at this point) job. When it comes to fine tuning on a massive stack of existing spreadsheets, published models are a better fit.


Ah quota issues make more sense.

Thanks.


This is cool, but I think it might be missing what the big problems with spreadsheets are.

I was complaining just today because I pasted some records into Excel and it decided to treat 933349234275230104 as a number (it's a hash), convert it to scientific notation (which I NEVER want), and lose precision. Yet there is no way to globally disable scientific notation. Plus it's kind of insane that "formatting" changes data in the first place.

I frequently paste timestamps into Sheets or Excel and it just ruins everything. If split-to-text puts the date part in one column and the time part in another, I can't put them back together with a simple string concatenation, because again "formatting" turned my date text into Excel's weird internal number. This is legacy behavior that Excel has to keep for backward compatibility, but I don't want it, and I wish I could turn it off.

Sometimes I'll try to scatter-plot 5 series against a timestamp, and Excel will decide all 6 columns are series, even though a scatter plot with no X-axis makes zero sense. Even when it does work, Excel seems stubbornly uninterested in understanding how dates/times work, and I can't do simple things like tell it to have an X-axis tick every day/week/month.

If you are building a spreadsheet in 2023, the #1 goal should be leaving behind all the baggage, even if it has to be behind a toggle. Listen to what people find frustrating about Excel (tip: it's gonna be dates) and fix that.

If you can do that, then yeah, Python! Woo! Neat! But that's not going to be the main draw, because it's not a solution to the main problems that spreadsheets have.


I don’t know if you’re aware of it, but if you want unaltered text content in an Excel cell, prefix it with a single quote ('). This “escapes” the value so that it isn’t interpreted as any other data type.


I'm generally pasting the results of a SQL query so this is, while possible, massively annoying to do


In that case, you could prepare a sheet in advance by setting the format of all cells to text. Shortcut sequence Ctrl+A Ctrl+1 Tab T T Return. You can record this as a macro (Developer tab) or save the result as a template.

Yes, the default format behavior can be annoying, but if it's a frequent problem there are ways to make one's life easier.


Excel has "paste with text import wizard" functionality where you can explicitly define the types your columns. For even more control try powerquery.


While we didn't set out to solve those problems in Neptyne, using actual data types in a spreadsheet does solve this sort of problems. Of course we have to be a little compatible, so our dates do come with the 1900 is a leap year bug that pre-dates excel. But they also have a .to_datetime() if you want to be more sophisticated. We have great plots out of the box, but if we want to go deeper, you can use whatever plotly or pydeck construct gets you exactly what you want.


This can be resolved by changing the cells' format from General to Text. This makes the cells display the text exactly as entered. Select the relevant cells -> right click on them -> Format Cells... -> Text -> Ok


It's already solved in Google Sheets


Founder of AlphaSheets here -- we built this back in 2015 and developed it for 3 years. We built Python, R, SQL and full excel formula/hotkey/format/conditional formatting/ribbon compatibility. It was a long slog!

I wish you good luck and all the best. It's a tough field but a big market. And I still think the potential is there.


I noticed that AlphaSheets is no longer in operation - couldn't find the website. What happened?


My guess would be not enough users wanted this feature and if they started to do well Google would add it to their free product.


> You mix Excel style cell addresses (A1, C3) and ranges (B2:B20)

Well, that's unfortunate for "power" users - I'd imagine they'd want what excel calls r1c1 mode:

https://learn.microsoft.com/en-us/office/troubleshoot/excel/...

One of the many valuable lessons from Joel Spolsky "You suck at Excel" (around 8:30 mark): https://youtu.be/0nbkaYsR94c


You can access stuff in a different way of course. Each sheet is also a python object, so you can just go Sheet1[20, 20] or Sheet1[10:20] if you like that way better


I suppose that means you can reference eg the cell "above" by doing some kind of self+/-offset?

For what I mean see: https://excelchamps.com/formulas/r1c1/


Sheet1[10:20] looks like the list slicing syntax. Are there any issues there?


You are correct, that is the slicing syntax. We to carefully interpret the ":" in the right way. For example:

sort(l, lambda A:F1(A)) doesn't invoke

Sheet1[10:20] just returns the 10 to 20s row of that sheet, which I think is the most reasonable thing to do here


I assume you mean rows 11 to 20 like the Python syntax would do or is it different because spreadsheet row numbers start at 1 instead of 0?


Ah, yes, sorry, just Python based slicing. It follows the numpy rules


The concept of Python-based spreadsheets was explored by Resolver One[1], a defunct proprietary desktop app that was discontinued ~10 years ago[2].

It seems a web version of the app has been published in open-source[3] but that too has been EOL.

[1] https://web.archive.org/web/20120211201410/http://www.resolv... [2] https://www.resolversystems.com [3] https://github.com/pythonanywhere/dirigible-spreadsheet


I remember this from the book IronPython in Action. The book teaches IronPython (Python for .Net) by having you build a spreadsheet application. The author worked on Resolver One.


(cofounder of Neptyne here)

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?


Resolve One was on my radar at the time because I was deep into building ERPs in Python.

All our clients had stacks of sedimented business rules and know-how, lying around in a mess of unreliable, unmaintained and un-versioned Excel files.

I was thinking of using Resolve One as a conduit that might be helpful to absorb all of that. A UI similar to a spreadsheet would be a clever trojan for adoption, as I could win the hearts and minds of the users that were not seeing themselves as developers. While bringing better software engineering and QA in the enterprisey world of organically grown, ad-hoc solutions.

Neptyne seems to revive that grand vision, so it would be interesting to study how and why Resolve One failed. Too soon perhaps, as the market wasn’t as big as it is today? Or maybe by the time you reach the critical point of the messy pile of Excel docs, you consent to invest into your core business and hire internal developers. I’d love to read a post-mortem of Resolve One.


I did try it, but that was ages ago. I remember going wow! and thinking this is the future of spreadsheet. Alas it didnt pan out that way. One thing it had if I recall waell, was defining a function without having to go full VBA style scripting. It was more like a lambda you define in a cell.


I have the install files for Resolver One cached somewhere. If there's interest I'll dig them out and post publicly.

I was very sorry to see the project go insolvent. I didn't become an active user due to accident of time not discovering it until the final months.


I've seen a bunch of companies do this. The problem is always that it isn't Excel. This means usually things like XLWings, Excel-DNA, etc. are actually more useful.


[flagged]


Hmm, Neptyne doesn't support XLWings and that link doesn't resolve. Where did this come from?


I think GPT-3-bots are trolling HN now...


Right? It looks exactly like what GPT3 would say!


I think Gnumeric has supported this for years.

https://help.gnome.org/users/gnumeric/stable/sect-extending-...

I recall doing a noise model of a transimpedance amp in Gnumeric where I called out to Python/Numpy to do integration of 1/f noise based on parameters from a datasheet. That was at least 10 years ago. What's the difference between this Gnumeric feature and Neptyne?


This sounds like a really good idea - combining spreadsheet convenience with being able to do programmatic manipulations with python can be really value for people who are using spreadsheets to do modeling (e.g financial). I think (especially based on some other comments) a big challenge will be just getting people out of their current bubble. If you do financial modeling, you might be entrenched in excel, and if you so data science in python, you might never dream of using spreadsheets.

My unsolicited advice (that's probably on your radar anyway) would be to try and get a management consulting firm on board with this. The flexibility this has would be well used there, and you've got lots of people who are engineers stuck using spreadsheets that would be on board with trying something like this.


(co-founder of Neptyne here)

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".


Very cool! I constantly struggle trying to do things in spreadsheets that are easy in Python. But I/O makes it annoying to write one-off scripts for a 30 second op. This would solve that pain point!

I would love a Google Sheets integration, since that's where I already live with most of my CSV/Sheets data + it would seamlessly fit into my workflow. If this was a Chrome extension I would have installed it today.

As is, I don't see myself using another spreadsheet app.


Switching tools is hard, that's something we understand. You can import sheets fairly easily of course into Neptyne. Would a two way sync (where a certain region of a Neptyne document and a certain region of a Google Sheet would automatically be kept in sync) make you have another look?


FYI There is PyXLL which is an add on for Microsoft excel that gives this functionality without a need to log into any thing.


PyXLL is great but installing on users machines can be difficult. The problem that VBA actually solves in my opinion is that it allows technicalish users to build software without any controls. Most enterprise companies lock down the dev experience so much it is impossible to do anything but in VBA you can have direct access to the kernel.


Seems pricey?


Wow this is cool! I created a similar thing over the summer but never took it anywhere because I felt GSheets would just add Python.

https://github.com/ricklamers/gridstudio

Rooting for you guys


Nice. Any learnings that we got profit from?


Get the shortcuts right hehe

In all seriousness, what I’d worry about the most is Sheets/Excel is a Swiss army knife and it’s used for tens if not hundreds of different use cases. Find out which use case/persona this programmability angle is super useful for and go after that crowd ruthlessly. Strip away anything that could be a distraction, if not you’ll be pulled in all directions.

You don’t eat GSheets all at once, you go bite by bite.


Also, given how many startups have waged war with spreadsheets probably best to watch https://youtu.be/GMIawSAygO4 for an introduction to the concept of “tar pit ideas”.

Then at least you know what you’re getting yourselves into :)


Very Excited.

I'm likely very close to the ideal user. I don't program for work but make CSV-consuming tools from Python here and there to work on giant exports of data when they get outside of Excel's built-in magic.

Most recently the exact task was to consume a Zoom user export, filter with RegEx, and transform the table for upload to Zoom as a CSV again, but with different fields. This would translate very well to Neptyne if it supported 70k rows.


This sounds like a great use case for a few lines of petl: https://petl.readthedocs.io/en/stable/

Petl makes it very ergonomic to write ETL scripts like what you’re describing. Take a look at the regex.search method and the fieldmap method.


(Neptyne cofounder here)

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.


This is really cool. There was another recent post about something similar: https://news.ycombinator.com/item?id=34805132

One question/thought: what's your security like? Inevitably, people treat spreadsheets like databases for better or worse. That means they often contain lots of things that might be better stored elsewhere - sometimes PII, sometimes a proprietary formula, set of factors as inputs to a process, etc.

So, I think many spreadsheet-heavy businesses will avoid something that doesn't obviously sit inside the fortress of security they've approved. Of course, someone can just accidentally email a spreadsheet to the wrong person or store it somewhere with no security. It happens all the time, I'm under no illusion.

Point is: I would be more likely to give it a shot given a base level of confidence about the security of storing anything in these sheets.

Interested to hear your take!


All excellent points. Right now, Neptyne works much like a Google doc in that it's private to you but is easily sharable to pretty much anyone. If our users are looking for it, a self-hosted option is certainly something we'll explore.

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?


I remembered Alphasheets was acquired by Google a couple of years ago for doing similar thing (they programmed in Haskell which is really cool) https://medium.com/bloated-mvp/alphasheets-mvp-review-ec328e...


Very cool. I've done plenty of work supporting non-technical users who primarily interact with spreadsheets. This would definitely make my life easier.

Is it going to be cloud-only, or are you planning on making a desktop app? If it's cloud-only, you can grab some (hopefully many) Google Sheets users, but most Excel users will probably pass.


Thank you! I do hope you find it useful.

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.


Why choose this over pySpread?

https://pyspread.gitlab.io


PySpread is really nice! However it is the Pythonic-ist approach to spreadsheet imaginable. It makes no attempt to also support the Excel way of working. Also personally I think having an actual code pane and REPL integrated right into the app makes it a lot easier to write and test code


That looks useful. Of course, one big difference is Neptyne is "in the cloud" versus an app you have to do download.


> versus an app you have to do download

For some, an advantage rather than just a difference.

Different strokes for different folks, of course.


> For some, an advantage rather than just a difference.

And for others, a disadvantage, rather than just a difference.


Hence my use of the colloquialism “different strokes for different folks”.


LibreOffice Calc combined with python's pandas and numpy modules meet all needs I have for spreadsheets, with matplotlib and seaborn for visualization. The Ipython shell is the optimal IDE for this approach IMO. My desktop reference is:

"Python for Data Analysis 2nd ed" (Wes McKinney, 2018)


(Neptyne cofounder here)

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?


Somewhat same, but I'm not sure what you need Calc for, I can't remember the last time I deliberately opened a spreadsheet.

On the other hand, while Matplotlib and its ecosystem of add-ons and close imitators is fantastic, it's not friendly to most people, and making it interactive is a massive pain. If you want to wiggle sliders and watch your charts change in real time, you need to use pyplot or something instead.


And it's something that'll literally last forever. Not dependent on a company or pricing.


On the surface this seems like an impossible market to penetrate. But you must know this. What is the deeper insight that one who thinks this is missing?


I think when we see the title we assume the market is “everyone who currently uses a spreadsheet”. And if they try to go after that market, they have almost zero chance of success.

But if they focus on a specific set of users and use cases they can be a much more compelling product than excel, and even a “tiny” market, relative to excel’s user base, can be big enough to support a set of competing tools.

The question remains though — what is the specific set of people they are trying to help, and why are they best at helping?


>>The question remains though — what is the specific set of people they are trying to help, and why are they best at helping?

Yeah, this is what I'm trying to understand. I can't really imagine how to do this for any subset of people in spreadsheet land. Excel and Google sheets are great products, there are network effects, the complexity of the product means scale matters.


I believe Google Sheets supports programmability using Javascript these days. Is your product fundamentally different? Thanks and all the best.


(co-founder of Neptyne here)

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


First: congratulations. I love the premise.

You've hit the nail on the head: While Google Sheets supports Javascript, the integration feels clunky. You have to switch from the spreadsheet you're working on, to the Apps Script editor. This is awkward enough that I tend to avoid this functionality, even in use-cases where a few lines of Javascript code would probably save me time (vis-a-vis engaging in gymnastics in a bunch of spreadsheet rows/columns or a separate tab).

In comparison, Neptyne makes Python feel like a first-class citizen.

That said, you might want to consider slight changes to the UX so that users conditioned on Google Sheets/Excel's UX paradigms can use it with their "muscle memory." For example, when I select a cell and press the '=' key, I expect to be able to start typing in a formula. Both Google Sheets and Excel behave this way. In Neptyne, I had to double-click on the cell first. The closer the experience to the two "biggies", the easier it'll be to convince folks to switch.


Agree with making it as much the same where it can be the same. In this case it should work the way it works with the other spreadsheets though. Click a cell and start typing should work and for me just did when I tried. Can you reproduce this? Thanks!


Understood. Thank you for the elaboration.


I like the idea: I was actually looking at an open source tool that does something similar: combine spreadsheets with python.

I do have a question: Similar tools tend to fall down after the code grows to a certain size. Modularity, unit tests, etc. become more useful at this point. I'm wondering if Neptyne will (or does?) support these sorts of features?

Edit: Here's a link to the developer docs: https://docs.google.com/document/d/1zLOXBoy-nf05SU3d5sZ7lDDg...


Having multiple code panes (files) is a recurring feature request that hopefully we'll get to at some point. Similarly we have some ideas around testing - automated testing for spreadsheets seems like it could be very useful! You can pip install anything you want though, so having your orgs libraries separately installable is one way to go about it.


open source data spreadsheet + python tool - were you looking at https://www.quadratichq.com/ ? or something else?


This looks fantastic, and sadly completely misses the mark on a huge industry that uses excel every day: investment management, hedge funds, etc. Why? Because this is yet another cloud only solution with no self hosting possibility.

These firms are very-very rich and would pay good money, but a very small %-age will be willing to give you their data. It doesn't matter how many certifications you quote about data treatment, we will simply not trust you with our data, full stop.

You say pyxll is a mediocre tool, but IMO they understand how this industry works.

Really sad, because the tool itself looks fantastic...


If they had built this so they handled the SaaS part, but could persist the data in your organization's own AWS / GCP / Azure blob storage, would that be enough to get the solution past the line for acceptance? I'm in security, but in tech, where SaaS solutions are usually much more accepted.

The challenge with on-prem software of course is just how much support it takes to maintain. At my last gig, we deployed new microservices every 5 minutes; I can't imagine how much it would have sucked to worry about maintaining on-prem installs.

I'm wondering if this kind of shared model could make it workable.


Thanks! We've talked to a lot of people in hedge funds and investments, and you're right that a lot of them care about a self-hosted solution. This is definitely on our radar as a potential future path for the product.


Looking for something like this exactly. Is it possible to install on site? No way my company would want prop data on a cloud.


Sorry, not right now. Obviously something we plan to do eventually ...


...just adding my voice for an on-premise option


grist is similar enough i think, its a hybrid spreadsheet/database that lets you use python for formulas, and has an option to self host


Looks cool, but the get started --> skip signup to try now --> empty tyne flow is broken. When I click "empty tyne", it just reloads the page and blocks you with "empty tyne" again and again.

Also, I'm curious if it supports live collaborative editing like google sheets/docs/etc do?


Hmm, sorry about that broken flow. We added some last-minute things today to get the skip-signup thing working that might have some bugs :)

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.


I know python, don't really know VBA. This will open up a new world for me. Excited to try it out.


Let us know how that goes and if there is anything we can help with


Good opportunity to highlight Google "Apps Script" which is one of the most powerful but unknown tools in the web: https://developers.google.com/apps-script/guides/sheets

Includes easy fetching: https://developers.google.com/apps-script/reference/url-fetc...

I suppose python could be better for this use case but javascript seems to work fine. And it's all built righ in to Google Sheets.


I feel like I should plug something I've been helping with for a while- it's not documented well yet, nor fully CRUD capable, but if you want to interface with Google Sheets a little better (and get things out in arrays of objects) this might be a good start:

https://github.com/texas-mcallen-mission/sheetCore


(cofounder of Neptyne here)

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.


> Drag the corner from F7 to F9 to compute the total cost for each unit.

I do that.

> Server connection error: failed to connect to server

I get that the system is overloaded, but if every small action requires a network, and I can't use it with intermittent network let alone offline, I'm not too thrilled.


You have a right to be not all that thrilled because of this. Unfortunately you seem to have hit a bug that we sometimes see and haven't been able to pin down. Normally if the network is flaky or the server slow, it should just reconnect when possible in a fairly seamless way


Back in 2012, I used Data Nitro / Iron Spread. It enabled running Python on spreadsheets.

My problem back then with the tool was that it sat between chairs. It was impossible to run Python entirely, as it only ran a subset of libraries and did not have a package manager, and it required thinking about cells, as is the case with Excel formulas.

As a result, I could only use some of my Python codebase and not collaborate with other Excel users who were not Python experts. We ended up reverting to Excel formulas or VBA.

I'm curious about who is the target user for Neptyne. Is it Python developers and data scientists who want to do some spreadsheet work?


Very cool idea. Since it is based on Jupyter Notebook, can I self host this for my needs?


We don't have a self-host option at the moment. We wanted to build Neptyne as a collaborative platform first, where users could build together and share their work.

I wouldn't rule it out for the future though -- a lot will depend on where we see Neptyne being used.


Interesting! Congrats on the launch.

I tried it out, and just first feedback:

- I often use the "Home" and "End" key to go the start/end of the line when I'm editing a cell. It scrolls to start/end of the whole spreadsheet, however. Since I'm not a spreadsheet user, I'm not sure if that's expected.

- The handlers like "on_dropdown_change" should receive an argument for the cell it's coming from, so you can e.g. change the cell that's next to it. Or how else is this supposed to be done?

It's quite cool :-) I suppose one problem could be integration with existing Google Sheets / Excel sheets?


Home/End : Oh that feels like a bug. Stop propagate that event already!

> The handlers like "on_dropdown_change" should receive an argument for the cell it's coming from

They do! If you define a function that does not take a parameter it is all fine, but we introspect if you do and if so, pass on an event object:

def on_dropdown_change(value, event): event.cell.set_background_color(value * 50 + 100, 100, 100)

would change the cell with the drop down's background color based on the value selected


Very cool! Does it allow real-time multi-person editing? (It's not very clear from the landing page.)

If so - how do you handle multiple people editing the code area at the same time?

Would be a killer feature if this was robust!


Thanks! Multi user should work out of the box, but right now it is last writer wins, which seems fine for the sheet side of things. We have a prototype of concurrent editing for the code area, but it's not launched yet. We'll prioritize depending on how many people ask for it.


I can't understand how this will improve the work. I see the value of having python instead of sheets formulas for python developers, but developers would work on totally different toolsets (like Jupyter notebook, as you mentioned), or something like StreamIt or https://gradio.app/

This would be useless for spreadsheet users (those who use sheet formulas) as they have to learn python.

I'm not in the target audience, so I might be completely wrong about the use cases.


(co-founder of Neptyne here)

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!


The formula in python will be useful for my use case. I can simply import a package like investpy or openbb then print the output directly into a cell. This will be great, i think.


This is impressive. It seems like you really understand the requirements of the audience that uses spreadsheets AND data centric Python! The REPL, in particular, is a nice touch.

My biggest concern with a tool like this is that the power-iest power users who would love it tend to work at big enterprises where they're locked into productivity suite bundles with Microsoft or Google. Additionally, if you get traction, Google and Microsoft would be very likely to clone your features for Sheets and Excel.


This looks very useful, I can see this being used in schools and universities for a plethora of studies.

However I am European in EU, and while your Privacy policy is eminently readable, I don't think it can be used in EU school settings as you do not specify who your 3rd party service providers ar, what their privacy policys are or where data is hosted (thank you for making it human non lawyer readable).

Schools/Universities in EU are not allowed to use services that are not hosted in EU.

Im not sure if you use Google Analytics but please know that the legality of using GA in EU has been questioned in both Netherlands and Ireland. I'm not up to speed on the proceedings but I believe the Netherlands found it to be in violation of GDPR since the data was not stored or processed in EU. EDIT: Add Austria, France, Italy, Denmark, and now Finland to the list...


Oh, thanks. That's very helpful. Schools do seem like a good area to roll this out and in fact we did a pilot with a Swiss university (I know, not in the EU). We should look into this.


Basically just make sure that you route EU institutional customers to a version of your product that is on a Datacenter that is GDPR compliant in Ireland and does nto send data out of Ireland.

Good thing about EU Educational institutions is that once you get your foot in the door, they are very conservative and dont like to terminate accounts unless absolutely necessary. Usually buy services for 3 or 5 year cycles.

Good luck!


I may be wrong, but most people that know python have already understood there's better ways to code than spreadsheets. Also, at least where I live, not even Google could undermine Excel's dominance.

PS: I'm convinced I was indeed wrong after reading replies, because I didn't consider the interaction of coders with no coders, and this tool may indeed be useful. Nevertheless I maintain these cultural changes are very hard, and wish the company good luck!


Is the argument here that "if you know how to code, spreadsheets aren't useful to you?"

If so, that's false. Spreadsheets are a fantastic way to present visual data and analysis in a way that's auditable by anyone, regardless of technical competence. They are visual programming!

This also makes them a better way to do lightweight data processing. One of my most common workflows is to dump production data into a CSV so I can analyze it and build charts off it. This is perfect for business-as-usual questions, like basic segmentation analyses. Pivot tables!

A major issue with Google Sheets is that the DSL is terrible. Like, try to do any sort of string manipulation (extract the first two words)[1], and you'll see how bad it is. Adding native python support helps solve this.

I'm just a random HN-er who saw this, but I'm very excited about this product.

---

[1] https://www.spreadsheetclass.com/extract-text-or-numbers-fro...


I think there's a real use case here if you can convince the people who write python and the people who write excel spreadsheets to work in the same environment. Like other people have mentioned though, it's easier to add python to excel then it is to change everyone's workflow to some totally different thing.


You convinced me (and I edited my post). Thanks :)


I can't pass something with Python onto my team. I have to work within the constraints of Excel. My team sees the value of Python but none of them want to learn it, and none will maintain it after I go. They do however know spreadsheets (even complicated ones) so those I can.

EDIT: Sorry I see you changed your mind - so what I wrote maybe wasn't necessary but I'll leave it here. To be clear I wish my team would learn Python, but most of them get promoted and richer without learning it.


Traditionally the business is the source of spreadsheets (data comes from the biz side of the equation). The data analyst then has to make sense of the data.

So to convince a BA to input their data on Neptyne because the DA might need to python script it at some point is maybe premature optimization.

That's an uphill battle... But I definitely see it a good case for me personally as someone who both originates data (nothing fancy) and needs to process it further...

Will definitely check it out!


(co-founder of Neptyne) - It's definitely not the easiest market to break in, I am sure you are right there. The Python side of things does allow for easy import of data from anywhere though - you can just go:

A1 = requests.get(SOME_URL).json()

to make a REST API call for example. Right now that's often done by running some script that produces a .csv that then gets emailed around and imported into a spreadsheet.


Congrats ! Looks really cool !

I always had this rule of thumb, "the better a programmer is at spreadsheets, the worse programmer he is" :D Mostly cause I suck so much at spreadsheets. I always think to myself, dammit I'm a career programmer how come I can't do a double-column lookup across two sheets with my eyes closed :(

Anywhoo congrats again, now can we make it work with something nice like Clojure or Lisp :P ?


There have been a least half a dozen companies and countless FOSS projects attempting to do the exact same thing. What makes this special?


I yet to understand a reason for cell to be addressed by A1 or C1R1 style. put it in a table, give a column a name. Numbers got it right.


This looks really cool.

When I try to get started on https://neptyne.com/neptyne/_new though, I get a HTTP 403 for the POST to https://neptyne.com/api/tyne_new and it brings be back to the selection screen.


Sorry, we were doing a redeploy to make it possible to access the tutorial without signing up - by popular demand


can it handle a million rows? 10M?

believe it or not this is my biggest problem with Sheets, and while Excel does better it's still capped at 1M


Since manually scrolling through 10M rows is not likely... at that point isn't it better to just use an SQL DB rather than a spreadsheet?

SQlite could be enough, and it's comparable to a spreadsheet in that it is well suited to a single-file single-user local-DB scenario, yet can still handle large quantities of data.


No one loves SQL more than me but the effort jump between "paste into a spreadsheet" and "load into SQLite" is at least 100x

Computers are fast, I have gigabytes of RAM, I should be able to look at 10M rows


Currently it cannot. However we find that many millions of row use cases don't actually need those millions of rows to be in the spreadsheet - you just want to be able to process that amount of data. So connect to a SQL database from the python side of things, read in 10 million rows, aggregate them into something succinct and write that to the spreadsheet is to sort of thing we're seeing.


I (mainly) don't want to aggregate them, I want to look at them.

Don't forget "Filter". It's very easy in a spreadsheet to take a huge number of rows and cut them down -- interactively! -- to a subset that's of interest.

Based on what I see I may want to scribble formulas in the margins.

I love love love SQL but it is not a spreadsheet. SQL is great at aggregating down a column but very awkward at aggregating across a row. My SQL prompt doesn't have scatter plots built-in. I can't arbitrarily color rows/columns/cells.


Once you hit a million rows wouldn't it be easier to just make it a proper database? Maybe there are some use cases where this is not true, but I can't imagine what they are.


This is really cool and promising product! So many times when I was getting a google docs spreadsheet from non-engineering folks I was wondering if only I can embed a small jupyter notebook with a few python cells and a nice looking pandas chart, using this data.. Congrats on the launch!


Thanks! We like it too :)


Reminds me a little of the long-defunct "ResolverOne" for which the only reference I could find was https://www.python.org/about/success/resolver/


Discussed a bit at comment by kdeldycke - https://news.ycombinator.com/item?id=34819682


Good job! i really like the idea and also the implementatino is really good for something totaly new! But as much as i would love to see this as the new MS excel i can't immagine this replacing it. I wish you good luck and i hope more ppl will start using this instead of MS excel


Looks cool! Since you mentioned all the magic happening in the backend, how does it run? How do you ensure I am not running malicious Python code, like infinite for loop or never-ending recursion? Also, disabling file or network IO?

Did you also explore running Python in the browser using wasm?


Good questions!

So it runs all in a container. If you want to crash that container, you can! You can't (we really hope) escape from that container though. You have full access to the local file system and you can access network IO - without those you would hardly have a full Python environment. The container runs a Jupyter kernel with a spreadsheet run time. You can break the spreadsheet run time if you want. But it will just kill your own thing.

We've looked at wasm, but we want to solve one thing at the time and running Jupyter kernels in containers is a fairly well understood way to do things. Plus you do want to support server side calculations for a number of reasons. Let me know if you have more questions!


How do you manage version control and testing? I can't see anything in the docs about that.

Lack of review/tests etc is the main reason IMO that spreadsheets can be very dangerous tools. The more they become production applications the greater the impacts are.


Congrats on the launch. Building a product of this complexity is no easy feat! Out of curiosity: given the old adage that a product needs to be 10x to overcome switching costs, how do you prove users that you are 10x better than Google Sheets or Excel?


Just some feedback: the landing page dimensions are all out of order. There's a horizontal scrollbar under the "sneak peak" section. Never a good thing. The spacing between the heading and the hero image is far too wide.


Thanks, appreciate the feedback! You make good points. We'll have a look at how we can improve the landing page.


This would be actually useful if it were offline and didn't require a login.


"Supercharge your spreadsheets with Python and AI"

lol, threw in the AI there just in case


Yeah, we do actually have some decent AI integrations: https://www.youtube.com/watch?v=GfQVtNCdwzc - for the HN discussion we wanted to just really focus on the Python Programmable Spreadsheet


Pricing info? Maybe I'm missing it but I don't see it on the site.


"Contact for pricing" => "What can you afford?"


It's free so far and will be free for personal use. We'll add a team based priced layer as we add more features


Can it handle in-coming websockets (I want to do similar things to Grafana with it - so a continuously updating spreadsheet)


Wow this is so cool!

I'm trying the app tutorial out and some of the calculations (e.g. the sum() step) is taking maybe 30-60 seconds to complete — is that usual, or are you getting hugged by HN?


Eh, yeah, I think we are experiencing some slow downs all over the place. Sorry about that? It usually should take about the time of a round trip to the server (plus whatever time Python takes to execute the sum, but that should be fast). Sorry about that!


I like this idea. If I’m doing anything more than a trivial formula in Excel or Google Sheets then it’s a pain to look up the proper syntax. Just being able to use Python sounds great.


This reminds me a lot of DabbleDB. It was an interesting application written in Seaside, a very cool web framework running inside the Smalltalk VM. They got acquired by Twitter.


Cool idea but not ready for primetime. The very first thing in the demo didn't work: couldn't drag the cell and couldn't use command+C to copy the data.


Very cool but what's to stop Microsoft from doing this in Excel and making it instantly integrated into the software that millions of us already use?


Excel -> Alt+F12 -> Embedded VSCode Python editor


Microsoft already has an identical offering (VBScript in Excel) so we can all see how good Microsoft is at developing such a thing.


The not built here bias is very strong. It would almost certainly be cheaper to buy Neptyne than to rebuild.


Nothing, however they've had a couple decades to do that and haven't.


In that case, mission accomplished.


I think https://www.visidata.org/ also supports python


How is this different from other solutions such as this one: https://equals.app?


(cofounder of Neptyne here)

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.


This seems like an amazing idea probably because I know python pretty well... People who can't use python probably won't be into it.


It is true that the people who are most productive today in Neptyne are those who are pretty familiar with Python. Part of our long-term goal is to make this kind of programming more accessible to beginners, and we talk to a lot of people who wouldn't call themselves "programmers" but are familiar with spreadsheets. Our hypothesis is that if you give these people a frictionless way to incorporate programming into their workflows, they'll learn quickly and reap the benefits.


This is a kind of product that’s easy to scope creep so I’m curious, how many person-months did it take you to build this MVP?


Did you build this from the ground up or are you leveraging a spreadsheet / grid library behind the scenes? Cool Project!


I'd like to try - it's quite a cool idea. But the interface seems broken.

Is that the HN hug of death, or my corporate netowrk playing up?


What exactly are you seeing that is broken? Can you share a screenshot?


Well, my corporate network seems to be blocking websockets to your domain...

So it's definitely not a neptyne problem (it works great on my personal laptop).

Cool product! Thanks for the good work there.


This is neat. Congrats on the launch. Having a python repl next to spread sheet will be handy for a lot of user cases.


Questions:

This is a platform as a service?

How does the frontend work with the backend, it’s all backend and magic stuff to reflect it on the frontend?


> This is a platform as a service? That is correct

> How does the frontend work with the backend, it’s all backend and magic stuff to reflect it on the frontend?

All the logic is happening the backend, yeah. The Jupyter kernel runs Python, but the Python is processed in a way that it understands spreadsheet expressions like A1, B3:C8 and has the Excel functions available. The frontend reflects the state of the backend at all times and syncs over a websocket. This setup gets you multi user for free.


Congratulations on the launch! I'm very excited to try replacing my hacked-together AppScript with this.


How does it interact with libraries that need the file system? e.g. Can I use requests-cache?


It should work. I haven't tried requests-cache exactly but in Neptyne you're running with a Jupyter kernel in a Docker container backend, so you do have a filesystem to work with. That file system is mostly ephemeral though -- when you leave and come back, you'll get a new container, so anything you need to persist should live in the spreadsheet itself.


Yes. You can use whatever you want. We do ship with a bunch of useful things installed (requests, pandas, plotly) but you can pip install whatever you want.


hey not sure if intended but the hero section looks odd at bigger screen sizes (https://imgur.com/a/j7QH8kJ)


thanks! that's helpful


Why do you require a login for the tutorial? I backed out because of it.


We just added a button to let you skip the sign-in for the tutorial: https://neptyne.com/neptyne/tutorial


Is there an api or cli interface so I don't have to use the web ide?


Sorry, not yet! I suppose we could allow editing the code pane using an external editor, but the spreadsheet would be tricky I think. Or do you have an idea of how that would work?


I don't really know. Maybe something as simple as using a git remote, I then edit in my editor of choice, commit, push to remote, then pull in the gui to get the latest. I'd rather do all that than have to use a different editor. Just something to think about. Thanks.


What's are the costs? Couldn't find it on the site.


Forced signup to even test it? Hard pass


Thanks for calling that out! We made it possible to skip the sign-up to try our tutorial. https://neptyne.com/neptyne/tutorial should now let you do that


does this neptyne also work off-cloud? e.g. now way that i'll upload my data into the void.


wasn't there some rumours about excel adding python support? what happened to that?


or just use pivot table.


I had three minutes, clicked tutorial and got a modal asking me to sign up.

Left the page.


We hear you and we do want to make it possible to try the tutorial without signing up for an account. We're working on making that possible shortly. I'll update here when that's possible

EDIT: this should work now. Just click the new button that says "Skip signup and let me try it out first"


I didn't even get three minutes; as soon as the page opened, I couldn't do anything without signing into Google or creating an account. Closed the tab.


Ugh fine I’ll take the bait. If you all don’t want to create an account, don’t expect to try anyone’s products! It doesn’t even make sense from a software perspective: A spreadsheet needs to belong to a user. You can’t edit a google doc or sheet without being logged in. Sure, they could create a sandbox demo of their product that works without an account, but that’s kind of an unreasonable feature expectation to thrust onto every website.


Jupyter online test page, no login: https://jupyter.org/try-jupyter/retro/notebooks/?path=notebo...

Online python REPL, no login: https://replit.com/languages/python3

Another generic online REPL service, with pandas example, no login: https://onecompiler.com/python/3x7an28pr

ReactJS online playground, no login: https://playcode.io/react


"Sign up to save" is a quite common pattern these days and what I would suggest they are doing here as well.


I already had a google account when it came time to try Google Docs.

I'm not going to make a new account somewhere just to demo what they offer. I have to be convinced before I enter my personal info


You can still read the tutorial without getting a Google Account, and that can be more than enough to get a feel for the product. At least enough to decide if you want to get a test account.

Here the Tutorial is Login Gated. That's just going to turn people who are curious and have 2-3 min to look at it, away.


Modern problems require modern solutions. I keep a separate gmail id just for this. Also I signed in using gmail and redirect didn't work in firefox.


Don’t studies show that you have to make users do something that requires friction to boost conversion? Otherwise they’re not valuable leads


With pay-per-use services propping up around AI, I'm sensing that asking users to sign up before trial will become inevitable.

1. Is this a HN only phenomenon or is there a significant drop-off in general because of the signup requirement?

2. If the drop-off is general, how are you planning to handle AI pay-per-use credit tracking without signup?


I think they are referring to the fact you can’t even try it without signing up. I don’t think people mind signing up and paying if they feel they will use it.

So much stuff is released every day, I don’t want to be bothered creating an account and giving my info to everything on the internet. Give me a good demo and if I’m interested I’ll sign up.


Thanks for letting us know. I won't even bother clicking on the link.


I hate email signups as much as the next guy, but the truth is...if you find their value proposition so weak that you won't even enter an email address or click through a Google login button?

Then maybe you're not who they want as a first customer anyway.

Perhaps this is just successful self-selection, rather than merely a user-hostile behavior?


no this is just user hostile and a bad sales funnel. Even Googles Tutorials are not login gated, however it expects you to get a 14 day free account to test Google Apps if you want to do the practice material.

Show what you have, then gently nudge people in to the sales funnel. Dont body slam them in to i.


It doesn't do a verification flow on the address provided, so you can just use <randomstring>@sharklasers.com or similar to try it out.


same, what a sad tease.


I don't know what to make of the fact that reactivity doesn't seem to be discussed in the docs or the tutorial. I am a fan of ObservableHQ's reactive JavaScript notebooks, in which blocks of code get rerun when their inputs change. This is reactivity in the same sense as spreadsheets are reactive, and it's pretty neat. One nice feature of ObservableHQ is that you can use free variables when writing code blocks, and they will get their values (reactively) from the environment. That is very powerful and it seems to me that plugging a scripting language into a spreadsheet should work that way as well.


(Neptyne cofounder here)

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.


> But if my_func reads from, say, B1, it will not automatically re-run when B1 changes.

Is that a conscious design decision, or a technical limitation? I would definitely have expected it to automatically rerun by default.


It's a conscious decision. The spreadsheet recalculates itself, the python code doesn't. Recalculations in the spreadsheet are determined by the graph (cell Q3 depends on cell D4 because it mentions it in it's formula like "=D4 * 3") If Q3 calls a python function ("=my_function()") and in that function D4 is mentioned we don't add it to the graph. It is already hard enough as is to see the dependency graph in a spreadsheet - adding implicit relations to it would make this almost impossible.


In Observable, a cell can define a function or return a value. When the value of a free variable within a function definition changes the function is redefined rather than the function being rerun. So there is a clear difference between points at which the function's bound variables come into play (function invocation) and the points when changes to the free variables have an effect (function definition). It's far from unmanageable in that "reactive notebook" setting. Maybe spreadsheets are the problem...

FWIW: https://www.nature.com/articles/d41586-021-01174-w


Congrats on the launch! I'm the cofounder of Mito[1], an open-core spreadsheet extension to Jupyter that generates the equivalent Python code every time you edit your data. We also think that combining the intuitiveness of spreadsheet UI with the repeatability and large-data-handling-abilities of Python is going to unlock a bunch of Excel-first analysts to save themselves tons of time by automating repetitive reports.

One difference in our approach is that the Mito spreadsheet goes from Spreadsheet -> Python code, instead of the other way. For every edit you make in the Mito spreadsheet, we generate the equivalent Python code for you.

In practice, this has been really important for us for few reasons:

1) A lot of our users are early in their Python journey. They might've taken a Udemy course or done some Kaggle classes, but generally they are not yet comfortable writing a Python script from scratch. Since they already have a ton of work on their plates, if the option is do the report manually in Excel for 2 hours today or spend the next 2 days writing a Python script to automate their work and save them those 2 hours a day each month going forward, they will probably choose to do it manually. By giving them the Python code for the edits that they make, its more like build the report for 2 hours today in Mito and get the Python script automatically so you don't ever have to build the report again.

2) There are 1 million and 10 things that users want to do in a report, so by giving the user the equivalent Python code, they're able to use the code they've generated as a starting point, not the finish line. For example [2], one really common use case we've seen is Excel workbooks with the following tabs: input_data, Jan 2020, Feb 2020, …, Dec 2022, …. In each case, the month tab corresponds to the same sort of filtering and transformations of the input data. These users get a huge amount of value out of actually having access to the Python code that they generated. The user will use the Mito spreadsheet to generate tab Jan 2020, turn the Mito generated code into a function, and then apply the function to generate Feb 2020 ... December 2022.

[1] https://www.trymito.io [2] https://blog.trymito.io/automating-spreadsheets-with-python-...


Please no


"Please don't post shallow dismissals, especially of other people's work. A good critical comment teaches us something."

https://news.ycombinator.com/newsguidelines.html

https://news.ycombinator.com/showhn.html




Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: