El contenido y/o traducción de esta página puede estar desactualizado!    Ver que ha cambiado

Historia

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 de la tecnología que usamos diariamente?

Python ha demostrado ser un lenguaje altamente capaz - accesible para los recién llegados, pero potente en manos de expertos. Python se está convirtiendo rápidamente en una parte importante del análisis de datos, la computación científica y el desarrollo web. Y las iniciativas como Django Girls han demostrado que con Python, es posible proporcionar un curso de 1 día de cursos que la introducción de personas sin experiencia en la programación de Python; y al final del día, los asistentes han desarrollado y desplegado un sitio web dinámico respaldado por una base de datos, desplegado en un servidor públicamente visible.

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

Y, sí, hay interfaces de desarrollo integradas (IDE, por sus siglas en inglés) que proporcionan una experiencia de aplicación nativa para escribir código. Pero esas herramientas requieren que el usuario adopte, al por mayor, la manera del IDE de mirar un proyecto. A menudo introducen tantos dolores de cabeza en el proceso de desarrollo como lo que solucionan.

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

La Filosofía de Unix

Sin embargo, no tiene por qué ser así. El principio básico de la Filosofía de Unix es que "cada herramienta hace una cosa, y hace una cosa bien". Esta es una filosofía muy poderosa, y permite la composición de cadenas de trabajo extremadamente potentes al reunir una suite de herramientas extremadamente enfocadas e independientes.

Desafortunadamente, la mayoría de las herramientas UNIX han convolucionado esto también significa "todas las herramientas deben usar una interfaz de consola". Sin embargo, no hay nada en la filosofía de UNIX que diga que las herramientas tienen que usar una interfaz de consola - es sólo resultó de esa manera.

El proyecto BeeWare comenzó con la premisa de que podemos tener lo mejor de ambos mundos. Podemos tener una cadena de herramientas que se puedan encadenar y que cada una haga una cosa, y la haga bien. Pero esas herramientas también pueden exponer su funcionalidad utilizando una interfaz gráfica de usuario enriquecida.

El objetivo

El objetivo final del proyecto BeeWare: Ser capaz de hacer para el software móvil y de escritorio de usuario lo mismo que Django ha hecho para el software web - poner en manos de los usuarios un conjunto de herramientas y bibliotecas que les permite desarrollar ricas y nativas, e implementarlas en sus dispositivos. Esto incluye:

  • Herramientas para permitir que Python se ejecute en diferentes dispositivos,
  • Herramientas para empaquetar un proyecto de Python para que pueda ejecutarse en esos dispositivos,
  • Las librerías para acceder a los widgets nativos y las capacidades de los dispositivos,
  • Herramientas para ayudar a desarrollar, depurar, analizar y estos proyectos.

Este objetivo es que este conjunto de herramientas sea lo suficientemente fácil de usar para los recién llegados completos para usar en un entorno de Django Girls; pero lo suficientemente potente como para poder hacer el siguiente Instagram, Pinterest o Disqus.

Lo más importante es que 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 confiable, y el hecho de que cualquiera pueda acceder al software significa que todos pueden comenzar con el mismo conjunto de excelentes herramientas, ya sean expertos o aficionados.

Python en todas partes

Un proyecto informático moderno no puede ignorar el mayor desarrollo en la informática de los últimos 10 años. Python se enorgullece de ser un lenguaje multi-plataforma. Hace 10 años, ser multi-plataforma significaba estar disponible para Windows, macOS y Linux. En estos días, la computación móvil es mucho más importante. A pesar de esto, no hay buenas opciones para la programación de Python en las plataformas móviles, y la programación móvil multi-plataforma sigue siendo difícil de alcanzar.

BeeWare abarca los dispositivos móviles y otras plataformas emergentes (como relojes y decodificadores) como un ciudadano de primera clase del ecosistema informático, porque si las personas tienen estos dispositivos, ¿por qué no deberían ser capaces de escribir software para ellos en Python?

Nativo en todas partes

Es fácil utilizar temas para lograr la multi-plataforma. Sin embargo, es fácil detectar las aplicaciones que se han construido utilizando temas - son lass que no se comportan como cualquier otra aplicación. Los widgets no parecen lo suficientemente correctos, o hay una barra de menú en una ventana en una aplicación de OS X. Los temas pueden acercarse bastante - pero siempre hay signos reveladores.

Además, los widgets nativos son siempre serán más rápidos que un widget genérico temático. Después de todo, está utilizando la capacidad del sistema nativo que ha sido afinada y optimizada, no un motor de dibujo que se ha superpuesto en la parte superior de un widget genérico.

