Principles and Values

PursuedPyBear is a principles driven project. From its earliest days, it’s been guided by a set of ideals that suggest the shape and form of any problem we encounter. From our primary focus on students and learners to our embracing change of the code and our principles.

We have identified four principles as the root of all the others:

Students and Learners First

Our first commitment is to the new programmers and game makers who have made ppb their tool of choice. Whether introduced to them by a teacher or discovered on their own, we care about their experiences primarily. However, we won’t forget educators, professional developers, or hobbyists while doing so. Our success is most easily measured by the diversity of our community, and that requires a focus on the early stages of use.

Creativity without Limits

The only limitation we accept is the limitations that come from the platform we’ve chosen: that being that the only limitation to what you can apply with ppb is what the developer is capable of what Python is capable of.

This is why we consider being a code first engine so critical to our design. It’s one of many reasons we build with Python first.

Fun

We believe tools that are a joy to use are more likely to be picked up for the long term. Being fun means more than just joyful discovery. We care that complexity is neatly hidden until it’s necessary to be addressed. We want to reduce “warts” in the API, increase overall discoverability, and allow you to work playfully.

Radical Acceptance

Over time, the needs of ppb as a project and as a community have changed. It started as a solo project to encourage reuse of common patterns in one developer’s workflows. It’s now an education-focused community with a team of active developers and a couple dozen contributors. As the needs shift, so too do our principles and processes.

By being willing to do hard work and experiment with improvements in code, we’ve been able to build better software. ppb has seen three major architectures since it started. And this document replaces a previous version of our principles. Those principles were:

  • Education Friendly
  • Idiomatic Python
  • Object Oriented and Event Driven
  • Hardware Library Agnostic
  • Fun

You’ll notice that some of them are still with us in this document. Others you’ll find in the child documents of each of the ones explored here. Some are less principles and more design decisions.

In general, we are always willing to field the idea of “maybe we should do it this way?” Those questions, even when the answer is no, keep us thinking about how things are and how they could be.

Ultimately, ppb is aspirational as a project, and our principles reflect that.