Historie og filosofi¶
BeeWare-projektet startede med et simpelt spørgsmål: Hvorfor bliver de værktøjer som vi bruger som Python-udviklere, ikke forbedres i samme takt som resten af den teknologi, vi bruger til daglig?
Python har bevist sit værd som et meget kapabelt sprog – tilgængeligt for nybegyndere, men kraftfuldt i hænderne på eksperter. Python er hurtigt ved at blive en vigtig del af dataanalyse, videnskabelig computing og webudvikling. Og initiativer som Django Girls har vist, at det med Python er muligt at tilbyde et endags kursus, der introducerer folk uden programmeringserfaring til Python, og ved dagens afslutning har deltagerne udviklet og implementeret en database-baseret dynamisk hjemmeside, der er implementeret på en offentligt tilgængelig server.
Imidlertid afspejler udvikleroplevelsen for en person, der skriver Python, undertiden mere 90'erne end det nye årtusinde. Standardudviklingsmiljøet for Python er stadig et 80x25 konsolvindue. For brugere, der kommer fra et Windows- eller Apple-miljø, hvor de er vant til meget detaljerede, veldesignede grafiske grænseflader, kan dette 30 år gamle flashback være en helt fremmed oplevelse.
Og ja, der findes IDE'er (Integrated Development Environments), som giver en giver en indfødt applikationsoplevelse til at skrive kode. Men disse værktøjer kræver, at du helt og holdent adopterer IDE'ets måde at se på et projekt. De introducerer ofte lige så mange hovedpiner i udviklingsprocessen udviklingsprocessen, som de løser.
Og så står vi tilbage med et interessant skisma mellem den "gamle måde" med Unix-udvikling i et konsolvindue, og den "nye måde" med alt-i-en IDE'er.
Unix-filosofien¶
Men det behøver ikke at være sådan. Kernen i Unix-filosofien er, at "hvert værktøj gør én ting, og det gør det godt". Det er en meget stærk filosofi, som gør det muligt at sammensætte ekstremt kraftfulde værktøjskæder ved at samle en række meget fokuserede, uafhængige værktøjer.
Desværre har de fleste UNIX-værktøjer udviklet dette til også at betyde "alle værktøjer skal bruge en konsolgrænseflade". Men der er ikke noget i UNIX-filosofien, der siger, at værktøjer skal bruge en konsolgrænseflade - det er det er bare blevet sådan.
BeeWare-projektet startede med den forudsætning, at vi kan få det bedste fra begge verdener. Vi kan have en kæde af komponerbare værktøjer, der hver især gør én ting, godt. Men disse værktøjer kan også eksponere deres funktionalitet ved hjælp af en rig grafisk brugergrænseflade.
Mere end bare kode¶
Men det handler om mere end bare kode. Et vellykket softwareprojekt kræver dokumentation, designfærdigheder, feedback og fejlrapporter. BeeWare-fællesskabet anerkender BeeWare-fællesskabet anerkender, at alle bidrag er vigtige - ikke kun dem ikke kun dem, der kommer som en pull request på GitHub.
Selv da er det nemt at tænke på et projekt i et vakuum, som summen af alle bidrag. Men det er aldrig tilfældet. Et open source-projekt handler om fællesskab.
Mangfoldighed og inklusion¶
Et mangfoldigt samfund er et stærkt samfund. Det betyder at acceptere mennesker på alle erfaringsniveauer, fra alle baggrunde, af alle racer, trosretninger, orienteringer og udtryk. BeeWare-projektet er forpligtet til at at udvikle og opretholde et inkluderende, mangfoldigt og imødekommende fællesskab.
For at bakke dette op har vi et åbent tilbud om at vejlede alle, der ønsker at blive involveret som bidragydere, samt en adfærdskodeks, der håndhæves strengt. Alle rapporter om overtrædelser af denne adfærdskodeks – selv fra seniormedlemmer af fællesskabet – vil blive behandlet med respekt og håndteret på passende vis.
Sundt og bæredygtigt¶
Det er også vigtigt at sørge for, at fællesskabet er tilgængeligt og bæredygtigt. Det er desværre blevet en accepteret del af Open Source-kulturen Open Source-kultur, at "ægte" Open Source-projekter skal udvikles udelukkende af frivillige. Det fungerer som en adgangsbarriere for mange grupper - de de eneste, der kan bruge deres fritid på frivilligt arbejde, er dem, der har fritid.
Det fører også ofte til udbrændthed og andre psykiske problemer blandt bidragyderne. Det faktum, at depression, angst og udbrændthed er så almindeligt i softwareudviklingsmiljøer, bør ikke betragtes som et æresmærke eller et bevis på, hvor engageret et udviklerteam kan være. Det er et problem, der skal tackles direkte og løses på samme måde som en softwarefejl ville blive løst – med øjeblikkelige løsninger og langsigtede planer for at fjerne den systemiske årsag til problemet.
Selv om vi sætter utrolig stor pris på de frivilliges bidrag, ved vi også ved vi også, at frivillige indsatser alene ikke er vejen til at udvikle et sundt og bæredygtigt samfund. Af den grund er økonomisk bæredygtighed en vigtig faktor i driften af BeeWare-projektet. projektet. Som samfund ignorerer vi ikke den rolle, som penge skal spille for at skaffe de ressourcer, der gør det muligt for folk at begynde og fortsætte med at bidrage. Vi vil som fællesskab stille accepterede mekanismer til rådighed for enkeltpersoner til at tjene penge på deres arbejde på meningsfulde måder, og hvor muligt, kompensere folk for deres arbejde - uden at gå på kompromis med Open Source-udviklingens idealer.
Målet¶
Det endelige mål med BeeWare-projektet: At være i stand til at gøre for mobil og desktop-brugervendt software det samme, som Django har gjort for websoftware - at software - at give brugerne et sæt værktøjer og biblioteker i hænderne der gør dem i stand til at udvikle rige, indfødte brugergrænseflader og distribuere dem til deres enheder. Dette inkluderer:
- Værktøjer, der gør det muligt at køre Python på forskellige enheder,
- Værktøjer til at pakke et Python-projekt, så det kan køre på disse enheder,
- Biblioteker til at få adgang til enhedernes indbyggede widgets og funktioner,
- Værktøjer til at hjælpe med at udvikle, fejlfinde, analysere og disse projekter.
Målet er, at dette sæt værktøjer skal være lette nok at bruge for nybegyndere at bruge i en Django Girls-lignende setting; men kraftfuld nok til, at de kan bruges til at drive den næste Instagram, Pinterest eller Disqus.
Vigtigst af alt er det, at alt dette skal ske i et Open Source-fællesskab. Open Source-udviklingsprocessen har vist sig at være den mest pålidelige måde at udvikle robust og pålidelig software på, og det faktum, at alle kan få adgang til softwaren, betyder, at alle kan starte med det samme sæt fremragende værktøjer, hvad enten de er eksperter eller entusiastiske amatører.
Python overalt¶
Et moderne computerprojekt kan ikke ignorere den største udvikling inden for computere i de sidste 10 år. Python er stolt af at være et sprog på tværs af platforme. For 10 år siden betød det at være cross-platform at være tilgængelig til Windows, macOS og Linux. I dag er mobil computing meget vigtigere. På trods af dette er der ikke mange gode muligheder for Python-programmering på mobile platforme, og mobil kodning på tværs af platforme er stadig svær at finde.
BeeWare omfavner mobile og andre nye platforme (som ure og set-top-bokse) som en førsteklasses borger i computer-økosystemet - for for hvis folk har disse enheder, hvorfor skulle de så ikke kunne skrive software til dem i Python.
Indfødt overalt¶
Det er nemt at bruge temaer til at opnå cross-platform. Men det er nemt at at få øje på apps, der er bygget ved hjælp af temaer - det er dem, der ikke opfører sig helt som enhver anden app. Widgets ser ikke helt rigtige ud, eller der er en menulinje i et vindue i en OS X-app. Temaer kan komme ret tæt på tæt på - men der er altid tegn på det.
Dertil kommer, at indbyggede widgets altid er hurtigere end en generisk widget. Når alt kommer til alt, bruger du indbygget systemkapacitet, der er blevet tunet og optimeret, ikke en tegnemotor, der er lagt oven på en generisk en generisk widget.
Temaer går også glip af mange af de tilgængelighedsfordele, der er ved indbyggede platforme. Forfattere af moderne styresystemer bruger meget tid på at optimere mulighederne for mennesker med nedsat mobilitet, syn eller kognition. Hvis du bruger indbyggede widgets, får du får du normalt disse muligheder gratis. Hvis du genimplementerer widgets med et tema, skal du også genimplementere affordances.
BeeWare bruger indbyggede widgets og indbyggede funktioner i stedet for at bruge en temabaseret tilgang til applikationsudvikling.
Python-indfødt¶
BeeWare er også et kompromisløst "Python first"-framework. Vi kan godt lide
Python. Vi kan godt lide dets udseende og den måde, det fungerer på. Hvis Python
ikke er tilgængeligt som en førsteklasses mulighed på en bestemt platform, vil
vi gøre alt, hvad der er nødvendigt for at gøre Python tilgængeligt som
udviklingssprog. Og når vi har mulighed for at omfavne Python-idiomet til en API
eller et design, vil vi gøre netop det. Det betyder, at vi vil bruge
generatorer, kontekstadministratorer, yield from asynkrone opkald og mere for
at levere den bedste Python-native API til udvikling af apps på tværs af
platforme.
Vi ser også fremad - det betyder, at vi udelukkende understøtter Python 3 udelukkende.
Indfødt oplevelse¶
Oplevelsen af at bruge et hvilket som helst værktøj starter med installationsprocessen. En del af BeeWares "Native everywhere"-filosofi er at anvende passende indfødte mekanismer til installation. Hvis du bruger et user-space-værktøj, bør det præsenteres for dig som en pakke, der skal installeres på samme samme måde, som du ville installere ethvert andet værktøj - det være sig gennem en app butik, et installationsprogram eller en simpel eksekverbar pakke. Slutbrugerne bør ikke vide, at du har skrevet applikationen i Python.