Saltar a contenido

Historia y filosofía

El proyecto BeeWare comenzó con una simple pregunta: ¿Por qué las herramientas que usamos como desarrolladores de Python no mejoran al mismo ritmo que el resto tecnología que utilizamos a diario?

Python ha demostrado ser un lenguaje muy capaz, accesible para los principiantes, pero potente en manos de los expertos. Python se está convirtiendo rápidamente en una parte importante del panorama del análisis de datos, la informática científica y el desarrollo web. Iniciativas como Django Girls han demostrado que, utilizando Python, es posible impartir cursos de formación de un día de duración para introducir a personas sin experiencia en programación en Python; al final del día, los asistentes han desarrollado e implementado un sitio web dinámico respaldado por una base de datos, implementado en un servidor visible públicamente.

Sin embargo, la experiencia de desarrollo para alguien que escribe en Python a veces refleja más los primeros años 90 que el nuevo milenio. El entorno de desarrollo predeterminado para Python sigue siendo una ventana de consola de 80x25. Para los usuarios que provienen de un entorno Windows o Apple, donde están acostumbrados a interfaces gráficas muy detalladas y bien diseñadas, este retroceso de 30 años puede ser una experiencia completamente ajena.

Y, sí, hay IDEs (Entornos de Desarrollo Integrado) que proporcionan una experiencia de aplicación nativa para escribir código. Pero esas herramientas requieren que se adopte, al por mayor, la forma de IDE de ver un proyecto. A menudo introducen tantos dolores de cabeza en el proceso de desarrollo como los que resuelven. de desarrollo.

Y así, nos quedamos con un interesante cisma, entre la "vieja manera" de desarrollo Unix en una ventana de consola, y la "nueva forma" de todo-en-uno todo en uno.

La filosofía Unix

Sin embargo, no tiene por qué ser así. El principio fundamental de la filosofía Unix es que «cada herramienta hace una cosa, y la hace bien». Se trata de una filosofía muy poderosa, que permite crear cadenas de herramientas extremadamente potentes al reunir un conjunto de herramientas independientes y muy especializadas.

Desafortunadamente, la mayoría de las herramientas UNIX han convertido esto en "todas las herramientas deben usar una interfaz de consola". herramientas deben usar una interfaz de consola". Sin embargo, no hay nada en la filosofía filosofía UNIX que diga que las herramientas tienen que usar una interfaz de consola - simplemente se ha convertido en eso.

El proyecto BeeWare partió de la premisa de que podemos tener lo mejor de ambos mundos. Podemos tener una cadena de herramientas componibles que cada uno hace una cosa, bien. Pero esas herramientas también pueden exponer su funcionalidad utilizando una una rica interfaz gráfica de usuario.

Más que solo código

Pero no se trata sólo de código. Un proyecto de software de éxito requiere documentación, habilidades de diseño, retroalimentación e informes de errores. La comunidad comunidad BeeWare reconoce que todas las contribuciones son importantes - no sólo las que llegan como pull request a GitHub.

Aun así, es fácil pensar en un proyecto en el vacío, como la suma de de todas las contribuciones. Pero nunca es así. Un proyecto de código abierto una comunidad.

Diversidad e inclusión

Una comunidad diversa es una comunidad fuerte. Esto significa aceptar a personas de todos los niveles de experiencia, de todos los orígenes, de todas las razas, credos orientaciones y expresiones. El proyecto BeeWare se compromete a desarrollar y mantener una comunidad integradora, diversa y acogedora.

Para respaldar esto, tenemos una oferta abierta para asesorar a cualquiera que quiera participar como colaborador, y un Código de Conducta que se aplica de forma rigurosa. Cualquier denuncia de infracción de dicho código de conducta, incluso por parte de miembros veteranos de la comunidad, se tratará con respeto y se tomarán las medidas oportunas.

Saludable y sostenible

También es importante asegurarse de que la comunidad sea accesible y sostenible. Desgraciadamente, se ha convertido en parte aceptada de la cultura del que los "verdaderos" proyectos de código abierto deben ser desarrollados por voluntarios. Esto supone una barrera de entrada para muchos grupos. voluntarios son los que tienen tiempo libre. tienen tiempo libre.

También suele provocar agotamiento y otros problemas de salud mental entre los colaboradores. El hecho de que la depresión, la ansiedad y el agotamiento sean tan comunes en las comunidades de desarrollo de software no debe considerarse una medalla de honor ni una demostración del compromiso de un equipo de desarrollo. Es un problema que debe abordarse de frente, del mismo modo que se abordaría un error de software: con soluciones inmediatas y planes a largo plazo para eliminar la causa sistémica del problema.

Aunque valoramos enormemente la contribución de los voluntarios voluntarios, también sabemos que los esfuerzos voluntarios por sí solos no son una comunidad sana y sostenible. Por ello, la sostenibilidad sostenibilidad financiera es una consideración clave en el funcionamiento del proyecto BeeWare. BeeWare. Como comunidad, no ignoramos el papel que debe desempeñar el dinero en la provisión de los recursos que permiten a la gente empezar y seguir contribuir. Como comunidad, proporcionaremos mecanismos aceptados para que monetizar su trabajo de forma significativa y, siempre que sea posible posible, compensar a la gente por su trabajo, sin comprometer los ideales del desarrollo de código abierto. los ideales del desarrollo de código abierto.

