Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions doc/explanation/api/functions_vs_classes.md
Original file line number Diff line number Diff line change
@@ -1 +1,20 @@
# Functions vs. Classes

## Development Flow

As you gear up to develop your Panel application, you'll encounter a couple of initial decisions to make regarding **approach** and **environment**:

1. **Programming Approach:** Will you opt for a Python *function-based* approach or a *class-based* approach?
- The function-based approach is recommended for new and basic users. It utilizes `pn.bind`, as you've already experienced while [building a simple app](build_app.md).
- The class-based approach is recommended for intermediate Panel users who aim to construct larger and more maintainable apps, as well as reusable components.

Interested in a class-based approach instead?

Explore the same ['outlier' app built using a class-based declarative API](../explanation/api/examples/outliers_declarative.md). Study the [Explanation > APIs](../explanation/api/index.md) section for a detailed discussion on each of the API options.

2. **Development Environment:** Will you develop in a notebook or in an editor environment?
- If you're unsure, starting in a notebook is recommended as you familiarize yourself with Panel. However, you can switch between them at any time.

Please refer to the [Getting Started > Core Concepts](../getting_started/core_concepts.md) for more info.

This [Best practices document](../getting_started/core_concepts.md) contains some examples of do's and don'ts that involve classes.
Loading