Storia e filosofia¶
Il progetto BeeWare è partito da una semplice domanda: Perché gli strumenti che utilizziamo che utilizziamo come sviluppatori Python non migliorano alla stessa velocità del resto della della tecnologia che usiamo quotidianamente?
Python ha dimostrato di essere un linguaggio altamente performante, accessibile ai principianti ma potente nelle mani degli esperti. Python sta rapidamente diventando una parte importante nel panorama dell'analisi dei dati, del calcolo scientifico e dello sviluppo web. Iniziative come Django Girls hanno dimostrato che, utilizzando Python, è possibile offrire corsi di formazione di un giorno che introducono Python a persone senza esperienza di programmazione; alla fine della giornata, i partecipanti hanno sviluppato e implementato un sito web dinamico basato su database, pubblicato su un server visibile al pubblico.
Tuttavia, l'esperienza di sviluppo per chi scrive in Python riflette talvolta più i primi anni '90 che il nuovo millennio. L'ambiente di sviluppo predefinito per Python è ancora una finestra console 80x25. Per gli utenti provenienti da un ambiente Windows o Apple, abituati a interfacce grafiche altamente dettagliate e ben progettate, questo flashback di 30 anni può essere un'esperienza completamente aliena.
E sì, esistono IDE (ambienti di sviluppo integrato) che forniscono un'esperienza applicativa nativa per la scrittura del codice. Ma questi strumenti richiedono l'adozione totale del modo in cui l'IDE guarda il progetto. progetto. Spesso introducono tanti grattacapi al processo di sviluppo quanti ne risolvono. processo di sviluppo quanti ne risolvono.
E così, ci troviamo di fronte a un interessante scisma tra il "vecchio modo" di sviluppare Unix in una finestra di console e il "nuovo modo" di sviluppare tutto in uno. Unix in una finestra di console e il "nuovo modo" degli IDE all-in-one. IDE.
La filosofia Unix¶
Tuttavia, non deve necessariamente essere così. Il principio fondamentale della filosofia Unix è che "ogni strumento fa una cosa, ma la fa bene". Si tratta di una filosofia molto potente, che consente di creare catene di strumenti estremamente potenti mettendo insieme una suite di strumenti indipendenti ed estremamente mirati.
Sfortunatamente, la maggior parte degli strumenti UNIX ha trasformato questo concetto in "tutti gli strumenti devono devono usare un'interfaccia console". Tuttavia, non c'è nulla nella filosofia filosofia UNIX che dice che gli strumenti devono usare un'interfaccia di console. è solo che è andata così.
Il progetto BeeWare è iniziato con la premessa che possiamo avere il meglio dei due mondi. due mondi. Possiamo avere una catena di strumenti componibili che fanno ciascuno una cosa, bene. Ma questi strumenti possono anche esporre le loro funzionalità utilizzando un'interfaccia grafica ricca interfaccia grafica.
Più che semplice codice¶
Ma non si tratta solo di codice. Un progetto software di successo richiede documentazione, capacità di progettazione, feedback e segnalazioni di bug. La comunità comunità di BeeWare riconosce che tutti i contributi sono importanti, non solo quelli non solo quelli che arrivano come richiesta di pull su GitHub.
Anche in questo caso, è facile pensare a un progetto nel vuoto, come la somma di tutti i contributi. tutti i contributi. Ma non è mai così. Un progetto open source è comunità.
Diversità e inclusione¶
Una comunità diversificata è una comunità forte. Questo significa accettare persone di ogni livello di esperienza, di ogni provenienza, di ogni razza, credo, orientamento ed espressione, orientamenti ed espressioni. Il progetto BeeWare si impegna a sviluppare e mantenere una comunità inclusiva, diversificata e accogliente.
A sostegno di ciò, abbiamo un'offerta aperta per fornire assistenza a chiunque desideri partecipare come collaboratore e un Codice di condotta che viene applicato in modo rigoroso. Qualsiasi segnalazione di violazione di tale codice di condotta, anche da parte di membri senior della comunità, sarà trattata con rispetto e gestita in modo appropriato.
Sano e sostenibile¶
È anche importante assicurarsi che la comunità sia accessibile e sostenibile. sostenibile. Purtroppo è diventata una parte accettata della cultura dell'Open Source che i "veri" progetti Open Source debbano essere sviluppati interamente da volontari. da volontari. Questo costituisce una barriera all'ingresso per molti gruppi: le le uniche persone in grado di dedicare il proprio tempo libero al volontariato sono quelle che hanno tempo libero.
Spesso porta anche al burnout e ad altri problemi di salute mentale tra i collaboratori. Il fatto che la depressione, l'ansia e il burnout siano così comuni nelle comunità di sviluppo software non dovrebbe essere considerato un motivo di orgoglio o una dimostrazione di quanto possa essere impegnato un team di sviluppo. È un problema che deve essere affrontato di petto, allo stesso modo in cui si affronterebbe un bug del software: con soluzioni immediate e piani a lungo termine per rimuovere la causa sistemica del problema.
Se da un lato attribuiamo un valore incredibile al contributo dei volontari, dall'altro sappiamo anche che sappiamo anche che l'impegno dei volontari da solo non è la via per sviluppare una comunità comunità sana e sostenibile. Per questo motivo, la sostenibilità sostenibilità finanziaria è una considerazione fondamentale per il funzionamento del progetto BeeWare. progetto BeeWare. Come comunità, non ignoriamo il ruolo che il denaro deve giocare nel fornire le risorse che permettono alle persone di iniziare e continuare a contribuire. Come comunità, forniremo dei meccanismi accettati per di monetizzare il proprio lavoro in modo significativo e, laddove possibile, compensare le persone per il loro lavoro. possibile, compensare le persone per il loro lavoro, senza compromettere gli ideali dello sviluppo ideali dello sviluppo Open Source.
L'obiettivo¶
L'obiettivo finale del progetto BeeWare: Essere in grado di fare per il software mobile e desktop, la stessa cosa che Django ha fatto per il software web: mettere nelle mani degli utenti un insieme di strumenti e librerie web: mettere nelle mani degli utenti un insieme di strumenti e librerie che permettano loro di che permetta loro di sviluppare interfacce utente ricche e native e di distribuirle sui loro dispositivi. e distribuirle sui loro dispositivi. Questo include:
- Strumenti che consentono l'esecuzione di Python su diversi dispositivi,
- Strumenti per creare un pacchetto di un progetto Python in modo che possa essere eseguito su tali dispositivi,
- Librerie per accedere ai widget e alle funzionalità native dei dispositivi,
- Strumenti per aiutare a sviluppare, eseguire il debug, analizzare e questi progetti.
L'obiettivo è che questo insieme di strumenti sia sufficientemente facile da usare per i per i neofiti in un ambiente simile a quello delle Django Girls, ma abbastanza potente da poter abbastanza potenti da poter essere utilizzati per creare il prossimo Instagram, Pinterest o Disqus. Disqus.
Soprattutto, mira a fare tutto questo come una comunità Open Source. Il processo di sviluppo Open Source ha dimostrato di essere il modo più modo più affidabile per sviluppare un software robusto e affidabile, e il fatto che chiunque possa accedere al software chiunque possa accedere al software significa che tutti possono iniziare con lo stesso stesso set di strumenti eccellenti, sia che si tratti di un esperto o di un dilettante entusiasta.
Python ovunque¶
Un progetto informatico moderno non può ignorare il più grande sviluppo nel campo dell'informatica degli ultimi 10 anni. informatica degli ultimi 10 anni. Python si vanta di essere un linguaggio linguaggio multipiattaforma. 10 anni fa, essere multipiattaforma significava essere disponibile per disponibile per Windows, macOS e Linux. Al giorno d'oggi, il mobile computing è molto più importante. Ciononostante, non ci sono molte opzioni valide per la programmazione Python su piattaforme mobili. programmazione Python su piattaforme mobili e la codifica mobile multipiattaforma è ancora mobile multipiattaforma è ancora difficile da realizzare.
BeeWare abbraccia il mobile e altre piattaforme emergenti (come orologi e set-top-box) come cittadini di prima classe dell'ecosistema informatico. come cittadini di prima classe dell'ecosistema informatico. perché se le persone possiedono questi dispositivi, perché non dovrebbero essere in grado di scrivere software in Python.
Originario di ogni luogo¶
È facile usare i temi per ottenere la multipiattaforma. Tuttavia, è facile individuare è facile individuare le applicazioni costruite con i temi: sono quelle che non si comportano come qualsiasi altra applicazione. I widget non hanno un aspetto quasi corretto, oppure c'è una barra di menu in una finestra di un'applicazione OS X. I temi possono avvicinarsi ma ci sono sempre dei segni rivelatori.
Inoltre, i widget nativi sono sempre più veloci di un widget generico a tema. tematizzato. Dopotutto, si sta utilizzando una capacità di sistema nativa che è stata ottimizzate, non un motore di disegno sovrapposto a un widget generico. un widget generico.
I temi, inoltre, perdono molti dei vantaggi di accessibilità delle piattaforme native. Gli autori dei moderni sistemi operativi dedicano molto tempo alla messa a punto di funzionalità per le persone con mobilità, la vista o la cognizione. Se si utilizzano widget nativi, di solito nativi, di solito si ottengono questi vantaggi gratuitamente. Se si reimplementano i widget con un tema, si devono reimplementare anche le funzionalità.
BeeWare utilizza widget nativi e funzionalità native, invece di utilizzare un approccio tematico allo sviluppo delle applicazioni.
Nativo Python¶
BeeWare è anche un framework che non nasconde la sua preferenza per Python. Ci
piace Python. Ci piace il suo aspetto e il suo funzionamento. Se Python non è
disponibile come opzione di prima classe su una particolare piattaforma, faremo
tutto il necessario per renderlo disponibile come linguaggio di sviluppo. E
quando avremo l'opportunità di adottare l'idioma Python per un'API o un
progetto, lo faremo. Ciò significa che utilizzeremo generatori, gestori di
contesto, chiamate asincrone yield from e altro ancora, al fine di fornire la
migliore API nativa Python per lo sviluppo di applicazioni multipiattaforma.
Guardiamo anche al futuro: questo significa che supportiamo Python 3 esclusivamente.
Esperienza nativa¶
L'esperienza di utilizzo di qualsiasi strumento inizia con il processo di installazione. Parte della filosofia "Native everywhere" di BeeWare consiste nell'adottare appropriati meccanismi nativi per l'installazione. Se si utilizza uno strumento per lo spazio utente, Se si utilizza uno strumento per lo spazio utente, questo dovrebbe essere presentato come un pacchetto da installare come un pacchetto da installare nello stesso modo in cui si installerebbe qualsiasi altro strumento, che sia attraverso un app store, un installer o un store, un programma di installazione o un semplice pacchetto eseguibile. Gli utenti finali non dovrebbero sapere che l'applicazione è stata scritta in Python.