Why is dash-table so much behind?

Dear all,

I strongly believe dash-table is a great component, and that the team created a fantastic solution.
Is also believe that Dash is great, by far the fastest framework to prototype something and go to production.
I started scratching my first code in Dash in 2020, and I never stopped loving it.

I think dash-table carries with it some great functionalities, and I really mean it, the copy-paste functionality and multicell selection set the ground to shape the future of this component. This combination is something really useful and unique that I can’t really see in any other “out of the box” component, in react, in jquery, in rshiny, nowhere.

A lot of small companies in these days are strongly focused on replacing their old excel spreadsheet, moving to smarter, faster, easier, more stable solutions, and they need a way to interact with their cloud data. I am not the first one in this forum mentioning that dash-table is their big priority to create the parallelism between the visualisation of the data and enable the users to interact with them.

However, unfortunately, dash-table feels so much behind, and I can’t explain why.
Everytime I see demos, dash-table is never part of them. Everytime I need to prototype something I start with dash, then I step onto the table management and have to change framework.
Everytime there’s an update, great features are implemented all over, but the efforts for dash-tables are limited to bugfixes, it really looks like features requests are not welcome for some reasons.

Lately it has been about multiple selections in cell dropdowns (react-select is used in single celldropdown and it has isMulti feature ready to be implemented), formatting, dropdown filters, …

There could be different reasons for this:
1-there is a vision about the future of dash different from my understanding, I think about Dash as a framework for interactive data-driven webapps, maybe this is not what dash is supposed to be
2-there is a priority list, and dash-table is de-prioritised
3-there is something happening behind the scenes, like a completely revisited component
4-there is something in the enterprise version not released in the opensource one

So, I was wondering if any of the developers could explain what is happening, if there’s a plan, a vision, or something about this component.

4 Likes

I too am interested in knowing the same.

1 Like

Likewise - I’m hoping that they are prioritizing development on this component that I just made a post about: Dash Ag-Grid | Dash for Python Documentation | Plotly. But for the time being, it does seem as though this is an enterprise feature and the free users seem to be getting left in the dust a bit with the limitations of dash-table. @adamschroeder any ideas on this front?

Hey all,
you bring up good points and appropriate questions. Let me talk to the team and get back to you.

3 Likes

Interesting. I admit I missed the grid component in the enterprise version.
Honestly though, that seems to miss the great features I mentioned at the beginning like the multicell selection copy-paste. I feel the dash-table component is just so much better just by looking at that link, but of course I am not aware of all the possible implementations available in that component :slight_smile:
But yes, in case something similar will be released for the community version, I’d love to get my hands on it and see what it is capable of :slight_smile:

edit: I looked at the original ag grid, it does have multicell copy paste, that sounds good, I’d love to have access to it!

Thank you Adam, that would be fantastic.

You should take a look at: JavaScript Data Grid: AG Grid: Cookies Policy (ag-grid.com). This is the component that this Dash component is built off of and it is likely the most feature-rich datagrid that you will find, period. Their current implementation of it is very very limited, but I would assume that enterprise clients have been begging for more involved datagrid functionality, so expect to see the feature set converge a bit more to the original AG grid functionality.

Thanks for sharing your thoughts @MrGianlu ! data-table is near and dear to my heart. I wrote the first versions of this table for the reasons that you mentioned - It was hard to find an open source, MIT licensed table with all of the features I wanted for Dash apps. We’ve built out a ton of those, things like:

  • Callback-enabled: Every feature working in both clientside and serverside, including paging, filtering, and sorting. This was the big one that was lacking in all of the other solutions out there.
  • Declarative conditional formatting support - Something that you could configure with Python without needing JavaScript.
  • Responsive - Full control over column sizes, text overflow, fixed vs variable column sizes, etc

It was a massive effort over a few years to get the table to this point.

Would love to build out more features too, but just a matter of development bandwidth! So many good ideas out there. One area that we’re prioritizing instead at the moment is our forthcoming “children as props” feature, which will eventually enable rendering arbitrary components within tables, unlocking tons of capabilities in tables that we would otherwise need to wire in manually. Think sparklines, or even custom controls as you mention (multi-select).

We made data-table MIT licensed, which is the most permissive open source license out there. An an alternative to waiting for us to get around to these features is to fork the component and wire them in your own fork. We hired @adamschroeder as dash community manager (:tada: ) to help organize the @Community-Developers group to collaborate on forks and feature ideas. For anyone reading and interested in joining that group or learning more about forking projects, definitely DM @adamschroeder :slight_smile:

7 Likes

I’ve had similar love/frustration feelings about the DataTable component after working on an app recently that makes heavy use of it and running into a number of rough edges that have at times made wonder if the component just wasn’t ready for use in the app I’m working on.

This topic came up last month, and I put all my thoughts about the opportunities for improvement in the DataTable component that I identified into this post.

As I say in that thread, it’s pretty clear that the Dash team have put a massive amount of effort to get the DataTable to where it is, so I hope this doesn’t come across as overly critical!

I would dearly love to put some time into working on some PRs for these enhancements, but sadly don’t have the bandwidth at the moment. I’m hoping that will change sometime soon :smiling_face:

2 Likes

Let me start by saying a huge thank you for taking the time to collect this text and posting here. Really, it means a lot.

I am a huge fan of dash and I am glad to hear that you guys won’t stop releasing to the public, and really can’t wait to see this children as props feature.

What about the ag-grid wrapper, are you planning to keep it exclusive for enterprise users or release it in the community version?

2 Likes

I am also a heavy reliant of the table component

1 Like

hi @MrGianlu .
the answer to your question is here.

1 Like