Перейти к содержанию

История и философия

Проект BeeWare начался с простого вопроса: почему инструменты, которые мы используем как разработчики Python, не совершенствуются с той же скоростью, что и остальные технологии, которые мы используем ежедневно?

Python зарекомендовал себя как высокопроизводительный язык — доступный для новичков, но мощный в руках экспертов. Python быстро становится важной частью анализа данных, научных вычислений и веб-разработки. Инициативы, такие как Django Girls, продемонстрировали, что с помощью Python можно провести однодневный учебный курс, который познакомит людей, не имеющих опыта программирования, с Python; и в конце дня участники разработают и развернут динамический веб-сайт на базе базы данных, развернутый на общедоступном сервере.

Однако опыт разработчика, пишущего на Python, иногда больше напоминает начало 90-х годов, чем новое тысячелетие. Стандартной средой разработки для Python по-прежнему является консольное окно размером 80x25. Для пользователей, привыкших к высокодетализированным, хорошо продуманным графическим интерфейсам Windows или Apple, этот 30-летний флешбэк может стать совершенно чуждым опытом.

И да, существуют IDE (интегрированные среды разработки), которые обеспечивают нативный интерфейс приложения для написания кода. Но эти инструменты требуют от вас полного принятия подхода IDE к проекту. Часто они создают столько же проблем в процессе разработки, сколько и решают.

Итак, мы остаемся с интересным расколом между «старым способом» разработки Unix в консольном окне и «новым способом» с использованием универсальных IDE.

Философия Unix

Однако это не обязательно должно быть так. Основной принцип философии Unix заключается в том, что «каждый инструмент делает одну вещь, но делает ее хорошо». Это очень мощная философия, которая позволяет создавать чрезвычайно мощные наборы инструментов, объединяя набор чрезвычайно специализированных, независимых инструментов.

К сожалению, большинство инструментов UNIX интерпретировали это как «все инструменты должны использовать консольный интерфейс». Однако в философии UNIX нет ничего, что говорило бы о том, что инструменты должны использовать консольный интерфейс — просто так сложилось.

Проект BeeWare начался с предпосылки, что мы можем получить лучшее из обоих миров. Мы можем иметь цепочку комбинируемых инструментов, каждый из которых хорошо выполняет одну задачу. Но эти инструменты также могут раскрывать свою функциональность с помощью богатого графического интерфейса пользователя.

Больше, чем просто код

Однако речь идет не только о коде. Для успешной реализации программного проекта необходимы документация, навыки проектирования, обратная связь и отчеты об ошибках. Сообщество BeeWare признает, что важны все вклады — не только те, которые поступают в виде запросов на GitHub.

Даже в этом случае легко представить проект в вакууме, как сумму всех вкладов. Но это никогда не бывает так. Открытый проект — это сообщество.

Разнообразие и инклюзивность

Разнообразное сообщество — это сильное сообщество. Это означает принятие людей с разным уровнем опыта, из разных слоев общества, разных рас, вероисповеданий, ориентаций и выражений. Проект BeeWare стремится развивать и поддерживать инклюзивное, разнообразное и гостеприимное сообщество.

В подтверждение этого мы предлагаем открытую программу наставничества для всех, кто хочет принять участие в качестве автора, а также строго соблюдаем Кодекс поведения. Любые сообщения о нарушениях этого кодекса поведения — даже со стороны старших членов сообщества — будут рассматриваться с уважением и принимать соответствующие меры.

Здоровый и устойчивый

Также важно обеспечить доступность и устойчивость сообщества. К сожалению, в культуре открытого исходного кода стало нормой, что «настоящие» проекты с открытым исходным кодом должны разрабатываться исключительно волонтерами. Это создает барьер для входа для многих групп — единственные люди, которые могут посвятить свое свободное время волонтерской деятельности, — это те, у кого есть свободное время.

Это также часто приводит к выгоранию и другим проблемам с психическим здоровьем среди участников. Тот факт, что депрессия, тревога и выгорание так распространены в сообществах разработчиков программного обеспечения, не должен рассматриваться как знак чести или демонстрация того, насколько преданной может быть команда разработчиков. Это проблема, которую необходимо решать напрямую, так же как и проблему программных ошибок — с помощью немедленных обходных решений и долгосрочных планов по устранению системных причин проблемы.

