Histoire et philosophie¶
Le projet BeeWare est parti d'une question simple : Pourquoi les outils que nous utilisons en tant que développeurs Python ne s'améliorent-ils pas au même rythme que le reste du monde ? que nous utilisons en tant que développeurs Python ne s'améliorent pas au même rythme que le reste de la technologie que nous utilisons quotidiennement. que le reste de la technologie que nous utilisons quotidiennement ?
Python s'est révélé être un langage très performant, accessible aux débutants, mais puissant entre les mains des experts. Python est en train de devenir rapidement un élément majeur dans le domaine de l'analyse de données, du calcul scientifique et du développement web. Des initiatives telles que Django Girls ont démontré qu'il est possible, grâce à Python, d'organiser des formations d'une journée pour initier des personnes sans expérience en programmation à Python. À la fin de la journée, les participants ont développé et déployé un site web dynamique basé sur une base de données, déployé sur un serveur accessible au public.
Cependant, l'expérience de développement pour quelqu'un qui écrit en Python reflète parfois davantage le début des années 90 que le nouveau millénaire. L'environnement de développement par défaut pour Python est toujours une fenêtre de console 80x25. Pour les utilisateurs qui viennent d'un environnement Windows ou Apple, où ils sont habitués à des interfaces graphiques très détaillées et bien conçues, ce retour en arrière de 30 ans peut être une expérience complètement étrangère.
Et, oui, il existe des IDE (environnements de développement intégré) qui qui offrent une expérience d'application native pour l'écriture du code. Mais ces outils Mais ces outils vous obligent à adopter, en bloc, la façon dont l'IDE envisage un projet. projet. Ils introduisent souvent autant de maux de tête dans le processus de développement qu'ils n'en résolvent. de développement qu'ils n'en résolvent.
Nous nous retrouvons donc avec un schisme intéressant, entre l'"ancienne façon" de développer Unix dans une fenêtre de console, et la "nouvelle façon" de développer des systèmes tout-en-un. développement Unix dans une fenêtre de console, et la "nouvelle façon" des IDE tout-en-un. IDE tout-en-un.
La philosophie Unix¶
Cependant, cela ne doit pas nécessairement être le cas. Le principe fondamental de la philosophie Unix est que « chaque outil fait une chose, et la fait bien ». Il s'agit d'une philosophie très puissante, qui permet de composer des chaînes d'outils extrêmement performantes en assemblant une suite d'outils indépendants et extrêmement spécialisés.
Malheureusement, la plupart des outils UNIX ont transformé ce principe en "tous les outils doivent utiliser une interface console". doivent utiliser une interface console". Cependant, rien dans la philosophie d'UNIX ne dit que les outils doivent utiliser une interface console. UNIX ne stipule pas que les outils doivent utiliser une interface console. c'est simplement ce qui s'est passé.
Le projet BeeWare est parti du principe qu'il est possible d'obtenir le meilleur des deux mondes. des deux mondes. Nous pouvons avoir une chaîne d'outils composables qui font chacun une chose, bien. Mais ces outils peuvent également exposer leurs fonctionnalités à l'aide d'une interface graphique riche.
Plus qu'un simple code¶
Mais il ne s'agit pas seulement de code. Un projet logiciel réussi nécessite de la documentation, des compétences en matière de conception, un retour d'information et des rapports de bogues. La communauté communauté BeeWare reconnaît que toutes les contributions sont importantes - et pas seulement celles qui viennent sous la forme d'une demande d'extraction sur GitHub.
Même dans ce cas, il est facile d'envisager un projet dans le vide, comme la somme de toutes les contributions. de toutes les contributions. Mais ce n'est jamais le cas. Un projet open source est une communauté.
Diversité et inclusion¶
Une communauté diversifiée est une communauté forte. Cela signifie qu'il faut accepter les personnes de tous les niveaux d'expérience, de tous les milieux, de toutes les races, de toutes les croyances, de toutes les orientations et de toutes les expressions, orientations et expressions. Le projet BeeWare s'engage à développer et maintenir une communauté inclusive, diversifiée et accueillante.
Pour appuyer cela, nous proposons ouvertement de parrainer toute personne souhaitant s'impliquer en tant que contributeur, et nous appliquons rigoureusement un code de conduite. Tout signalement de violation de ce code de conduite, même par des membres seniors de la communauté, sera traité avec respect et fera l'objet de mesures appropriées.
Sain et durable¶
Il est également important de s'assurer que la communauté est accessible et durable. durable. Il est malheureusement devenu une partie acceptée de la culture Open Source que les "vrais" projets Open Source doivent être développés entièrement par des par des bénévoles. Cela constitue une barrière à l'entrée pour de nombreux groupes - les seules personnes capables de consacrer leur temps libre à des projets Open Source sont les bénévoles. les seules personnes capables de passer leur temps libre à faire du bénévolat sont celles qui ont du temps libre.
Cela conduit également souvent à l'épuisement professionnel et à d'autres problèmes de santé mentale chez les contributeurs. Le fait que la dépression, l'anxiété et l'épuisement professionnel soient si courants dans les communautés de développement de logiciels ne doit pas être considéré comme un signe d'honneur ou une preuve de l'engagement d'une équipe de développement. C'est un problème qui doit être abordé de front, et traité de la même manière qu'un bug logiciel serait traité : avec des solutions immédiates et des plans à long terme pour éliminer la cause systémique du problème.
Bien que nous accordions une valeur inestimable aux contributions des volontaires, nous savons également que les efforts des volontaires ne sont pas suffisants pour développer un programme d'éducation et de formation. bénévoles, nous savons également que les efforts des bénévoles ne suffisent pas à développer une communauté saine et durable. communauté saine et durable. C'est pourquoi la viabilité financière est un élément clé du fonctionnement du projet BeeWare. est une considération essentielle. En tant que communauté, nous n'ignorons pas le rôle que l'argent doit jouer dans la fourniture des ressources qui permettent aux gens de commencer et de continuer à contribuer. contribuer. En tant que communauté, nous fournirons des mécanismes acceptés pour que pour les individus de monétiser leur travail de manière significative et, dans la mesure du possible, les et, dans la mesure du possible, rémunérer les gens pour leur travail - sans compromettre les sans compromettre les idéaux du développement Open Source.
L'objectif¶
L'objectif final du projet BeeWare : Pouvoir faire pour les logiciels mobiles et de bureau la même chose que Django pour le web. la même chose que Django a fait pour les logiciels web - mettre entre les mains des pour les logiciels web - mettre entre les mains des utilisateurs un ensemble d'outils et de bibliothèques qui leur permettent de développer des interfaces utilisateur riches et natives, et de les déployer. qui leur permettent de développer des interfaces utilisateur riches et natives, et de les déployer sur leurs appareils. et de les déployer sur leurs appareils. Cela inclut :
- Outils permettant à Python de fonctionner sur différents appareils,
- Outils permettant de packager un projet Python afin qu'il puisse fonctionner sur ces appareils,
- Bibliothèques permettant d'accéder aux widgets et fonctionnalités natifs des appareils,
- Outils pour aider à développer, déboguer, analyser et ces projets.
L'objectif est que cet ensemble d'outils soit assez facile à utiliser pour les pour les nouveaux venus dans un environnement de type Django Girls, mais suffisamment suffisamment puissants pour être utilisés pour piloter le prochain Instagram, Pinterest ou Disqus.
Plus important encore, il vise à faire tout cela dans le cadre d'une communauté Open Source. Le processus de développement Open Source s'est avéré être le moyen le plus fiable pour développer des logiciels robustes et fiables. le plus fiable pour développer des logiciels robustes et fiables, et le fait que tout le monde puisse accéder au logiciel signifie que tout le monde peut commencer avec le logiciel. le fait que tout le monde puisse accéder au logiciel signifie que tout le monde peut commencer avec le même ensemble d'excellents outils, que l'on soit expert ou non. le même ensemble d'excellents outils, que l'on soit expert ou amateur enthousiaste.
Python partout¶
Un projet informatique moderne ne peut ignorer la plus grande évolution de l'informatique informatique des 10 dernières années. Python s'enorgueillit d'être un langage langage multiplateforme. Il y a 10 ans, être multiplateforme signifiait être disponible pour Windows, macOS et Linux. Aujourd'hui, l'informatique mobile est beaucoup plus importante. Malgré cela, il n'y a pas beaucoup de bonnes options pour la programmation Python sur les plateformes mobiles, et le codage mobile multiplateforme n'est toujours pas possible.
BeeWare considère les plates-formes mobiles et autres plates-formes émergentes (comme les montres et les décodeurs) comme des citoyens de premier ordre. comme des citoyens de première classe de l'écosystème informatique. car si les gens possèdent ces appareils, pourquoi ne pourraient-ils pas écrire des logiciels pour eux en Python.
Originaire de partout¶
Il est facile d'utiliser des thèmes pour obtenir une plate-forme polyvalente. Cependant, il est facile de de repérer les applications qui ont été créées à l'aide de thèmes - ce sont celles qui ne se comportent pas comme les autres. ne se comportent pas tout à fait comme n'importe quelle autre application. Les widgets n'ont pas tout à fait la même apparence, ou il y a une barre de menu sur une fenêtre dans une application OS X. Les thèmes peuvent être assez mais il y a toujours des signes révélateurs.
En outre, les widgets natifs sont toujours plus rapides qu'un widget générique. à thème. Après tout, vous utilisez les capacités du système natif qui ont été réglées et optimisées, et non un moteur de dessin qui a été superposé. optimisées, et non un moteur de dessin superposé à un widget générique. un widget générique.
Les thèmes ne bénéficient pas non plus des avantages des plates-formes natives en matière d'accessibilité. Les auteurs de systèmes d'exploitation modernes consacrent beaucoup de temps à la mise au point d'options pour les personnes souffrant d'un handicap moteur, visuel ou cognitif. mobilité, de la vision ou de la cognition. Si vous utilisez des widgets natifs, vous natifs, vous bénéficiez généralement de ces avantages gratuitement. Si vous réimplémentez les widgets avec un thème, vous devez également réimplémenter les fonctionnalités.
BeeWare utilise des widgets natifs et des fonctionnalités natives, plutôt que d'utiliser plutôt qu'une approche thématique du développement d'applications.
Python natif¶
BeeWare est également un framework qui privilégie sans complexe Python. Nous
aimons Python. Nous aimons son apparence et son fonctionnement. Si Python n'est
pas disponible en tant qu'option de premier choix sur une plateforme
particulière, nous ferons tout ce qui est nécessaire pour que Python soit
disponible en tant que langage de développement. Et lorsque nous avons la
possibilité d'adopter l'idiome Python pour une API ou une conception, c'est
exactement ce que nous faisons. Cela signifie que nous utilisons des
générateurs, des gestionnaires de contexte, des appels asynchrones yield from
et bien plus encore, afin de fournir la meilleure API native Python pour le
développement d'applications multiplateformes.
Nous sommes également tournés vers l'avenir, ce qui signifie que nous supportons exclusivement Python 3 exclusivement.
Expérience native¶
L'expérience d'utilisation d'un outil commence par le processus d'installation. Une partie de la philosophie "Native everywhere" de BeeWare consiste à adopter des mécanismes d'installation natifs appropriés. appropriés pour l'installation. Si vous utilisez un outil de l'espace utilisateur, il doit vous être présenté comme un paquetage à installer de la même manière que vous de la même manière que vous installeriez n'importe quel autre outil - que ce soit par le biais d'un app store, d'un installateur ou d'un simple paquet exécutable. Les utilisateurs finaux ne doivent pas savoir que vous avez écrit l'application en Python.