[HN Gopher] IronCalc - Open-Source Spreadsheet Engine
___________________________________________________________________
IronCalc - Open-Source Spreadsheet Engine
Author : kaathewise
Score : 650 points
Date : 2024-11-09 16:36 UTC (1 days ago)
(HTM) web link (www.ironcalc.com)
(TXT) w3m dump (www.ironcalc.com)
| kaathewise wrote:
| 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 wrote:
| "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_
| fsckboy wrote:
| backend does not imply server to me, it implies software that
| does the calculating engine work and does not concern itself
| with display refresh.
| readthenotes1 wrote:
| 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 wrote:
| Surely that's background not backend.
| 8n4vidtmkvmk wrote:
| I wouldn't call it background unless maybe it's async or
| continues to process stuff while you're doing other
| things.
| fsckboy wrote:
| 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.
| bonoboTP wrote:
| 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://matplotli
| b.org/stable/users/explain/figure/backends....), or the
| deep learning library Keras has a choice between PyTorch,
| JAX and TensorFlow backends.
| fsckboy wrote:
| we're talking about a spreadsheet engine, the backend is
| not going to be the Xserver displaying it
| kaathewise wrote:
| 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.
| nhatcher wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| How tightly coupled are the React app and the Rust backend?
|
| I hope the backend engine can be used standalone embedded in
| other apps.
| nhatcher wrote:
| Hey! This is my project! Amazed to see this here. I'll try to
| answer questions people might have
| fatih-erikli-cg wrote:
| Where and how do you handle the operator precedence? I couldn't
| find in the codebase.
| mdaniel wrote:
| 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.
| ..
| nhatcher wrote:
| I wrote about it at length here:
|
| https://www.nhatcher.com/post/a-rustic-invitation-to-
| parsing...
|
| The implementation in IronCalc follows that.
| wslh wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| They are both amazing tools!
| readthenotes1 wrote:
| What keeps me in Excel 2007 is Goal Seek.
|
| I'm not sure how unusual I am, but would be interested in
| knowing:)
| nhatcher wrote:
| 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.
| echoangle wrote:
| Where does the name come from?
| nhatcher wrote:
| The first well known spreadsheet application was called
| VisiCalc[0] (the killer app!). The "Iron" side is because it
| is written in Rust and the domain was available.
|
| [0]: https://en.wikipedia.org/wiki/VisiCalc
| ericra wrote:
| 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 wrote:
| 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.
| nhatcher wrote:
| 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 wrote:
| 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 wrote:
| * HN users who don't block analytics
| lbotos wrote:
| I assume that's mostly iphones?
| mgkimsal wrote:
| I have to imagine most of that safari is mobile safari /
| iPhone traffic?
| ksec wrote:
| 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 wrote:
| What do your logs say for breakdown on user agent?
| airstrike wrote:
| 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!!
| nhatcher wrote:
| Thanks you very much! Lets continue talking on Discord in the
| coming days!
| phonon wrote:
| https://news.ycombinator.com/item?id=37559371
| nhatcher wrote:
| Oh wow! Good find!
| airstrike wrote:
| Hah! It wasn't open sourced then, but I did buy the book
| and followed his advice!
| dpe82 wrote:
| 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.
| airstrike wrote:
| I got in via https://discord.gg/zZYWfh3RHJ from the github
| repo
| nhatcher wrote:
| Ooops, just fixed it. Here is the link:
|
| https://discord.gg/zZYWfh3RHJ
|
| I don't necessarily respond every day immediately, but I am
| active.
| arjunlol wrote:
| Looks cool! What sort of different solutions do you imagine
| devs building on top of the engine?
| nhatcher wrote:
| 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 :)
| madjam002 wrote:
| Do you see this as an alternative to OnlyOffice? I'm wondering
| if you've tried it and how you think this compares
| nhatcher wrote:
| 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.
| alexk101 wrote:
| 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 wrote:
| 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.
| hitradostava wrote:
| Amazing project. The question I have is why rust? Is the
| compiled WASM significantly faster than JS?
| nhatcher wrote:
| 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.
| Onavo wrote:
| There might be some tricks from Row Zero that you can
| borrow
|
| https://news.ycombinator.com/item?id=39551064
|
| https://news.ycombinator.com/item?id=41512270
| yowlingcat wrote:
| 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.
| nhatcher wrote:
| > 1) Any plans for programmatic manipulation of pivot tables?
|
| As soon as we possibly can
|
| 2) Will there be ability to use the engine as library? Would
| love to use something like this through Python bindings.
|
| That is in place already! It is an MVP, so I haven't
| published all packages for all architectures but you can
| compile it from source:
|
| https://github.com/ironcalc/IronCalc/tree/main/bindings/pyth.
| ..
|
| https://pypi.org/project/ironcalc/
| negoutputeng wrote:
| 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 wrote:
| Fun fact: Audrey Tang, creator of Ethercalc, went on to
| become Minister for Digital Affairs for the Taiwanese
| government.
| nhatcher wrote:
| 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 wrote:
| 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 wrote:
| This is how Apple's Numbers.app works.
| Hashex129542 wrote:
| Nice :)
|
| You've added xlsx format to export. Is it legally allowed?
| nhatcher wrote:
| Yes, it is an open format:
|
| https://ecma-international.org/publications-and-
| standards/st...
| eviks wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| Thanks for the feedback. I will try to build a more
| detailed compatibility reference as you describe.
| bsenftner wrote:
| 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 wrote:
| 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.
| hotbutterscotch wrote:
| 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 wrote:
| Beautiful project. Congrats and thanks !
| franga2000 wrote:
| 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 wrote:
| 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
| :)
| bonoboTP wrote:
| 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 wrote:
| I'm not sure what you mean by 'that AI style'. What are
| some examples?
| bonoboTP wrote:
| 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 wrote:
| I can sort of see what you're saying, but I think a lot
| of marketing is like that. Chatgpt is just regurgitating
| it.
| bruce511 wrote:
| 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.
| hcarvalhoalves wrote:
| It shows the main focus is not the technology, but the fact
| spreadsheets are important and deserve a robust open source
| alternative.
| Nathanba wrote:
| 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 wrote:
| '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 wrote:
| 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 wrote:
| 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: _Liberte, Egalite, Fraternite_.
| "Liberte, Egalite, and Fraternite 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.pd
| f
| Nathanba wrote:
| 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 wrote:
| 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.
| nhatcher wrote:
| You are right. I created a ticket to remedy this:
|
| https://github.com/ironcalc/ironcalc.github.io/issues/14
| howthisends wrote:
| This is awesome. Will try using it as the foundation of some web
| tools.
| nhatcher wrote:
| 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.
| dwroberts wrote:
| 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 wrote:
| 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.
| iamthejuan wrote:
| 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 wrote:
| 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 wrote:
| Thank god for that, VBA gives me nightmares.
| buremba wrote:
| It would also be pretty interesting to see a modular system
| where we can run Python scripts as well
| bonoboTP wrote:
| 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.
| nhatcher wrote:
| Thanks, those things are on the roadmap :)
| 8n4vidtmkvmk wrote:
| IIUC, this project is focused on the calculations, not the UI.
| phonon wrote:
| 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 wrote:
| > 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 wrote:
| 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 wrote:
| 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 wrote:
| 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.
| cultureulterior wrote:
| It's interesting that the Iron prefix means rust now. It used to
| mean .NET
| seanw444 wrote:
| Yeah, like IronPython.
| nine_k wrote:
| ...but only in the +3 oxidation state.
| snthpy wrote:
| 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.
| snthpy wrote:
| Oxcel ?
| eointierney wrote:
| 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 wrote:
| > 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 wrote:
| It is a massive amount of work. Another thing I might add,
| not the most appealing thing to work on.
| mhh__ wrote:
| 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.
| nhatcher wrote:
| Woah, thanks for the kind words!
|
| This is out of date, and not a priority ATM, but we will have a
| TUI for it:
|
| https://github.com/ironcalc/TironCalc
| neoyagami wrote:
| Sudently I have the urge of adding this to my app report system
| mgkimsal wrote:
| 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 wrote:
| Yes, IronCalc is first a spreadsheet engine. Meaning it is a
| library you can consume from Rust or Python without any UI.
| wuming2 wrote:
| 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 wrote:
| >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 wrote:
| 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 wrote:
| 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
| jvanderbot wrote:
| Props on Rust not being mentioned here or on the index page.
| paradite wrote:
| 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 wrote:
| 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 wrote:
| > 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?
| phonon wrote:
| Have you looked at these other somewhat similar Rust projects?
|
| https://github.com/logisky/LogiSheets
|
| https://github.com/natefduncan/excel-emulator
|
| https://github.com/jiradaherbst/XLFormula-Engine
|
| https://github.com/omid/formula
|
| https://crates.io/crates/df-web/0.1.28
| nhatcher wrote:
| 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 wrote:
| I'm not exactly sure...it seems to handle Excel files in some
| fashion. It came up when I looked through this
| https://crates.io/keywords/excel
| openrisk wrote:
| 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 wrote:
| The data is stored in your browser's localStorage.
|
| I think the take is a tad different form pysheets. Cool tool
| though!
| snthpy wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| Thanks! Yes, that is exactly the top priority of the project
| right now.
| thezipcreator wrote:
| 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.
| rizky05 wrote:
| 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.
| icemelt8 wrote:
| Because of your comment, I discovered OnlyOffice.
| homebrewer wrote:
| 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 wrote:
| Onlyoffice have a lot better compatibility .
| nhatcher wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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
| microflash wrote:
| 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 wrote:
| 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
| lovasoa wrote:
| 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 wrote:
| 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.
| anyfactor wrote:
| 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.
| delusional wrote:
| > 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 wrote:
| 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.
| wslh wrote:
| 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 wrote:
| 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.
| respondo2134 wrote:
| 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.
| wslh wrote:
| > 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_an
| alysi...
| nhatcher wrote:
| 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?
| mritchie712 wrote:
| 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/
| jeffreyq wrote:
| 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
| bwanab wrote:
| > > 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.
| atoav wrote:
| 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.
| no_wizard wrote:
| What would be nice though is if you could export logic from
| excel to examine it and port it.
|
| One can dream
| wombatpm wrote:
| Diffs in source control would be sweet
| no_wizard wrote:
| They already know how to do it too
| https://support.microsoft.com/en-us/office/compare-two-
| versi...
| stackskipton wrote:
| 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"
| respondo2134 wrote:
| 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.
| Andrew_nenakhov wrote:
| I would very much use a product that would work exactly like
| Google spreadsheets, web and all, but would be self-hosted.
| magusor wrote:
| Have you tried collabora office and/or onlyoffice ? These
| could match your need.
| Andrew_nenakhov wrote:
| Yes and it is atrocious compared to Google Spreadsheets,
| unfortunately.
| magusor wrote:
| 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 wrote:
| I use NextCloud with Collabora Online (hosted and trimmed
| down version of LibreOffice). All self-hosted.
| skissane wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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 wrote:
| 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.
| danm wrote:
| Maybe it has changed, but last time I tried to use
| numbers it still didn't support resolving circular
| references through iterative calculation.
| wrs wrote:
| 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.
| skissane wrote:
| > 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.
| manvillej wrote:
| 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.
| dudus wrote:
| 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 wrote:
| 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.
| cyrialize wrote:
| 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.
| mmooss wrote:
| > 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.
| analog31 wrote:
| 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.
| inglor wrote:
| 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.
| jeremyscanvic wrote:
| 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.
| majkinetor wrote:
| Great, very needed.
|
| Consider making formula engine standalone as it might be used in
| other contexts, like Markdown or html tables.
| afiodorov wrote:
| 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).
| fithisux wrote:
| Calc and Dbeaver with DuckDb for me. If it compiles with Mingw,
| why not.
| HexDecOctBin wrote:
| 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.
___________________________________________________________________
(page generated 2024-11-10 23:00 UTC)