El objetivo

El objetivo final del proyecto BeeWare: Poder hacer para el software lo mismo que Django ha hecho por el software web: poner en manos de los usuarios web: poner en manos de los usuarios un conjunto de herramientas y bibliotecas que les permita desarrollar interfaces de usuario ricas y nativas, y desplegarlas en sus dispositivos. Esto incluye:

  • Herramientas que permiten ejecutar Python en diferentes dispositivos.
  • Herramientas para empaquetar un proyecto Python de modo que pueda ejecutarse en esos dispositivos.
  • Bibliotecas para acceder a los widgets y capacidades nativas de los dispositivos.
  • Herramientas para ayudar a desarrollar, depurar, analizar y estos proyectos.

El objetivo es que este conjunto de herramientas sea fácil de usar para para principiantes en un entorno tipo Django Girls, pero lo suficientemente lo suficientemente potentes como para que puedan usarse para crear el próximo Instagram, Pinterest o Disqus. Disqus.

Y lo que es más importante, pretende hacer todo esto como una comunidad de Código Abierto. El proceso de desarrollo de código abierto ha demostrado ser la forma más fiable de desarrollar software robusto y fiable. manera más fiable de desarrollar software robusto y fiable, y el hecho de que y fiable, y el hecho de que cualquiera pueda acceder al software significa que todos pueden empezar con el mismo conjunto de excelentes herramientas, ya sean expertos o no. mismo conjunto de excelentes herramientas, ya sean expertos o aficionados entusiastas.

Python en todas partes

Un proyecto informático moderno no puede ignorar el mayor avance en informática de los últimos 10 años. Python se enorgullece de ser un lenguaje multiplataforma. Hace 10 años, ser multiplataforma significaba estar disponible para Windows, macOS y Linux. Hoy en día, la informática móvil es mucho más importante. A pesar de esto, no hay muchas buenas opciones para programación Python en plataformas móviles, y la codificación móvil multiplataforma multiplataforma.

BeeWare adopta el móvil y otras plataformas emergentes (como relojes y como ciudadanos de primera clase del ecosistema informático. porque si la gente tiene estos dispositivos, ¿por qué no van a poder escribir software para ellos en Python.

Nativo en todas partes

Es fácil utilizar temas para lograr la multiplataforma. Sin embargo, es fácil aplicaciones que se han construido utilizando temas - son los que no se comportan como cualquier otra aplicación. Los widgets no se ven bastante bien, o hay una barra de menú en una ventana de una aplicación OS X. Los temas pueden pero siempre hay signos reveladores.

Además, los widgets nativos son siempre más rápidos que un widget genérico temático. temático. Después de todo, estás usando la capacidad nativa del sistema que ha sido sintonizado y optimizado, no un motor de dibujo que se ha superpuesto sobre un widget genérico.

Los temas también desaprovechan muchas de las ventajas de accesibilidad de las plataformas nativas. Los autores de los sistemas operativos modernos dedican mucho tiempo a mejorar la accesibilidad para las personas con discapacidades motrices, visuales o cognitivas. movilidad, visión o cognición. Si utilizas widgets nativos Si usas widgets nativos, normalmente obtienes estas mejoras gratis. Si reimplementas los widgets con con un tema, también hay que reimplementar las asequibilidades.

BeeWare utiliza widgets nativos y funcionalidad nativa, en lugar de utilizar un enfoque basado en temas para el desarrollo de aplicaciones.

Nativo de Python

BeeWare es también un marco de trabajo que se declara abiertamente «Python first». Nos gusta Python. Nos gusta su aspecto y su funcionamiento. Si Python no está disponible como opción de primera clase en una plataforma concreta, haremos todo lo necesario para que Python esté disponible como lenguaje de desarrollo. Y cuando tengamos la oportunidad de adoptar el lenguaje Python para una API o un diseño, lo haremos. Eso significa que utilizaremos generadores, gestores de contexto, llamadas asíncronas yield from y mucho más, con el fin de proporcionar la mejor API nativa de Python para el desarrollo de aplicaciones multiplataforma.

También estamos mirando hacia el futuro - esto significa que apoyamos Python 3 exclusivamente.

Experiencia nativa

La experiencia de uso de cualquier herramienta empieza con el proceso de instalación. Parte de la filosofía "Native everywhere" de BeeWare consiste en adoptar mecanismos nativos mecanismos nativos para la instalación. Si utiliza una herramienta de espacio de usuario, debe presentarse como un paquete que se instala del mismo modo que cualquier otro. instalar de la misma forma que cualquier otra herramienta, ya sea a través de una store, un instalador o un simple paquete ejecutable. Los usuarios finales no deberían saber que has escrito la aplicación en Python.