That is why we created Taipy. We wanted an easy-to-learn Python library to create front-end for data applications while remaining production-ready: we use callbacks for user interactions to avoid re-running unnecessary code. Front and back-end run on separate threads so your app does not freeze whenever a computation runs.
We also focus on providing pre-built components to allow the end-user to play around with data pipelines quickly. These components allow the user to visualize the data pipeline in a DAG, input their data, run pipelines, and visualize results...
Streamlit and even more so Gradio are simple tools. They won't make the mark for such projects. They lack so many things: - not really multi-user - event loop is inefficient and creates side effects - no support for large data in graphics - difficult/impossible to call asynchronous functions (u get stuck in the GUI while waiting for the job to complete) - fixed layout / no real way to customize the look&feel - etc.
Don't get me wrong: Streamlit has benefits and was actually the first package to offer Python devs a low-code approach for building GUIs (for non-GUI specialists).
- For example, the scenario and data management feature helps end-users properly manage their various business cases. We can easily configure scenarios to model recurrent business cases. I am thinking of standard industry projects like production planning, demand or inventory forecasting, dynamic pricing, etc. An end-user can easily create and compare KPIs of multiple scenarios over time (e.g., a new demand forecast every week) and multiple scenarios for the same time period for what-if analysis for instance.
- The version management is also a good example. Besides a development mode and an experiment mode for testing, debugging, and tuning my pipelines, a specific production mode is designed to easily operate application version upgrades. It helped me deploy a new release of my Taipy application in a production environment including some data compatibility checks and eventually some data migration. I don't know any other system that helps manage application versions, pipeline versions, and data versions in a single tool. Plus it's really easy to use with git releases for instance.
- The pipeline orchestration is also very production-oriented for multi-user applications. You have visual elements for submitting pipelines, managing job executions, tracking successes and failures, historizing user changes, etc. Which is more than helpful in a multi-user environment. Everything is built-in Taipy.