anyfactor 4 days ago

I was an excel enthusiast and studied accounting mainly for Excel. Although I have moved to programming unlike most I still do think Excel is awesome.

I sincerely commend the enthusiasm, but working in the industry as the "excel expert", I think most outsider does not understand the "cult" aspect of Excel.

Excel works. That is it.

Trying to replace excel with anything will be percieved as replacing a calculator with some alien substance that does math. Excel is like Pencil and Pen. You can not replace it.

Excel is not software it is a tool.

I have had my fair share backlash when trying to introduce replacement and complimentary tools. To replace excel, you not only need to advocate for it's usefulness and you need to be also be liable to the complaints from excel users. If anything goes wrong no how minor with the new tool, you are the one who introduced all these mess.

So, in practice what usually happens is that, when people hit UX challenges they go to a consulting firm and commission a backoffice software to address the Excel limitations. Some business may pay for nocode but that is very rare. They go to backoffice software firm and they build a CRUD software that is now not replacing Excel but compliments it.

  • nhatcher 4 days ago

    I think I understand the cult part of Excel. And to be honest, Excel is a fantastic tool. I don't think IronCalc can ever replace Excel (a boy can dream though!). But many companies need a spreadsheet of sorts they can embed in their product. Allow me a bit of humour:

    > Any sufficiently complicated startup or young company contains an ad hoc, informally-specified, bug-ridden, slow implementation of 10% of Excel.

    Maybe we can use IronCalc for those cases?

    • bwanab 3 days ago

      > > Any sufficiently complicated startup or young company contains an ad hoc, informally-specified, bug-ridden, slow implementation of 10% of Excel.

      Let's give Philip Greenspun due credit for this phrase. I'm going to guess there's at least one generation who isn't familiar with it.

      • nhatcher 2 days ago

        I was tired when I wrote that. I think I just assumed everyone would get that reference

    • mritchie712 4 days ago

      as a saas founder, I can confirm you are 100% correct about this and we'll be looking at IronCalc for https://www.definite.app/

      • Alifatisk 3 days ago

        I have to mention this, when scrolling through the website, as soon as the Lakehouse illustration to the right renders, it degrades the performance on my MBP, the browser even starts to stutter!

        • mritchie712 3 days ago

          Thanks for the feedback, on it!

      • jeffreyq 3 days ago

        cool and slick website. reminds me of linear.app but when i attempt to scroll all the way down it lags. i'm on macbook air with chrome browser

        • alsetmusic 3 days ago

          I was viewing in Safari on an M1 Max MBP with no lag. Read this and switched to Chrome and confirmed lag when scrolling. Also lagged returning upward.

          It was the only page open in Chrome, freshly launched specifically for this test. Safari has a bajillion open windows and tabs. Something about how Chrome handles the page is definitely odd.

          Just for fun, I also tested in Firefox, which was already open with fifteen windows, most of which have a handful of tabs. No lag there.

          • mritchie712 3 days ago

            Got it, any chance you could send me the version of Chrome?

            This has been tricky to reproduce.

            • alsetmusic 2 days ago

              It didn't lag when I loaded and tested just now to grab the version of Chrome: 122.0.6261.129. Presumably, that's because I'd visited earlier. I don't want to reset Chrome to try to repro again.

              I did load up Chromium to check it and got the lag there as well: 124.0.6359.0 (Developer Build)

              I don't use Chrome almost ever. Maybe my outdated version is why you can't repro.

            • jeffreyq 2 days ago

              Version 130.0.6723.92 (Official Build) (arm64)

        • diegolas 3 days ago

          chrome on a celeron laptop, barely if any lag

  • atoav 4 days ago

    Excel is powerful, but it is also important to consider its limitations.

    Things will get real when your orgs problems/needs grow from something that was totally cool to do with spreadsheets to something requiring higher complexity, performance, resilience, testability, coordination, ... — and the point at which you cross over into the latter is not always clearly marked.

    It would for example not be advisable to use Excel sheets as a replacement for a distributed database of central importance, unless your org is a lemonade stand with 3 employees.

    I would also prefer maintaining a python script with written tests over maintaining an Excel file containing complex business logic, but maybe that is just personal perference.

    Don't get me wrong here, Excel is amazing and we should all use it where it shines. But as with all tools we need to be aware of the fact that they heavily color the way we look at problems, as expressed by Maslows famous aphorism: "If the only tool you have is a hammer, you tend to see every problem as a nail."

    Good engineers should not be blinded by their tools, but accutly aware of their limitations and know which to use when. Just like with hand tools you could probably also just hammer a nail in using a shovel or "drill" a hole using a screwdriver and Excel is very versatile in those regards: it can get you very far without being the best solution, a bit like a swiss pocket knife.

    • zitterbewegung 3 days ago

      You are totally correct but, pragmatically excel can be used as a prototyping system for nearly every business and if you need to have higher complexity you port it into a Python script. This is not unheard of and I think it's a common pattern. When you have your business analysts already getting something that works its much better than having a set of meetings trying to discuss what the needs are from the business.

      • atoav 3 days ago

        Yeah but that is what I meant with the right tools. Anybody would agree that drafting your application on a big whiteboard or a piece of paper might be totally acceptable.

        But running your entire org on a single whiteboard or a piece of paper only works up to a certain size and comes with downsides as the org grows. Same thing goes for one big excel file where people have to take turns with editing.

    • respondo2134 3 days ago

      I get what you're saying, and agree with lots of it, but most of the time things built in Excel are not for programmers, usually have no maintenance budgeted, and often are built by non-developers.

      To extend your analogy too far, Excel is the 4mm allen key you get with all your Ikea furniture. It's good enough to build all the bog-standard, functional but not particularly nice furniture you need, but sure you'd rather have bespoke custom work. Sometimes you don't have or want the tools, or know how to use them and that's OK.

      • atoav 3 days ago

        Which is precisely my opinion as well. My post was a caveat, nothing against Excel at all.

    • no_wizard 4 days ago

      What would be nice though is if you could export logic from excel to examine it and port it.

      One can dream

      • stackskipton 3 days ago

        You easily could. Format is available.

        What I found is such tools barely work because what makes Excel so sticky is ability for end user to change that logic. X + Y = Z. Well, Click Clack and Z -Y = F

        That's just so difficult to handle in a way that isn't "Just use Excel"

  • delusional 4 days ago

    > So, in practice what usually happens is that, when people hit UX challenges they go to a consulting firm and commission a backoffice software to address the Excel limitations. Some business may pay for nocode but that is very rare. They go to backoffice software firm and they build a CRUD software that is now not replacing Excel but compliments it.

    Heh, where were you 6 month ago when my team was pitching some of our traders on replacing a system they'd built for balancing their strategy. It was built in excel of course, but what surprised me was the resistance to changing it at all. They all hated the thing, it was slow and crashed often, and right in the middle of the difficult part of the work too. Working with it was a terrible experience, even for people used to medium business enterprise crap. Yet they refused to consider any alternative to building some CRUD around it that would extract the worst parts.

    The issue we faced was that there was no way we could contribute to this excel monster while still following the risk tolerance of our department. It's not that we're opposed to building something that is probably a bad idea, if it helps build relationships that let us build something better later. It's more that as soon as IT touches it, we get to own every legal aspect of it too. So they ended up with an external consultant that built them what was essentially an external database they could query, which was then supplied with data by some program somewhere.

    It ended exactly as you say. They got a back-office firm to develop some one-off hack that alleviated the immediate problem, without replacing excel.

    • antasvara 4 days ago

      I think this highlights the main issue with replacing Excel, which is that most people have an undocumented, informal workflow with their tools in Excel that would be difficult to replicate fully in other software.

      Relevant XKCD: https://xkcd.com/1172/

      As someone that has had other software tools replaced with alternatives (think Slack replaced with Teams), the new solution almost always speeds up and fixes a lot of problems. It also invariably screws up at least one thing that I need the tool to do as a part of my job.

      I love my IT colleagues, but (and I mean no offense to them or other IT folks) they don't understand that the way we use our internal tools is super flexible and doesn't adhere to an end to end process. It's how we ended up with an entire software platform that takes more manual steps, breaks in a way that we can't fix, and still requires the use of Excel to get the output into the formats that our stakeholders need. It also can't adapt quickly when we need to change things in our process.

      It is a technically impressive tool that does the things they designed it to do super well. But we're like a month away from needing an Excel tool (or another piece of software) that can reliably do all the things we didn't realize relied on the "hot spacebar" from the XKCD.

  • skissane 3 days ago

    Outside of specific domains such as finance and accounting, most people don’t really need Excel, and will be served perfectly well by Google Sheets or whatever.

    Indeed, I have hardly used Excel in years. I do use Google Sheets at work, where they are used for adhoc tracking by engineering, product management, project managers, etc.

    Our son who is 11, he uses Google Sheets - and I know he has used Apple Numbers in the past too. I’m not sure if he even knows what Excel is.

    • respondo2134 3 days ago

      I think people conflate Excel the product with workflows that can be solved with Excel. Lots of tools like sheets and even numbers can do the latter, but nothing since Lotus competed with the former.

      So if you've never used Excel, you can probably get away with an alternative. But if you already know Excel, why would you add another product for some subset of use cases?

      • dleeftink 3 days ago

        I'm a heavy Excel user, and I have yet to find a usecase that cannot be solved in Sheets. It has App Script after all, for whenever you run into a feature that isn't there. But even then, I've translated many Excel functions to native Sheets array_formula equivalents, and found the latter much more ergonomic.

        • no_wizard 3 days ago

          Much of Excels dominance is due to its legacy pervasiveness in certain industries/ roles (notably finance or financial related but there’s strong bureaucratic use of it as well asan ad-hoc tracking tool for instance) and the fact that two generations of people grew up using it.

          I’ve noticed over the years that younger generations are far more used to using Google Sheets since schools and universities have strong adoption of Google Workspace. As a result, I’ve seen less and less use cases that were once believed to be Excel only domains turn out not to be.

          I’m not going to proclaim the death of Excel by any means but it’s not as ironclad of a leader position as it once was. There is however some increasingly niche cases where Excel can do things that Sheets can’t, or doesn’t do as well. One non obvious (for todays environment) use case being offline portability, Excel being a standalone program really helps here.

          That said, they both suffer from one issue that’s the same, which is there is no ergonomic way to run business logic rules over the calculations easily (and some cases at all)

          • proamdev123 3 days ago

            What do you mean by “run business logic rules over the calculations”? Genuine question.

            Don’t most people embed business logic into their spreadsheet formulas?

            Or is there something else you’re referring to?

            • no_wizard 3 days ago

              It’s not uncommon for the sums of the spreadsheet to get fed into other systems or even spreadsheets.

              There being validation around that can significantly reduce errors, such as checking totals against system values etc.

        • infoseek12 2 days ago

          There are lots of cases in businesses where there are integrations with other software that are difficult to port.

        • danm 3 days ago

          Maybe it has changed, but last time I tried to use numbers it still didn’t support resolving circular references through iterative calculation.

        • mikeyouse 3 days ago

          Mostly in jest but the use case where Sheets falls over for me is copying formulas to the right…

      • skissane 3 days ago

        > But if you already know Excel, why would you add another product for some subset of use cases?

        I know Excel – I've been using Excel since before Sheets existed. First spreadsheet I ever used was Lotus 1-2-3 for DOS (I was just a kid at the time, so I was just mucking around with it, not using it in anger – but I remember watching my father use it in anger.)

        At my work everyone gets Sheets, whereas you only get an Excel license if you specifically request one – and most people don't. So why would I use the product which most of my colleagues don't have, instead of the product everybody has?

        Likewise on my personal laptop, I have an Excel license... and still I use Sheets for most things. Habit maybe? I've never used the web-based Excel, and I don't like having to deal with open another app.

        The only time I ever use Excel nowadays is if I need to open some complex Excel spreadsheet that Sheets can't handle properly, or if I need to work on some Excel spreadsheet import/export function at work – both of which are "once in a blue moon" activities for me.

      • alsetmusic 3 days ago

        I've only watched an Excel expert work their magic in person once and it was straight up sorcery. I'm glad not to need to learn it, but it was eye-opening seeing her rapidly make changes (with me not understanding what she was doing, sorta how non-experts likely perceive what we do when we help them with their personal devices) and come out with exactly what she wanted. Must have taken her about a minute and there were changes every several seconds until she was done.

        Black magic in the hands of an experienced user.

      • wrs 3 days ago

        In the case of Google Sheets, one reason is that collaborative editing in M365 Excel is absolutely awful. It’s slow, clunky, and more importantly loses data. If you have a shared spreadsheet with important data in it, it’s worth switching.

        I’ve worked with a “prototype CRM” that was just a big Google Sheet. Basically a lead generation form would add a row to the sheet, and the sales team would edit cells to reflect the state of the sale. It grew to 3 million rows and still worked. Doing that in Excel is a laughable idea.

        I’ve also been on a management team where compensation planning was done with ten managers editing a shared Excel sheet with just a few hundred rows. Somehow some rows got deleted and others got slightly scrambled during the process. It was a huge mess.

  • wslh 4 days ago

    As an expert in Excel, don’t you think Google Sheets has chipped away at Excel's dominance in a very smart way? I’m not saying that Google Sheets is a complete competitor to Excel, but it has been highly user-oriented. And, if we add Apple Numbers to this discussion, I feel it’s still at a kindergarten level by comparison.

    I think this is where IronCalc like software could thrive: finding a non-complete competition to Excel, and Google Sheets that does the other part of the work better.

    • antasvara 4 days ago

      What Google Sheets did that was super innovative IMO was make a spreadsheet that integrates with the entire Google ecosystem.

      I am partially joking (they put it on the cloud in a way that's super useful and made collaboration remotely easier, along with other scripting inprovements), but I think it highlights that the main "benefit" to Sheets is that it's a fully featured product created by a mega-corporation that complements other tools they have to offer.

      Put another way: how many companies use Microsoft for everything except Excel? How does that compare to companies that use Google Drive for everything except for spreadsheets?

      A tool like this one has the upward battle of needing to be so useful, it is worth employing alongside your currently existing office software. It feels like spreadsheet software is a particularly hard arena to compete in, given the quality of the major ones you mentioned.

      • wslh 3 days ago

        > It feels like spreadsheet software is a particularly hard arena to compete in, given the quality of the major ones you mentioned.

        It’s not just a feeling. A basic Porter’s analysis, especially with a 6th force, reveals how nearly impossible it is to compete effectively (now) in the spreadsheet software market given the dominance of the major players.

        [1] https://en.wikipedia.org/wiki/Porter%27s_five_forces_analysi...

      • respondo2134 3 days ago

        a killer feature of Sheets is querying web-based databases for adhoc reporting. You can do this lots of ways including Excel, but sheets was early and makes it very easy. I've saved so much development effort (in Excel or elsewhere) just dumping data into a sheet and letting them at it.

  • analog31 3 days ago

    I think that experienced Excel users and managers don't expect Excel to be perfect, but have figured out how to cost the inevitable bugs and changes into their expectations, to a good enough level of accuracy.

    Nobody knows how long a software project will take, if it will deliver something that works or not, and if responsive support will materialize. Many if not most developers agree with this, even if they disagree as to the root causes.

    One way to think of it is that it's a difference between a person and a process. A spreadsheet can be created and maintained by a person -- often the end user themselves. But since most people don't program, getting software written and maintained requires a process.

    The same is true of driving a car versus flying in an airplane. When you drive, you feel like you're the person who's in control of getting yourself to your destination. When you fly, you're placing yourself at the mercy of processes that you don't control and that are not all aligned with your interests.

  • dudus 3 days ago

    As a long time Google sheets user I recently was involved in a project for one of these Excel heavy enterprises.

    I proposed the CRUD solution to complement their use case but the solution was not received well. They couldn't allocate computer resources to host the solution within their infra easily. So they pushed back and asked us to develop some Excel add-on, PowerBI based dashboard or some kind of Microsoft no code I can't care enough to remember the name.

    I had no experience with PowerBI at all. But had a lot of fun learning about it. Great ideas on that piece of software but ultimately it's too hard for Excel users and too finicky for real data processing other than very simple stuff.

    It failed spectacularly in the end. We could never make it work reliably and the customer also skimped on the license and didn't want to add some extra features M$ft charges on the side such as power automate and some "advanced instances". Which meant the software runs have to be manually triggered on the managers machine to update the dashboards. It was nasty.

    The end result is completely unmaintainable. A collection of "M" scripts inside a power bi dashboard, it pulled data from multiple spreadsheets from specific locations, joined and processed the data, and generated reports. The scripts runs on a Thinkpad so it needs to fit inside the machine constraints of memory and processing. Some of the files are manually updated so very easy to mess up the format or permissions to the point the whole thing broke.

    It was a cool experience I'm never repeating

    • steine65 3 days ago

      This mirrors my experience. I am the accounting manager responsible for updating these dashboards at my saas employer. Troubleshooting powerbi errors during month-end close is the most stress-inducing thing. And whenever management wants a dashboard edit, we have to somehow know that the spreadsheets being fed the powerbi cloud data will also change. Maybe an extra row inserted into the pivot table of ARR by product. Now any formulas directly referencing the cells rather than using XLOOKUP are pointing to the wrong product category. I was chewed out hard for that one a few days ago even though IT made that change, since it updated our report after review. TLDR: Powerbi suck, use a data warehouse and SQL for data transformations.

  • mmooss 3 days ago

    > I have had my fair share backlash when trying to introduce replacement and complimentary tools. To replace excel, you not only need to advocate for it's usefulness and you need to be also be liable to the complaints from excel users. If anything goes wrong no how minor with the new tool, you are the one who introduced all these mess.

    That is a universal issue of IT management: Any change implemented in IT systems (or anything else) will get that kind of resistance - bigger changes cause more resistance. If you change their primary tool, which they use all day and on which their jobs depend, expect a lot of resistance. The solutions:

    1) Get management buy-in. They set the ceiling for acceptance - very few underlings will have more interest or make more effort than their management; if the manager dislikes it, doesn't use it, is disinterested, etc., then most others will do the same. Also, management is your support - when someone objects, they are not just objecting to you, they are objecting to their manager.

    2) Get user buy-in. This is perfectly reasonable, if you think about it: Their tools, they use the tool all day, their jobs, probably they should have the biggest say. It means obtaining and utilizing their input from the start on what the tool should and should not do, etc. It may not be what you planned or expect; it may shatter your dreams; that's good - your fantasy was not aligned with reality. They provide the user end (e.g., 'don't change the keyboard UI that is in all our muscle memory and in all our documentation, and automated in macros'; 'of course you are migrating our macros, on which we depend, right?!'), you provide the technical end (e.g., 'we need a database with a spreadsheet UI and not a file-based spreadsheet').

    3) Use all your development skills: test, mvp, deploy, iterate, etc.

    4) Use some social intelligence: Deliver to the most interested, capable users first. Others will see them being uber-productive and want one too. Provide everyone with incredible, highly responsive support. Etc.

  • cyrialize 3 days ago

    My first career was at a fintech company that sold auditing data. All of our clients were accountants, auditors, lawyers, etc.

    Every single person worked in Excel. It didn't matter how old our website was, how crappy our code was - all that matter was that we generated a CSV.

    I used Excel often - I think many people underestimate how powerful Excel is and how much of finance / auditing relies upon it.

    My co-workers used to joke that the world runs on Excel. That some of the most important economic documents are probably some .xlsx file named "economy-v3" that people send back and forth over email.

  • manvillej 3 days ago

    I feel like any solution that replaces excel must solve a larger problem outside the scope of the spreadsheet.

    Data intake, preprocessing, solving performance limitations, executing automated decisions.

    If it’s just a “better excel” it’s not better enough.

  • paulddraper 2 days ago

    Hardly.

    Google Sheets is used for all sorts of things.

    Does it REPLACE Excel? No, not fully. But a lot of the time, it does.

  • Andrew_nenakhov 4 days ago

    I would very much use a product that would work exactly like Google spreadsheets, web and all, but would be self-hosted.

    • magusor 4 days ago

      Have you tried collabora office and/or onlyoffice ? These could match your need.

      • Andrew_nenakhov 3 days ago

        Yes and it is atrocious compared to Google Spreadsheets, unfortunately.

        • magusor 3 days ago

          Yes, they are indeed not as streamlined unfortunately. Maybe ethercalc if you need something lightweight, but that's also not a real alternative https://ethercalc.net/

    • ochrist 3 days ago

      I use NextCloud with Collabora Online (hosted and trimmed down version of LibreOffice). All self-hosted.

