Historia i filozofia¶
Projekt BeeWare rozpoczął się od prostego pytania: Dlaczego narzędzia których używamy jako programiści Pythona nie rozwijają się w tym samym tempie, co reszta technologii, której używamy na co dzień?
Python sprawdził się jako język o szerokich możliwościach – przystępny dla początkujących, ale potężny w rękach ekspertów. Python szybko staje się ważną częścią analizy danych, obliczeń naukowych i tworzenia stron internetowych. Inicjatywy takie jak Django Girls pokazały, że dzięki Pythonowi można zorganizować jednodniowe szkolenie, które wprowadza osoby bez doświadczenia w programowaniu do języka Python, a pod koniec dnia uczestnicy opracowują i wdrażają dynamiczną stronę internetową opartą na bazie danych, umieszczoną na publicznie dostępnym serwerze.
Jednak doświadczenia programistów piszących w języku Python czasami bardziej przypominają wczesne lata 90. niż nowe tysiąclecie. Domyślnym środowiskiem programistycznym dla języka Python nadal jest okno konsoli o wymiarach 80x25. Dla użytkowników pochodzących ze środowiska Windows lub Apple, gdzie są przyzwyczajeni do bardzo szczegółowych, dobrze zaprojektowanych interfejsów graficznych, ten 30-letni powrót do przeszłości może być zupełnie obcym doświadczeniem.
I tak, istnieją IDE (zintegrowane środowiska programistyczne), które zapewniają natywne środowisko aplikacji do pisania kodu. Ale te narzędzia wymagają hurtowego przyjęcia sposobu patrzenia na projekt przez IDE. projekt. Często wprowadzają tyle samo problemów do procesu rozwoju niż rozwiązują.
I tak, pozostajemy z interesującym rozłamem pomiędzy "starym" sposobem Uniksa w oknie konsoli, a "nowym sposobem" programowania w jednym IDE.
Filozofia Unixa¶
Jednak nie musi tak być. Podstawową zasadą filozofii Unixa jest to, że „każde narzędzie robi jedną rzecz, ale robi ją dobrze”. Jest to bardzo potężna filozofia, która umożliwia tworzenie niezwykle wydajnych łańcuchów narzędzi poprzez łączenie zestawu wysoce wyspecjalizowanych, niezależnych narzędzi.
Niestety, większość narzędzi UNIX przekonała się, że oznacza to również "wszystkie narzędzia muszą używać interfejsu konsoli". Nie ma jednak nic w filozofii UNIX, które mówi, że narzędzia muszą używać interfejsu konsoli - po prostu tak się stało. Po prostu tak się stało.
Projekt BeeWare rozpoczął się od założenia, że możemy mieć to, co najlepsze z obu światów. obu światów. Możemy mieć łańcuch komponowalnych narzędzi, z których każde robi jedną jedną rzecz. Ale te narzędzia mogą również ujawniać swoją funkcjonalność za pomocą bogatego graficznego interfejsu użytkownika.
Więcej niż tylko kod¶
Chodzi jednak o coś więcej niż tylko kod. Udany projekt oprogramowania wymaga dokumentacji, umiejętności projektowych, informacji zwrotnych i raportów o błędach. Społeczność BeeWare uznaje, że wszystkie wkłady są ważne - nie tylko te nie tylko te, które pojawiają się jako pull request na GitHub.
Nawet wtedy łatwo jest myśleć o projekcie w próżni, jako o sumie wszystkich wkładów. wszystkich wkładów. Ale tak nigdy nie jest. Projekt open source jest o społeczności.
Różnorodność i integracja¶
Zróżnicowana społeczność to silna społeczność. Oznacza to akceptację ludzi na wszystkich poziomach doświadczenia, ze wszystkich środowisk, wszystkich ras, wyznań, orientacji i ekspresji. Projekt BeeWare jest zaangażowany w rozwijania i utrzymywania integracyjnej, zróżnicowanej i przyjaznej społeczności.
Aby to potwierdzić, mamy otwartą ofertę mentoringu dla każdego, kto chce zaangażować się jako współpracownik, oraz Kodeks postępowania, który jest rygorystycznie egzekwowany. Wszelkie zgłoszenia dotyczące naruszeń tego kodeksu postępowania – nawet przez starszych członków społeczności – będą traktowane z szacunkiem i odpowiednio rozpatrywane.
Zdrowy i zrównoważony¶
Ważne jest również, aby upewnić się, że społeczność jest dostępna i zrównoważona. zrównoważona. Niestety, stało się to akceptowaną częścią kultury Open Source. że "prawdziwe" projekty Open Source muszą być rozwijane całkowicie przez wolontariuszy. Stanowi to barierę wejścia dla wielu grup - jedynymi osobami, które są w stanie poświęcić swój wolny czas, są jedynymi osobami mogącymi poświęcić swój wolny czas na wolontariat są te, które mają wolny czas.
Często prowadzi to również do wypalenia zawodowego i innych problemów związanych ze zdrowiem psychicznym wśród współpracowników. Fakt, że depresja, lęk i wypalenie zawodowe są tak powszechne w społecznościach zajmujących się tworzeniem oprogramowania, nie powinien być traktowany jako powód do dumy ani dowód zaangażowania zespołu programistów. Jest to problem, którym należy się zająć bezpośrednio, tak samo jak w przypadku błędów w oprogramowaniu — poprzez natychmiastowe rozwiązania tymczasowe i długoterminowe plany usunięcia systemowej przyczyny problemu.
Chociaż przykładamy ogromną wagę do wkładu wolontariuszy, wiemy również, że wiemy również, że same wysiłki wolontariuszy nie są sposobem na rozwój zdrowej i zrównoważonej społeczności. Z tego powodu stabilność finansowa jest kluczową kwestią w funkcjonowaniu projektu BeeWare. projektu. Jako społeczność nie ignorujemy roli, jaką muszą odgrywać pieniądze w dostarczaniu zasobów, które umożliwiają ludziom rozpoczęcie i kontynuowanie wnosić swój wkład. Jako społeczność zapewnimy zaakceptowane mechanizmy dla w znaczący sposób monetyzować swoją pracę, a tam, gdzie to możliwe, wynagradzać ludzi za ich pracę. możliwe, wynagradzać ludzi za ich pracę - bez narażania na szwank ideałów rozwoju Open Source.
Cel¶
Końcowy cel projektu BeeWare: Być w stanie zrobić dla oprogramowania mobilnego i desktopowego to samo, co Django zrobiło dla oprogramowania webowego. - oddanie w ręce użytkowników zestawu narzędzi i bibliotek które umożliwiają im tworzenie bogatych, natywnych interfejsów użytkownika i wdrażanie ich na na swoich urządzeniach. Obejmuje to:
- Narzędzia umożliwiające uruchamianie języka Python na różnych urządzeniach,
- Narzędzia do pakowania projektu Python, aby mógł działać na tych urządzeniach,
- Biblioteki umożliwiające dostęp do natywnych widżetów i funkcji urządzeń,
- Narzędzia pomagające w tworzeniu, debugowaniu i analizowaniu tych projektów.
Celem jest, aby ten zestaw narzędzi był wystarczająco łatwy w użyciu dla początkującym użytkownikom w środowisku podobnym do Django Girls; ale na tyle potężny na tyle potężny, że będzie mógł być użyty do stworzenia kolejnego Instagrama, Pinteresta czy Disqus.
Co najważniejsze, wszystko to ma być realizowane przez społeczność Open Source. Proces rozwoju Open Source udowodnił, że jest najbardziej niezawodnym sposobem tworzenia solidnego i niezawodnego oprogramowania, a fakt, że każdy może uzyskać dostęp do oprogramowania oznacza, że każdy może zacząć od tego samego zestawu tego samego zestawu doskonałych narzędzi, niezależnie od tego, czy jest ekspertem, czy entuzjastycznym amatorem.
Python wszędzie¶
Nowoczesny projekt komputerowy nie może ignorować największego rozwoju w w informatyce w ciągu ostatnich 10 lat. Python szczyci się tym, że jest językiem międzyplatformowym. 10 lat temu bycie wieloplatformowym oznaczało bycie dostępne dla systemów Windows, macOS i Linux. Obecnie komputery mobilne są znacznie ważniejsze. Mimo to, nie ma zbyt wielu dobrych opcji programowania w Pythonie na platformy mobilne. Python na platformach mobilnych, a wieloplatformowe kodowanie mobilne jest wciąż nieuchwytne.
BeeWare obejmuje platformy mobilne i inne wschodzące platformy (takie jak zegarki i set-top-boxy) jako pierwszorzędnego obywatela ekosystemu komputerowego - ponieważ ponieważ jeśli ludzie mają te urządzenia, dlaczego nie mieliby być w stanie pisać dla nich oprogramowania w Pythonie.
Wszędzie rodzimy¶
Łatwo jest używać motywów, aby osiągnąć wieloplatformowość. Jednak łatwo jest zauważyć aplikacje, które zostały zbudowane przy użyciu motywów - są to te, które nie zachowują się jak każda inna aplikacja. Widżety nie wyglądają właściwie, lub pasek menu w oknie aplikacji OS X. Motywy mogą być blisko - ale zawsze są jakieś znaki ostrzegawcze.
Co więcej, natywne widżety są zawsze szybsze niż tematyczne widżety ogólne. widget. W końcu używasz natywnych możliwości systemu, które zostały dostrojony i zoptymalizowany, a nie silnik rysowania, który został nałożony na ogólnego widżetu.
Motywy pomijają również wiele korzyści związanych z dostępnością, jakie oferują platformy natywne. Autorzy nowoczesnych systemów operacyjnych spędzają dużo czasu na dostosowywaniu udogodnień dla osób z niepełnosprawnością ruchową, wzrokową lub poznawczą. Jeśli korzystasz z natywnych widżetów zazwyczaj otrzymujesz te udogodnienia za darmo. Jeśli ponownie zaimplementujesz widżety motywem, musisz również ponownie zaimplementować udogodnienia.
BeeWare wykorzystuje natywne widżety i natywną funkcjonalność, zamiast używać podejścia tematycznego do tworzenia aplikacji.
Natywny dla języka Python¶
BeeWare jest również frameworkiem, który bez wahania stawia Python na pierwszym
miejscu. Lubimy Python. Podoba nam się jego wygląd i sposób działania. Jeśli
Python nie jest dostępny jako opcja pierwszej klasy na danej platformie, zrobimy
wszystko, co konieczne, aby udostępnić Python jako język programowania. A kiedy
mamy okazję wykorzystać idiom Pythona w API lub projekcie, po prostu to robimy.
Oznacza to, że będziemy używać generatorów, menedżerów kontekstu,
asynchronicznych wywołań yield from i innych elementów, aby zapewnić najlepsze
natywne API Pythona do tworzenia aplikacji wieloplatformowych.
Patrzymy również w przyszłość - oznacza to, że obsługujemy wyłącznie Python 3 wyłącznie.
Doświadczenie rodzime¶
Korzystanie z dowolnego narzędzia rozpoczyna się od procesu instalacji. Częścią filozofii BeeWare "Native everywhere" jest przyjęcie odpowiednich natywnych mechanizmów instalacji. Jeśli korzystasz z narzędzia działającego w przestrzeni użytkownika, powinno być prezentowane jako pakiet, który należy zainstalować w taki sam sposób, w jaki w taki sam sposób, w jaki zainstalowałbyś każde inne narzędzie - czy to za pośrednictwem sklepu z aplikacjami, instalatora czy sklep z aplikacjami, instalator lub prosty pakiet wykonywalny. Użytkownicy końcowi nie powinni wiedzieć, że aplikacja została napisana w Pythonie.