History

The BeeWare project started with a simple question: Why aren't the tools that we use as Python developers improving at the same rate as the rest of the technology we use on a daily basis?

Python has proven itself as a highly capable language - approachable for newcomers, but powerful in the hands of experts. Python is rapidly becoming a major part of the data analysis, scientific computing, and web development landscape. And initiatives like Django Girls have demonstrated that using Python, it is possible to provide a 1-day training courses that introducing people with no programming experience to Python; and at the end of a day, attendees have developed and deployed a database-backed dynamic website, deployed to a publicly visible server.

However, the developer experience for someone writing Python sometimes reflects more of the early 90's than the new millennium. The default development environment for Python is still an 80x25 console window. For users who have come from a Windows or Apple environment, where they're used to highly detailed, well designed graphical interfaces, this 30 year flashback can be a completely alien experience.

And, yes, there are IDEs (Integrated Development Environments) that provide a native application experience for writing code. But those tools require you to adopt, wholesale, the IDE's way of looking at a project. They often introduce as many headaches to the development process as they solve.

And so, we're left with an interesting schism, between the "old way" of Unix development in a console window, and the "new way" of all-in-one IDEs.

The Unix Philosophy

However, it doesn't have to be that way. The core tenet of the Unix Philosophy is that "each tool does one thing, well". This is a very powerful philosophy, and it enables the composition of extremely powerful toolchains by putting together a suite of extremely focussed, independent tools.

Unfortunately, most UNIX tools have convolved this to also mean "all tools must use a console interface". However, there's nothing in the UNIX philosophy that says that tools have to use a console interface - it's just turned out that way.

The BeeWare project started with the premise we can have the best of both worlds. We can have a chain of composable tools that each do one thing, well. But those tools can also expose their functionality using a rich graphical user interface.

More than just code

It's about more than just code, though. A successful software project requires documentation, design skills, feedback and bug reports. The BeeWare community acknowledges that all contributions are important - not just the ones that come as a pull request on GitHub.

Even then, it's easy to think of a project in a vacuum, as the sum of all contributions. But that's never the case. An open source project is about community.

Diversity and inclusion

A diverse community is a strong community. This means accepting people of all levels of experience, from all backgrounds, of all races, creeds, orientations and expressions. The BeeWare project is committed to developing and maintaining a inclusive, diverse and welcoming community.

To back this up, we have an open offer to mentor anyone who wants to get involved as a contributor, and a Code of Conduct that is rigorously enforced. Any reports of violations of that code of conduct - even by senior community members - will be treated with respect and actioned appropriately.

Healthy and sustainable

It's also important to make sure that the community is accessible and sustainable. It's unfortunately become an accepted part of Open Source culture that "true" Open Source projects have to be developed entirely by volunteers. This acts as a barrier to entry for many groups - the only people able to spend their free time volunteering are those that have free time.

It also frequently leads to burnout and other mental health issues amongst contributors. The fact that depression, anxiety, and burnout are so common in software development communities shouldn't be considered a badge of honour, or a demonstration of how committed a development team can be. It's a problem that needs to be tackled head on, and addressed in the same way a software bug would be addressed - with immediate workarounds, and long term plans to remove the systemic cause of the problem.

While we place incredible value on the contributions of volunteers, we also know that volunteer efforts alone aren't the way to develop a healthy and sustainable community. For that reason, financial sustainability is a key consideration in the operation of the BeeWare project. As a community, we don't ignore the role that money has to play in providing the resources that allows people to begin and continue to contribute. We will, as a community, provide accepted mechanisms for individuals to monetize their work in meaningful ways, and wherever possible, compensate people for their work - without compromising the ideals of Open Source development.