nhatcher 4 days ago

Hey! This is my project! Amazed to see this here. I'll try to answer questions people might have

  • airstrike 4 days ago

    Where were you when I started writing my code ;_; I have also written a spreadsheet engine in Rust from scratch, for an app built with the iced GUI library!

    I'll take a deep dive through your repo and compare notes later this week. Congrats on the huge lift!!

  • ericra 4 days ago

    Great project. I particularly love the:

    1) mit license 2) using plausible instead of Google analytics. Practically speaking, uBO is going to block both by default, but for non-tech users this is great. 3) appreciate how the app respects your pc when the web app is running in the background. Very low footprint, no random CPU spikes or anything.

    Wish you guys the best.

    • nhatcher 4 days ago

      If you are curious, I just made the analytics public:

      https://plausible.io/ironcalc.com

      I think more than one folk in HN might be interested. All traffic is because of this post. I had no visitors as of today. This was work in progress :)

      • twojacobtwo 4 days ago

        Sweet, it's basically data on HN users then.

        Only 13.4% of HN readers use Firefox. For shame. But seriously, it's interesting that safari is top by quite a margin.

        • rsi_triad 4 days ago

          * HN users who don’t block analytics

        • mgkimsal 4 days ago

          I have to imagine most of that safari is mobile safari / iPhone traffic?

        • lbotos 4 days ago

          I assume that's mostly iphones?

      • ksec 4 days ago

        It will be HN user who dont block the analytics. That is with no DNS or uBlock solution.

        I would imagine both solution being much more popular on Desktop / Laptop. Hence 75% of all views counted are actually from Smartphones.

      • fragmede 4 days ago

        What do your logs say for breakdown on user agent?

    • nhatcher 4 days ago

      Thanks :).

      WRT: Plausible. I think I will remove all kinds of analytics, I'm not yet convinced I should be using them at all. That being said I had been longing to try Plausible for the a long time and this seemed like a good opportunity.

  • bsenftner 4 days ago

    How does your project compare to:

    https://bossanova.uk/jspreadsheet/v4/ which is the open source version of

    https://jspreadsheets.com/

    Serious question. I base a lot of work off the open source jspreadsheet. Curious about yours.

    • nhatcher 4 days ago

      At the moment they are a full production ready product, we only have an MVP.

      If and when we reach version 1.0 we might be comparable. And you might want to use one or the other. It its difficult to say who the two product will compare in a year from now but probably IronCalc will be lighter, easier to integrate, faster in computations but not so feature full.

  • readthenotes1 4 days ago

    What keeps me in Excel 2007 is Goal Seek.

    I'm not sure how unusual I am, but would be interested in knowing:)

    • nhatcher 4 days ago

      Thanks for the feedback, I will keep this on the back of my head. This and things like sensitivity analysis are not in our immediate roadmap, but this is the kind of thing that would be fairly easy to add. You can do it right now programmatically, of course.

  • negoutputeng 4 days ago

    nice project ! and attempt to modernize the spreadsheet tech stack. be warned though, that the feature-set of the modern spreadsheet is gigantic, with tentacles in hundreds of nooks and corners. Any attempt to play catch-up is a losing proposition. Hence you could position it so as not to directly compete with excel - in areas that are new or emerging.

    trivia: js based https://ethercalc.net/ is in turn is derived from https://github.com/DanBricklin/socialcalc written by the spreadsheet inventor dan bricklin

    • fermigier 4 days ago

      Fun fact: Audrey Tang, creator of Ethercalc, went on to become Minister for Digital Affairs for the Taiwanese government.

    • nhatcher 4 days ago

      I've said this in some other comment. We can't and will never be as feature full as Excel. We want to find different use cases. A super light spreadsheet with MIT license that you can use anyway you want.

      If I were to go closed source, for instance, I think I loose 90% of my selling points.

      • mjrpes 3 days ago

        One of my dreams if I were to create my own web-based spreadsheet engine would be to make worksheets much more general purpose and not stuck in tab UI like Excel. You would be able to embed them separately in the page so multiple worksheets could be viewed at the same time. Example: you might have multiple small worksheets with financial summaries where the columns are slightly different. You could also do things like include text above/below worksheets, to present the data in a document-like format.

        • jitl 3 days ago

          This is how Apple's Numbers.app works.

  • yowlingcat 4 days ago

    Very cool library. I like the goal of Excel support (it truly is an incredible platform). A couple of questions:

    1) Any plans for programmatic manipulation of pivot tables? Looking across the Python ecosystem, outside of xlwings (which essentially requires FFI manipulation of a running instance of Excel), nothing else makes it possible. It does look like some .NET Excel libraries support it.

    2) Will there be ability to use the engine as library? Would love to use something like this through Python bindings.

  • eviks 4 days ago

    Cool project!

    Do you have a detailed list tracking compatibility with Excel?

    Do you have any great ideas where you can surpass it (in one way you can use yours without UI)?

    • nhatcher 4 days ago

      Thanks!

      There is not a detailed tracking of all Excel features. But we track:

      1. Function implementations: https://github.com/ironcalc/IronCalc/labels/Functions 2. Dynamic arrays, defined names, pivot tables, ...

      Excel is huge we only aim at implementing a subset.

      • eviks 4 days ago

        Exactly because Excel is huge it'd be nice to have such a detailed reference, grouped by type: functions, UI, scripting, built in analysis tools etc

        And some features could reduce pressure re compatibility in other areas. For example, if you had some kind of wasm plugin system, then people could easily write the lacking functions in their favorite language without having to wait for the core to add such a function.

        • nhatcher 4 days ago

          Thanks for the feedback. I will try to build a more detailed compatibility reference as you describe.

  • wslh 4 days ago

    Thanks for your great work! I’d love to hear your thoughts on a recent “brainstorm” a few of us had here on HN about spreadsheets. How does this resonate with you? [1][2]

    [1] https://news.ycombinator.com/item?id=42027356

    [2] https://news.ycombinator.com/item?id=41970554

    • nhatcher 4 days ago

      Hi wsih, thanks! There is a lot to unpack on those threads but of the top of my head: 1. Clear separation between UX/backend Done by design in IronCalc. It is first a spreadsheet engine.

      2. Multi language support, language connectivity, enhanced data types, ...

      You might very well be right, but out first step is to be as close to Excel as possible. We are ~ 1 year away from being formula compatible in a reasonable way. Once we are there we can do better in different directions. I think strict typing might be very beneficial for spreadsheets engines. Anything you can do to reduce errors and human mistakes.

      I strongly believe that having a competitive spreadsheet engine fully open source might be a good first step in extending and improving Excel.

      Let's see!

      • wslh 4 days ago

        I am sure you are in the right track! It would also be great to know if you have some kind of business model on mind.

        • nhatcher 4 days ago

          Noup. I'm not doing this for money. Not saying there is not a business angle, and happy to help anyone that wants to build a business using IronCalc.

    • enugu 4 days ago

      Hyperfiddle and Quadratic implement some of the items on your wishlist (richer data types, modern programming languages, working with arrays, better connectivity to data tools).

      • nhatcher 4 days ago

        They are both amazing tools!

  • madjam002 4 days ago

    Do you see this as an alternative to OnlyOffice? I’m wondering if you’ve tried it and how you think this compares

    • nhatcher 4 days ago

      I remember trying it out, yes. I yet need to do a serious comparative analysis.

      For what I can see OnlyOffice is feature complete, it's a full office solution. The sheets component is way ahead from IronCalc.

      On the plus side, IronCalc is way lighter. When you go to IronCalc you download < 1Mb (compressed), it is faster and able to load larger workbooks on the web. IronCalc is an engine, meaning you don't need a UI at all to run it.

      I don't think IronCalc is an alternative today to OnlyOffice. At most one day might be an alternative to the sheets component.

  • hitradostava 4 days ago

    Amazing project. The question I have is why rust? Is the compiled WASM significantly faster than JS?

    • nhatcher 4 days ago

      Yes, the compiled WASM is significantly faster. Easily by an order of magnitude. I might be completely wrong about this but I _think_ if the brilliant folks at Microsoft research in the calc intelligence group would have waited a few years they might have used wasm instead of TypeScript (https://www.microsoft.com/en-us/garage/wall-of-fame/calc-ts-...)

      As for Rust, could have been C or Zig. I just needed a language that minimally compiles to wasm.

      There is another reason though. IronCalc runs in the bare metal, not only in the web and needs to have bindings to languages like Python, R or Julia. I can't get that today easily with TypeScript.

  • arjunlol 4 days ago

    Looks cool! What sort of different solutions do you imagine devs building on top of the engine?

    • nhatcher 4 days ago

      One of the recurrent topics is integration with spreadsheets done by non-developers.

      Imagine a spreadsheet built by the finance department of an institution. It is also maintained by them. The developer team might want to integrate this tool in their workflow. With IronCalc the can add units test or compute it a thousand times, one for each user.

      I don't think developers would choose IronCalc to do any actual development. They will be forced to by other parts of their tool chain being spreadsheets.

      Another way would be developers wanting to build spreadsheets with some extensions for a company or organization. Imagine needing a spreadsheet that has a built in SAT solver (like https://github.com/shnarazk/splr). That would be easily built in IronCalc.

      Not sure if any of those ideas convinces you :)

  • fatih-erikli-cg 4 days ago

    Where and how do you handle the operator precedence? I couldn't find in the codebase.

    • mdaniel 4 days ago

      I'm cognizant it's just documentation, because the code is its own thing, but it seems to be a recursive descent parser https://github.com/ironcalc/IronCalc/blob/2c2228c2c26386b019...

      • fatih-erikli-cg 4 days ago

        [flagged]

        • bonzini 4 days ago

          The function for asterisks and slashes is called from the functions for pluses and minuses. The result is that asterisks and slashes are evaluated before pluses and minuses. It's actually very easy to understand once you get the idea.

          https://en.wikipedia.org/wiki/Recursive_descent_parser

          • fatih-erikli-cg 4 days ago

            I don't think a recursion should be involved in the parser. Shift-reduce may be an answer but it does not fix the problem either if you try to implement that. I would like to see real code rather than written homework pieces.

            • bonzini 4 days ago

              You're conflating parsing of expressions with operator precedence parsers (aka Pratt parsers). IronCalc uses a recursive descent parser, and Pratt parsers are an optimization of recursive descent parsers. Pratt parsers have one function that implements all precedence levels, while recursive descent parsers have one function per precedence level, but they contain basically the same logic.

              Source: 20 years ago I converted GCC's C++ parser from recursive descent to an operator precedence parser; obviously GCC respected precedence even before my work, which was purely an optimization. In fact the code I replaced had the note "The expression parser recurses through the various levels of precedence as specified in the grammar, rather than using an operator-precedence technique".

              https://github.com/gcc-mirror/gcc/commit/b8b94c5ba81744d325f...

              • fatih-erikli-cg 4 days ago

                Operator precedence is an addition to parsing of expressions. Both of them is needed if you accept "2 + 1" kind of expression. "2 + 2 * 2" must be evaluated like "2 + (2 * 2)". Only expression parsing will evaluate them like 8.

                • bonzini 4 days ago

                  You can choose: learn recursive descent parsing, or keep on being confidently incorrect.

            • amluto 4 days ago

              Better not use popular toolchains then:

              https://gcc.gnu.org/wiki/New_C_Parser

              https://clang.llvm.org/features.html

              I think this is a quite popular approach for multiple reasons. That being said, tree sitter uses GLR.

              • fatih-erikli-cg 4 days ago

                There is no recursion involved in parsing. You keep a stack for the tree.

                • bonzini 4 days ago

                  Recursive descent uses the processor stack as the parsing stack.

                  • fatih-erikli-cg 3 days ago

                    Recursion is mostly involved in interpreter, and most of the time it is a bad practice. No recursion needed in parser.

                    • bonzini 3 days ago

                      Dunning-Krueger effect at its best, I am done arguing.

  • alexk101 4 days ago

    I haven't looked into the source for your project, but am curious if you are integrating any kind of existing engine/backend (Polars is what I am thinking) into it, or if that is even possible.

    • nhatcher 4 days ago

      Not as of now. We first want to be a first class spreadsheet engine that implements 90% of Excel functions and features like array functions, LAMBDA, ...

      A goal of IronCalc is to make things like integrating Polars trivial for a developer.

  • dpe82 4 days ago

    What a cool project! I intend to dive in and I'm sure I'll have questions as I do. Are you active in Discord? The invite link on the bottom of ironcalc.com isn't currently valid.

  • hotbutterscotch 4 days ago

    Hey, sorry for the noob question. What is the use case for this. Is it to integrate into webpages for rendering data in spreadsheets/tables ?

  • sunshine-o 3 days ago

    Beautiful project. Congrats and thanks !

  • echoangle 4 days ago

    Where does the name come from?

wuming2 4 days ago

It’s a great ambition to replace Excel and many went down this path before. Congratulations to even attempting to achieve it and going this far to do it.

Excel compatibility, when fully realized, will remove the major obstacle to adoption. Given the current stronghold Excel has on the market.

Once that is achieved do you plan to offer a transition to more modern forms of calculations as vectors and arrays formula panels together with frozen sheets of raw data and output? Thus separating logic and model.

Also when your solution adoption will have grown much larger you should learn from the experiences Bavaria and CERN went through. Microsoft stronghold more often than not has nothing to do with technical prowess.

  • evanjrowley 4 days ago

    >Also when your solution adoption will have grown much larger you should learn from the experiences Bavaria and CERN went through. Microsoft stronghold more often than not has nothing to do with technical prowess.

    Can you elaborate on those experiences?

    • wuming2 4 days ago

      The government of Bavaria, one of the wealthiest countries of the German federation and thus of the world, tried to replace Microsoft with Linux and generally FOSS solutions. Twice.

      CERN tried to replace Office with NextCloud. It is now struggling to cope with a policy reversal under Microsoft fanboys.

      Both cases were also discussed here.

  • nhatcher 4 days ago

    Yeah, that is not our battle. At least not right now. Excel, and Google sheets, are and will be far more advanced than IronCalc. What we can do is to cater different needs. The focus is on lightweight and open source. Given the billions of spreadsheets out there I wouldn't be surprised if for a small percentage of them IronCalc is a better option.

    The reason for Excel compatibility is twofold:

    * You can use your workbooks as the are * You don't need to learn a new tool

    > do you plan to offer a transition to more modern forms of calculations as vectors and arrays formula panels together with frozen sheets of raw data and output?

    So far, nothing beyond Excel's compatibility

thezipcreator 4 days ago

cool project, but I don't particularly like "The democratization of spreadsheets" as a catchphrase. Like, what does that even mean? If by "democratization" you mean like, more able to be used, well anyone can go download LibreOffice or for the web use CryptPad's Spreadsheets, and if you mean that it's more open, well both of those are open source. Is this project specifically run democratically or something? It just seems like a really bad use of meaningless marketing terminology.

  • nhatcher 4 days ago

    Can only agree with you. I just created a ticket for this:

    https://github.com/ironcalc/ironcalc.github.io/issues/14

    As I said somewhere else I had really bad marketing skills. Maybe I should talk to someone who really knows what they are doing :)

    The catchphrase was decided in 5 seconds when I was sending a proposal to the nlNet and stuck.

    Thanks for the feedback!

  • usr1106 4 days ago

    I think it's the general idea that free (as in speech) software is "democratic". Even if the project does not do what you want you can always modify or fork, i.e. make changes privately for your own use or even distribute them. Closed source software is like totalitarianism, the leader or leading party knows what is best for you.

    Democracy is not the best analogy, free software projects have BDFLs. The difference is more indirect, in democracies citizens have rights and freedoms. In non-democracies typically less so.

    • thezipcreator 4 days ago

      FOSS is more anarchistic than democratic, I think. Sure, there exist democratic organizations like the Debian Organization, but if you don't agree with their decisions not much binds you to them (that's how projects like Devuan can exist). The same applies to projects with BDFLs as well (altho I do disagree with that form of governance for a project).

    • 7bit 3 days ago

      99,9999999% of the people using open-Source software are absolutely unable to modify or fork said software. From the other 0,00000000% most don't care enought to modify it.

      Calling it democratic is is like calling cancer a completely natural phenomenon. It's true, but it's also completely beside the point

      • usr1106 20 hours ago

        So what? Coming back to the poor analogy of democracy, the same fraction of voters could not run a government. The majority has never participated in any public manifestation.That does not mean we should all live under dictatorship.

  • icemelt8 4 days ago

    Because of your comment, I discovered OnlyOffice.

    • homebrewer 4 days ago

      I recommend you un-discover it and take a look at the Collabora office suite. It's basically the LibreOffice engine with a web ui on top. We've been using both OnlyOffice and CODE for years, and CODE has much better performance (both the client and the server; probably because the backend is in C++ instead of Node), it's more stable over the long term, and has better compatibility with msoffice.

      https://www.collaboraonline.com/code

      https://hub.docker.com/r/collabora/code

      (it's FOSS, the language about "home use" is there to scare large companies into buying commercial versions with support contracts.)

      • v3ss0n 4 days ago

        Onlyoffice have a lot better compatibility .

  • rizky05 4 days ago

    This reason met my definition of democratization:

    > Empowering SaaS Developers: Hundreds, if not thousands, of companies have implemented half-baked spreadsheets in their systems. IronCalc aims to provide these businesses with a superior, open-source alternative that enhances their SaaS applications.

    I am currently creating SAAS and the idea of implementing LibreOffice on top of my offering just not gonna work.

snthpy 4 days ago

Awesome project! Looking forward to following this.

I've been looking out for projects like this over the years and I'm glad to see that this one takes Excel compatibility seriously! Also love the choice of Rust and WASM!

For me Dynamic Array support is a blocker and I can't play with it until you've got that. Very glad to see that's your top priority though[1]! That and everything in the Logical, Lookup and Reference, and Information sections (in that order). That covers probably over 95% of my work and I spend most of my time in Excel.

1: https://docs.ironcalc.com/

  • snthpy 4 days ago

    What would be quite cool would be a small utility that one can run over ones workooks and that produces a csv or json file of all the Excel functions used and their count.

    People could submit those and you'd get real usage stats of what functions people actually use in real world workbooks rather than guessing.

    Users could also then use this to run a compatibility check to see if they could move over to your engine or not.

    • nhatcher 4 days ago

      Hi snthpy, that is planed! We used to have that, but I removed it to simplify the UI.

      If you don't mind compiling yourself there is a somewhat rough tool tat does that:

      https://github.com/ironcalc/IronCalc/blob/main/xlsx/src/bin/...

      It will tell you exactly what cells evaluate differently.

      I will also add mentions to unsupported formulas and features

  • nhatcher 4 days ago

    Thanks! Yes, that is exactly the top priority of the project right now.

kaathewise 4 days ago

A spreadsheet engine. It's a React app with a Rust backend, but it impressed me how snappy it was[0]. Of course, it's not nearly as feature rich as Google Sheets, not to mention Excel.

[0]: https://app.ironcalc.com/

  • mdaniel 4 days ago

    "backend" seemed to imply it was contacting some server, but https://github.com/ironcalc/ironcalc#early-testing claims (and the network tab confirms) it is just Rust compiled to wasm, no "backend" required

    MIT or Apache 2 (player's choice) if anyone else has grown deeply suspicious about any "open source" HN headlines of late

    • kaathewise 4 days ago

      Right, I've made a mistake! I keep getting surprised by the fact it's possible to simply compile a Rust crate with a WASM target and run it in the browser.

    • fsckboy 4 days ago

      backend does not imply server to me, it implies software that does the calculating engine work and does not concern itself with display refresh.

      • bonoboTP 4 days ago

        Backend is a general word, not limited to client-server or the web. You can have a rendering backend with various configurable choices, like in Matplotlib (https://matplotlib.org/stable/users/explain/figure/backends....), or the deep learning library Keras has a choice between PyTorch, JAX and TensorFlow backends.

        • fsckboy 4 days ago

          we're talking about a spreadsheet engine, the backend is not going to be the Xserver displaying it

      • readthenotes1 4 days ago

        In code that typically runs in on e process, that's a plausible interpretation.

        However, the browser, sorry, the Internet browser, is typically a distributed system and a more plausible interpretation of backend is server-side.

        IMNSHO.

      • ninalanyon 4 days ago

        Surely that's background not backend.

        • 8n4vidtmkvmk 4 days ago

          I wouldn't call it background unless maybe it's async or continues to process stuff while you're doing other things.

        • fsckboy 4 days ago

          what's the backend of a spreadsheet engine going to be doing? updating the datastructures of the spreadsheet.

          is it going to be local or remote? that's not part of the question.

          is it foreground or background? that's an implementation choice. apple II, yeah, everything freezes while it recalcs. windows? recalcs when it can, don't let the mouse freeze.

  • nhatcher 4 days ago

    It's running entirely on your browser unless you click share, download or import. The computation part is done in Rust compiled to wasm.

    Thank you for posting!

    • kaathewise 4 days ago

      Yep, I've misunderstood, realized it after seeing mdaniel's comment.

      Thanks for making this in the first place! I saw IronCalc in the list of projects supported by NLnet and it grabbed my attention.

      By the way, if You don't mind me asking, how'd Tuta end up sponsoring IronCalc? It seems that lately they and Proton have been trying to expand their business away from just email. The fact that Tuta is interested in IronCalc makes me think they want to have an office-like offering.

      • nhatcher 4 days ago

        Tuta sponsors by providing us with free email accounts, that's all. I reached out months ago, they liked the project and were kind enough to help us out with the email.

        I haven't have talks with them about integrating IronCalc, but it is something that is on my mind.

        • kaathewise 4 days ago

          Ah, I see. Best of luck with that!

          There are a few projects where I'd love to see a modern spreadsheet implementation. CryptPad comes to mind. They use OnlyOffice, which is quite featurefull, but takes awhile to load and isn't as responsive.

  • nine_k 4 days ago

    What Google Sheets functionality you're missing there?

    Of course there's a lot missing, but what's interesting is what you've reached for and could not find.

  • snthpy 4 days ago

    How tightly coupled are the React app and the Rust backend?

    I hope the backend engine can be used standalone embedded in other apps.

cultureulterior 4 days ago

It's interesting that the Iron prefix means rust now. It used to mean .NET

  • snthpy 4 days ago

    Agree with your comment. I almost didn't click on it because I wouldn't be interested in a C# or .Net project and was very pleasantly surprised. I don't love the name.

  • nine_k 4 days ago

    ...but only in the +3 oxidation state.

  • seanw444 4 days ago

    Yeah, like IronPython.

phonon 4 days ago
  • nhatcher 4 days ago

    I _think_ I saw the XLFormula-Engine. At least the name rings a bell.

    I guess I have some reading to do!

    What is the last one?

phonon 4 days ago

This looks great! Do you use cached calculation chains for performance optimizations? Do you take volatile functions into account?

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

  • nhatcher 4 days ago

    > Do you use cached calculation chains for performance optimizations?

    Not yet, there is heavy research in that direction. I will write on this soo-ish

    > Do you take volatile functions into account?

    Yes, for instance RANDBETWEEN and NOW are implemented. Things like `IF(RANDBTWEEN(1, 500)> 200,A1, A2)` work fine

    Thnaks

    • 8n4vidtmkvmk 4 days ago

      What does that actually mean, "works"? I don't know how that behaves in Google sheets or Excel. Is it evaluated exactly once the first time the formula is entered? Every time you focus the input? Is the dice rerolled when a1 or a2 is modified? What?

      • nhatcher 4 days ago

        Hi 8n4vidtmkvmk, the algorithms for evaluating spreadsheets are surprisingly tricky mainly because of the dependencies. The dependencies are only know at runtime and in Excel are lazy evaluated. So things like `IF(condition, value1, value2)` would evaluate first the condition if it is true it will evaluate value1 but not value2. So things that in other programming languages are a circular dependency are not so in Excel. The problem of computing the dependencies might be solved by topological sort. The complication of the runtime dependencies is made worse by having dependencies that change every time (or that their outputs do not dependency solely of their inputs) like random functions or date functions. An optimization while evaluating a spreadsheet would be to only compute those cells that depend on cells whose value changed. If you do that you might miss on those volatile functions.

        I realize I am most likely babbling too much.

        Yes, volatile functions like RANDBETWEEN get evaluated each time a cell changes. They don't get evaluated when you focus on them.

        • 8n4vidtmkvmk 3 days ago

          Thanks. I wonder if it would make sense for RANDBTWEEN to take a seed so that it becomes non-volatile unless you use time as the seed.

lovasoa 4 days ago

This sounds like a cool project! Does anyone here knows how it compares to univerjs ?

I currently use univerjs to power the open source sql spreadsheet component I work on (https://github.com/sqlpage/sqlpage-spreadsheet/). My experience with it has been that it's very powerful, but quite difficult to use due to the boilerplate involved, the lacking documentation, and the fact that it seems to be developed mainly for the Chinese market.

  • nhatcher 4 days ago

    Woah! I didn't realize luckysheets renamed to univerjs!

    I think at the time being you should stick to univerjs as it is a finalized product. Once we reach version 1.0, IronCalc should be easier to deal with and you cold consider using one or the other.

mgkimsal 4 days ago

Can't tell by the docs (but I've not dug in much yet) but... @nhatcher... here's a use case question.

Admins use the ironcalc UI to create their formulas. Is there a way to get those formulas to a backend and run the calcs on the server itself (separate from the user's browser) to get results based on input from other sources?

The UI half looks great so far. I have a colleague I was going to recommend this to, but they more need the 'run the formulas on the server' part more than anything else. They've got some custom Rust stuff running already, but having admins come up with their advanced formulas, then translating that to server code - that takes the time. It seems they may be able to use this to have this handle both ends of the workload, without the translation layer.

Is that something supported, or even feasible?

Thanks!

  • nhatcher 4 days ago

    Yes, IronCalc is first a spreadsheet engine. Meaning it is a library you can consume from Rust or Python without any UI.

eointierney 4 days ago

Congratulations, this is awesome. One of those "why hasn't someone done this already?" projects.

I can see this becoming transformative and superseding Excel, which is a bold claim to make. But this is compliant (with Excel), performant, extensible, free, and in-browser. This could easily become almost an emacs-level editor.

Think of the interfaces that could be built to this in this?

I'll be sharing this with every student I know.

And the name is a winner.

  • Aeolun 4 days ago

    > One of those "why hasn't someone done this already?" projects.

    I think this one is fairly clear. It’s because it’s a massive amount of work with a not necessarily large payoff for yourself?

    I think some of these basically get made when someone gets too annoyed something similar doesn’t exist.

    • nhatcher 4 days ago

      It is a massive amount of work. Another thing I might add, not the most appealing thing to work on.

      • Aeolun 3 days ago

        I suppose at least you get to check off a lot of boxes when another formula passes all test cases :)

  • mhh__ 4 days ago

    Why would there be any reason for this to kill excel? Seriously you should try to replace excel entirely rather than merely get a better version of it. If you want to get a better excel just buy excel and actually learn how to use it.

inglor 4 days ago

When I worked at the Excel team our motto was Excel is the second best tool for everything.

I'm excited to see more players in this space though, all the standards are open and there are decent libraries with decent licenses that exist. A lightweight LibreOffice alternative would be neat and something truly open source and embeddable (MIT) is great.

jvanderbot 4 days ago

Props on Rust not being mentioned here or on the index page.

dwroberts 4 days ago

Had a comment here about larger values/arbitrary precision (e.g. 74829901923401860/14408150751351922) and realised that it isn't choking on the number but it seems to error if I paste in values? In Firefox:

Uncaught RuntimeError: unreachable executed pasteCsvText assets/index-BxqQcmeI.js:40

  • nhatcher 4 days ago

    Thanks for the bug report!

    I just added csv copy/paste, most likely an error there. We don't support arbitrary precision arithmetic but I would like to.

openrisk 4 days ago

Is this similar to pysheets? From a quickscan it seems that its running client-side via rust/wasm but where are the data stored?

Interesting to see all those different takes on the spreadsheet metaphor.

  • nhatcher 4 days ago

    The data is stored in your browser's localStorage.

    I think the take is a tad different form pysheets. Cool tool though!

jeremyscanvic 4 days ago

I was recently looking for a Linux alternative to LibreOffice Calc and couldn't find something that meets my needs (mostly CSV import/export, filtering and pivot tables). It's great to see this new contender showing up and even if it lacks major features what's there so far looks very good. This is promising! Congrats for the good work and best wishes for what's to come.

iamthejuan 4 days ago

I am genuinely looking forward for the success of this project. I am just wondering will this support scripting language like VBA for Microsoft Excel?

  • nhatcher 4 days ago

    Thanks. I am thinking a lot about this recently. We will definitely support a scripting language, or rather several scripting languages. VBA won't be one of them, I think. I wouldn't want to create a language just for this. Maybe use a language like Lua or perhaps Rhai[0]. By design extending and embedding IronCalc should be very easy. Work in this direction will not start in the next 9 months though.

    [0]: https://github.com/rhaiscript/rhai

    • kingo55 4 days ago

      Thank god for that, VBA gives me nightmares.

    • buremba 4 days ago

      It would also be pretty interesting to see a modular system where we can run Python scripts as well

microflash 4 days ago

Impressive project. I’ve dealt with Excel a lot so anything new and ope source catches my attention.

The docs currently focus on the engine part but I’m more interested in the integrations (for example, with Java, Angular, Vue etc).

I’m currently on mobile but I’ll have to take a look at your React example to see if I can write a working Angular or Vue example.

  • nhatcher 4 days ago

    The idea is to have an egine that is clearly separated from the various "skins" like a React, Vue, a TUI or a desktop app. At the moment the React component is a bit difficult to use in isolation. I need to provide a npm package that folks can install

afiodorov 4 days ago

I am quite excited about the new era of WASM webapps - those are cross-platform & fast. Unlike traditional desktop programs those are sand-boxed & unlike mobile apps the distribution channels are open ("side-loading" by default).

bonoboTP 4 days ago

Nice work. Clicked around in it, some default features I'm used to are missing, like clicking on a row or column header to select the whole thing, or double click the resizer between two columns to autosize the column to content length.

  • 8n4vidtmkvmk 4 days ago

    IIUC, this project is focused on the calculations, not the UI.

  • nhatcher 4 days ago

    Thanks, those things are on the roadmap :)

paradite 4 days ago

In it's current form, how would I integrate the engine and UI in an existing software with, say Java backend and React front-end?

I couldn't find docs on how to use it in languages other than rust. Perhaps via IPC?

  • nhatcher 4 days ago

    At the time of writing, you can use Rust, Javascript and Python bindings.

    The React front-end communicates with wasm compiled from Rust.

    Java bindings are planed but not in the next ~6 months. A client/serve architecture (like libreoffice does) with IPC or sockets might be a good idea for languages that we don't provide bindings to. also not planned for the next 6 months

    • paradite 4 days ago

      > The React front-end communicates with wasm compiled from Rust.

      Just to clarify, this means that the entire engine is compiled into wasm and runs inside the browser? There is no server component?

      • nhatcher 3 days ago

        The server:

        * Serves the files * Stores if you click share * Converts to xlsx if you download * Imports model

        The engine is fully compiled to wasm and run in the browser.

howthisends 4 days ago

This is awesome. Will try using it as the foundation of some web tools.

  • nhatcher 4 days ago

    If you do and want help with, don't hesitate in contacting me.

    Right now you can't just `npm install ironcalc`, but hopefully that will be in place in a month from now.

HexDecOctBin 3 days ago

Any plans to add C bindings? Most other languages have a decent FFI story, and being usable from C will make it more universally usable.

  • nhatcher 2 days ago

    Yeah, that should be pretty easy. I'm actually curious. I might try this soon

neoyagami 4 days ago

Sudently I have the urge of adding this to my app report system

majkinetor 4 days ago

Great, very needed.

Consider making formula engine standalone as it might be used in other contexts, like Markdown or html tables.

fithisux 3 days ago

Calc and Dbeaver with DuckDb for me. If it compiles with Mingw, why not.

franga2000 4 days ago

It's a cool project, but wow is the top of the page just absolute buzzword salad!

> The democratization of spreadsheets > Empowering Everyone with Advanced, Open-Source Spreadsheet Solutions

It's a really fast spreadsheet engine that runs entirely in the browser and is fully open source. That's all the sales pitch I'd need, but I'm a developer...

So, serious question: who is this kind of marketing targeting?

  • nhatcher 4 days ago

    I'm a software developer with extremely bad marketing skills...

    This project targets both end spreadsheet users and developers. In its first an engine (a Rust crate) then a full fledged product.

    FWIW, I'm over them moon this project is getting some traction :)

    • bruce511 4 days ago

      This probably sounds daft, but I was trying to figure out on the site what platform it ran on.

      It doesn't seem to say "in browser" - so I'm wondering if it's Windows or Mac or ...?

      Since it is in-browser there's then no detail on what the scope is - where are the spreadsheets stored? How are they shared? Do I host it on my server? Are they stored on your server ? Can I embed it on an existing page? Can I update cells via JavaScript? Or websockets?

      And so on.

      Some of the above is inferable from the comments here, but not all.

      Congratulations on a cool project - but you may want to "set the scene " as it were for prospective users.

    • bonoboTP 4 days ago

      I agree that the bullet points feel like ChatGPT output. Whether an LLM was involved or not, it's good practice nowadays to avoid that AI style as many are getting used to spotting it and frown about it.

      • HKH2 4 days ago

        I'm not sure what you mean by 'that AI style'. What are some examples?

        • bonoboTP 4 days ago

          Gerund Adjective Noun (heading)

          * Gerund Adjective Noun (bold): (colon) text (non-bold).

          ----

          Already the format like this. Then plus points for sounding like an empty phrase that chatgpt likes. Eg from the heading "Addressing Unmet Needs" then bullet "Empowering SaaS Developers:" in bold.

          It's hard to describe. If you use chatgpt a lot, you develop an intuition that has many components.

          • HKH2 3 days ago

            I can sort of see what you're saying, but I think a lot of marketing is like that. Chatgpt is just regurgitating it.

  • hcarvalhoalves 4 days ago

    It shows the main focus is not the technology, but the fact spreadsheets are important and deserve a robust open source alternative.

  • Nathanba 4 days ago

    I think using the word "democratization" is the main issue, how does that even make sense in software? Who is doing the voting? You just "vote" by forking...? I don't get it, you also "vote" by using Microsoft Excel.

    • mmooss 4 days ago

      'Democratization' IME usually refers to the foundation of democracy, equality in rights, freedom, and opportunity. It's something for the masses, for the people.

      • Nathanba 4 days ago

        Yes I know what the word is being used these days for but it doesn't make sense. Democracy does not inherently have anything to do with these additional (also vague) terms.

        • mmooss 4 days ago

          Democracy doesn't have anything to do with "equality in rights, freedom, and opportunity"? That is the point of and foundation of democracy - no democracy without them. It's incredible that people are so anxious to destroy freedom and humanitarianism (why?) that they adopt an obviously false history.

          Those have long been believed to be the foundations of democracy; you might have heard this one, which founded one democracy:

          We hold these truths to be self-evident, that all men are created equal, that they are endowed by their Creator with certain unalienable Rights, that among these are Life, Liberty and the pursuit of Happiness.--That to secure these rights, Governments are instituted among Men, deriving their just powers from the consent of the governed, ...

          That also says governments exist - their reason for being - is to protect those things you deny are relevant.

          Then from the French Revolution, and now France's national motto: Liberté, Égalité, Fraternité. "Liberté, Égalité, and Fraternité are fundamental values that define French society, and democratic life in general."

          https://www.liberties.eu/en/stories/liberte-egalite-fraterni...

          From the Universal Declaration of Human Rights:

          Whereas recognition of the inherent dignity and of the equal and inalienable rights of all members of the human family is the foundation of freedom, justice and peace in the world, Whereas disregard and contempt for human rights have resulted in barbarous acts which have outraged the conscience of mankind, and the advent of a world in which human beings shall enjoy freedom of speech and belief and freedom from fear and want has been proclaimed as the highest aspiration of the common people, ...

          Whereas the peoples of the United Nations have in the Charter reaffirmed their faith in fundamental human rights, in the dignity and worth of the human person and in the equal rights of men and women and have determined to promote social progress and better standards of life in larger freedom, ...

          Article 01: All human beings are born free and equal in dignity and rights. ...

          https://www.un.org/en/udhrbook/pdf/udhr_booklet_en_web.pdf

          • Nathanba 4 days ago

            All of those are just additional things ones wishes democracies to have but are not inherent in the word definition. I can certainly see that some people wish to have the definition of "democracy" expanded to mean many additional things but that really isn't the point of having that very precise word.

            • mmooss 3 days ago

              What basis do you have to say that? Otherwise, these claims are just bytes with no force behind them. You can see the overwhelming evidence and consensus otherwise, stretching over centuries!

              Even more, why do you want it to be true? Why do people want to eliminate their own and others human rights, an incredibly positive basis for society and for your freedom and prosperity, which has resulted in what are by far the most successful societies and people, by many measures, in human history? You're giving away all that for what? To look clever and 'with it'? Smarter than democracy? Very clever.

              You should be fighting for it, like your predecessors did. Otherwise, you'll lose it. There are people actively and successfully taking it away, while you are engaging in this philosphical exercise.

              • Nathanba 3 days ago

                Words have a fairly precise dictionary meaning and it's important not to constantly wage a word war where you want to win political and social arguments through word redefinitions. It's information pollution, you redefine words like "love", "equality", "freedom", "democracy" until they mean something completely different and suddenly you have a divided population that can't even talk to each other anymore because all this confusion that you just had over the word "democracy" is only possible because you are misusing the word.

                • mmooss 2 days ago

                  It's not a redefinition. I just showed you definitions centuries old. These things are universally associated with democracy, except by dictators and their supporters who try to redefine them.

                  • Nathanba 2 days ago

                    Yes, "associated with". But it is not part of the definition of the word. I don't know how much clearer anybody could make this. Democracy just means voting, it does not even mean that everyone gets to vote and certainly not equally. Even if you don't like it and even if you want that to be included in the word definition, that doesn't make it so.