Thoughts on packs full of utility formulas?

I want to hear people’s thoughts on the viability of making packs full of utility functions. I’m working on one right now to hold some date manipulation features I’ve been wanting, but we could also rewrap every function in lodash :sweat_smile:

From what I can tell, putting these kinds of functions into a pack (rather than implementing them in formula language) essentially means making them asynchronous.

In other words, calculations take time. Would you like them to kind of lock up the table UI while “calculating” but ensure it’s always up to date (formulas), or let you keep using your UI even if it’s in an inconsistent or partially blank state while “syncing” (pack formulas).

I’ve definitely run into situations with large docs where I’d prefer the latter (though at the end of the day in both cases, optimization is important to avoid long processing times and resulting user confusion/frustration).

I haven’t pushed packs hard with large datasets yet, planning to do some stress testing soon (how parallel do we get? This might scale quite well if each invocation gets its own environment, which I think is how it works?)

What are your thoughts on the advantages and disadvantages of leaning heavily on packs for things that you could do with elaborate native formulas?

1 Like

we at Agile Dynamics are looking at similar concerns. so far our internal guideline is

  • keep pack interaction cycles short so they dont take long to run, so users dont see inconsistant states

  • if a longer cycle time is needed, link it to a button…

    • user clicks button to start the cycle
    • button changes color/label to show its running
    • pack updates a column flag to say when its done
    • that changes the button back so user sees its done

but we have yet to try this out in the field to see if users intuit whats happening

we NEVER want users to be exposed to incomplete state-transitions in their tables UNLESS we signal that something is still “working…”

we are about to try to put a PROGRESS BAR thingy in place to see if that gives a better signal to users that changes are pending

ww would welcome suggestions from other builders