Los temas también pierden muchos de los beneficios de accesibilidad de las plataformas nativas. Los autores modernos de OS pasan mucho tiempo afinando la configuración para gente con problemas de movilidad, visión o cognición alteradas. Si usas widgets nativos, usualmente obtienes estos recursos gratis. Si vuelves a implementar widgets con un tema, también tienes que volver a implementar las configuraciones especiales.

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

Python nativo

BeeWare es también sin discusiones "Python primero". Nos gusta Python. Nos gusta la forma en que se ve, y la forma en que funciona. Si Python no está disponible como una opción de primera clase en una plataforma en particular, haremos lo necesario para que Python esté disponible como lenguaje de desarrollo. Y cuando tenemos la oportunidad de abrazar el lenguaje de Python para una API o un diseño, vamos a hacer precisamente eso. Esto significa que vamos a utilizar generadores, gestores de contexto, yield from de llamadas asíncronas, y más, para proporcionar la mejor API nativa de Python para el desarrollo de aplicaciones multi-plataforma.

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

Experiencia nativa

La experiencia de usar cualquier herramienta comienza con el proceso de instalación. Parte de la filosofía "Nativo en todas partes" de BeeWare está adoptando los mecanismos nativos apropiados para la instalación. Si está utilizando una herramienta de espacio de usuario, debe ser presentada a usted como un paquete que se instala de la misma manera que instalaría cualquier otra herramienta, ya sea a través de una tienda de aplicaciones, un instalador o un paquete ejecutable simple. Los usuarios finales no deben saber que han escrito la aplicación en Python.

Pero si está utilizando una herramienta de desarrollo o una librería, debe integrarse con su entorno de desarrollo. Y puesto que estamos utilizando Python, eso significa que deberías poder instalarlo en tu entorno virtual utilizando pip install y nada más. Sin extensiones C, sin compiladores, sin configuración de rutas del sistema o variables de entorno. Simplemente instálelo, impórtelo y empiece a escribir (o ejecutar) código.

Más que sólo código

Sin embargo, es más que sólo código. Un proyecto de software exitoso requiere documentación, diseño, comentarios y reportes de errores. La comunidad BeeWare reconoce que todas las contribuciones son importantes - no sólo las que vienen como un Pull Request en GitHub.

Incluso entonces, es fácil pensar en un proyecto en el vacío, como la suma de todas las contribuciones. Pero ese nunca es el caso. Un proyecto de código abierto es sobre la 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 está comprometido a desarrollar y mantener una comunidad inclusiva, diversa y acogedora.

Para respaldar esto, tenemos una oferta abierta para ser mentores de cualquier persona que quiera participar como colaborador y un Código de Conducta que es rigurosamente aplicado. Cualquier denuncia de violaciones de dicho código de conducta, incluso por miembros de la comunidad, será tratada con respeto y apropiadamente.

Saludable y sostenible

También es importante asegurarse de que la comunidad sea accesible y sostenible. Por desgracia, se ha convertido en una parte aceptada de la cultura de código abierto que los proyectos verdaderos de código abierto deben ser desarrollados por voluntarios. Esto actúa como una barrera para la entrada de muchos grupos - las únicas personas capaces de pasar su tiempo libre de voluntariado son los que tienen tiempo libre.

También con frecuencia conduce al agotamiento y otros problemas de salud mental entre los colaboradores. El hecho de que la depresión, la ansiedad y el agotamiento son tan comunes en las comunidades de desarrollo de software no debe considerarse una insignia de honor o una demostración de lo comprometido que puede ser un equipo de desarrollo. Es un problema que debe ser abordado de frente y abordado de la misma manera que un error de software se abordaría - con soluciones inmediatas y planes a largo plazo para eliminar la causa sistémica del problema.

Si bien ponemos un valor increíble en las contribuciones de los voluntarios, también sabemos que los esfuerzos voluntarios por sí solos no son el camino para desarrollar una comunidad sana y sostenible. Por esa razón, la sostenibilidad financiera es una consideración clave en el funcionamiento del proyecto BeeWare. Como comunidad, no ignoramos el papel que el dinero tiene que desempeñar en proveer los recursos que permite a la gente comenzar y seguir contribuyendo. Como comunidad, proporcionaremos mecanismos aceptados para que los individuos puedan monetizar su trabajo de manera significativa y, siempre que sea posible, compensen a la gente por su trabajo sin comprometer los ideales del desarrollo de código abierto.

BeeWare: Las herramientas de desarrollo para Python

Esto es BeeWare. Estamos increíblemente entusiasmados con lo que el futuro nos depara con Python. Esperamos que se unan a nosotros en este viaje.