Хотя мы высоко ценим вклад волонтеров, мы также понимаем, что одни только волонтерские усилия не могут обеспечить развитие здорового и устойчивого сообщества. По этой причине финансовая устойчивость является ключевым фактором в деятельности проекта BeeWare. Как сообщество, мы не игнорируем роль денег в предоставлении ресурсов, которые позволяют людям начинать и продолжать вносить свой вклад. Как сообщество, мы предоставим общепринятые механизмы, позволяющие людям монетизировать свою работу значимым образом, и, по возможности, будем вознаграждать людей за их работу — без ущерба для идеалов разработки открытого исходного кода.

Цель

Конечная цель проекта BeeWare: сделать для мобильного и настольного программного обеспечения то же, что Django сделал для веб-программного обеспечения — предоставить пользователям набор инструментов и библиотек, которые позволяют им разрабатывать богатые, нативные пользовательские интерфейсы и развертывать их на своих устройствах. Это включает в себя:

  • Инструменты, позволяющие запускать Python на разных устройствах,
  • Инструменты для упаковки проекта Python, чтобы он мог работать на этих устройствах,
  • Библиотеки для доступа к собственным виджетам и возможностям устройств,
  • Инструменты, помогающие разрабатывать, отлаживать, анализировать и эти проекты.

Цель состоит в том, чтобы этот набор инструментов был достаточно простым для использования новичками в среде, подобной Django Girls, но при этом достаточно мощным, чтобы его можно было использовать для создания следующих Instagram, Pinterest или Disqus.

Самое главное, что все это планируется делать в рамках сообщества Open Source. Процесс разработки Open Source зарекомендовал себя как наиболее надежный способ создания надежного и стабильного программного обеспечения, а доступность программного обеспечения для всех означает, что каждый, будь то эксперт или увлеченный любитель, может начать работу с одинаковым набором отличных инструментов.

Python везде

Современный компьютерный проект не может игнорировать самое значительное достижение в области вычислений за последние 10 лет. Python гордится тем, что является кроссплатформенным языком. 10 лет назад кроссплатформенность означала доступность для Windows, macOS и Linux. В наши дни мобильные вычисления имеют гораздо большее значение. Несмотря на это, существует не так много хороших вариантов для программирования на Python на мобильных платформах, а кроссплатформенное мобильное программирование по-прежнему остается недостижимой целью.

BeeWare поддерживает мобильные и другие новые платформы (такие как часы и приставки) как полноправных участников вычислительной экосистемы — ведь если у людей есть такие устройства, почему бы им не писать для них программное обеспечение на Python?

Родом из всех мест

Использовать темы для достижения кроссплатформенности очень просто. Однако приложения, созданные с использованием тем, легко распознать — они ведут себя не так, как другие приложения. Виджеты выглядят не совсем правильно, или в окне приложения OS X есть панель меню. Темы могут быть очень похожи, но всегда есть характерные признаки.

Кроме того, нативные виджеты всегда работают быстрее, чем тематические универсальные виджеты. В конце концов, вы используете нативные возможности системы, которые были настроены и оптимизированы, а не движок рисования, наложенный на универсальный виджет.

Темы также лишены многих преимуществ нативных платформ в плане доступности. Создатели современных ОС уделяют много времени настройке возможностей для людей с ограниченными физическими, зрительными или когнитивными способностями. При использовании нативных виджетов эти возможности обычно предоставляются бесплатно. При повторной реализации виджетов с помощью темы необходимо также повторно реализовать эти возможности.

BeeWare использует нативные виджеты и нативную функциональность, а не подход к разработке приложений на основе тем.

Нативный Python

BeeWare также является фреймворком, который беззастенчиво ставит Python на первое место. Нам нравится Python. Нам нравится его внешний вид и то, как он работает. Если Python недоступен в качестве первоклассного варианта на определенной платформе, мы сделаем все необходимое, чтобы Python стал доступен в качестве языка разработки. И когда у нас будет возможность использовать идиомы Python для API или дизайна, мы обязательно это сделаем. Это означает, что мы будем использовать генераторы, контекстные менеджеры, асинхронные вызовы yield from и многое другое, чтобы предоставить лучший API на базе Python для кроссплатформенной разработки приложений.

Мы также смотрим в будущее — это означает, что мы поддерживаем исключительно Python 3.

Опыт коренных народов

Опыт использования любого инструмента начинается с процесса установки. Частью философии BeeWare «Native everywhere» (Нативность везде) является использование подходящих нативных механизмов для установки. Если вы используете инструмент пользовательского пространства, он должен быть представлен вам в виде пакета, который устанавливается так же, как и любой другой инструмент — через магазин приложений, установщик или простой исполняемый пакет. Конечные пользователи не должны знать, что вы написали приложение на Python.