Zum Inhalt

Geschichte und Philosophie

Das BeeWare-Projekt begann mit einer einfachen Frage: Warum werden die Werkzeuge die wir als Python-Entwickler verwenden, nicht mit der gleichen Geschwindigkeit verbessert wie der Rest der Technologie, die wir täglich nutzen?

Python hat sich als äußerst leistungsfähige Sprache bewährt – für Neulinge leicht zugänglich, aber in den Händen von Experten äußerst leistungsstark. Python entwickelt sich rasch zu einem wichtigen Bestandteil der Datenanalyse, des wissenschaftlichen Rechnens und der Webentwicklung. Initiativen wie Django Girls haben gezeigt, dass es mit Python möglich ist, eintägige Schulungskurse anzubieten, in denen Menschen ohne Programmiererfahrung in Python eingeführt werden. Am Ende des Tages haben die Teilnehmer eine datenbankgestützte dynamische Website entwickelt und auf einem öffentlich zugänglichen Server bereitgestellt.

Die Entwicklererfahrung für jemanden, der Python schreibt, spiegelt jedoch manchmal eher die frühen 90er Jahre als das neue Jahrtausend wider. Die Standardentwicklungsumgebung für Python ist nach wie vor ein 80x25-Konsolenfenster. Für Benutzer, die aus einer Windows- oder Apple-Umgebung kommen und an hochdetaillierte, gut gestaltete grafische Oberflächen gewöhnt sind, kann dieser 30-jährige Rückblick eine völlig fremde Erfahrung sein.

Und, ja, es gibt IDEs (Integrated Development Environments), die eine native Anwendung zum Schreiben von Code bieten. Aber diese Werkzeuge erfordern, dass Sie die Sichtweise der IDE auf ein Projekt vollständig übernehmen Projekt zu übernehmen. Sie bereiten dem Entwicklungsprozess oft mehr Kopfzerbrechen als sie lösen.

Und so haben wir es mit einer interessanten Spaltung zu tun, zwischen dem "alten Weg" der Unix-Entwicklung in einem Konsolenfenster und dem "neuen Weg" der All-in-One IDEs.

Die Unix-Philosophie

Das muss jedoch nicht so sein. Der Kerngedanke der Unix-Philosophie lautet: „Jedes Tool erfüllt eine Aufgabe, und zwar gut.“ Diese Philosophie ist sehr wirkungsvoll und ermöglicht die Zusammenstellung extrem leistungsfähiger Toolchains, indem eine Reihe hochspezialisierter, unabhängiger Tools miteinander kombiniert werden.

Unglücklicherweise haben die meisten UNIX-Tools dies so ausgelegt, dass es auch bedeutet, dass alle Werkzeuge müssen eine Konsolenschnittstelle verwenden". Es gibt jedoch nichts in der UNIX-Philosophie, die besagt, dass Werkzeuge eine Konsolenschnittstelle verwenden müssen - es hat sich einfach so ergeben.

Das BeeWare-Projekt begann unter der Prämisse, dass wir das Beste aus beiden Welten haben können. beiden Welten. Wir können eine Kette von kompatiblen Tools haben, die jeweils eine Sache gut machen. Aber diese Werkzeuge können ihre Funktionalität auch über eine reichhaltigen grafischen Benutzeroberfläche.

Mehr als nur Code

Es geht aber um mehr als nur um den Code. Ein erfolgreiches Software-Projekt erfordert Dokumentation, Designkenntnisse, Feedback und Fehlerberichte. Die BeeWare Gemeinschaft erkennt an, dass alle Beiträge wichtig sind - nicht nur diejenigen, die als Pull-Request auf GitHub eingehen.

Selbst dann ist es leicht, ein Projekt im luftleeren Raum zu betrachten, als die Summe aller aller Beiträge. Aber das ist nie der Fall. Bei einem Open-Source-Projekt geht es um die Gemeinschaft.

Vielfalt und Inklusion

Eine vielfältige Gemeinschaft ist eine starke Gemeinschaft. Das bedeutet, Menschen zu akzeptieren aller Erfahrungsstufen, aller Hintergründe, aller Ethnien und Glaubensrichtungen, Ausrichtungen und Ausdrucksformen. Das BeeWare-Projekt setzt sich ein für eine integrative, vielfältige und einladende Gemeinschaft zu entwickeln und zu erhalten.

Um dies zu untermauern, bieten wir jedem, der sich als Mitwirkender engagieren möchte, offen unsere Unterstützung als Mentor an und haben einen Verhaltenskodex, der strikt durchgesetzt wird. Alle Meldungen über Verstöße gegen diesen Verhaltenskodex – auch von erfahrenen Community-Mitgliedern – werden mit Respekt behandelt und entsprechend geahndet.

Gesund und nachhaltig

Es ist auch wichtig sicherzustellen, dass die Gemeinschaft zugänglich und nachhaltig ist. nachhaltig ist. Es ist leider zu einem akzeptierten Teil der Open Source Open-Source-Kultur geworden, dass "echte" Open-Source-Projekte ausschließlich von von Freiwilligen entwickelt werden. Dies stellt für viele Gruppen eine Einstiegshürde dar - die die einzigen Leute, die ihre Freizeit mit Freiwilligenarbeit verbringen können, sind diejenigen, die freie Zeit haben.

Es führt auch häufig zu Burnout und anderen psychischen Problemen bei den Mitwirkenden. Die Tatsache, dass Depressionen, Angstzustände und Burnout in Softwareentwicklungs-Communities so häufig vorkommen, sollte nicht als Ehrenzeichen oder als Beweis für das Engagement eines Entwicklungsteams angesehen werden. Es handelt sich um ein Problem, das direkt angegangen und genauso behandelt werden muss wie ein Softwarefehler – mit sofortigen Workarounds und langfristigen Plänen zur Beseitigung der systemischen Ursache des Problems.

Auch wenn wir den Beitrag der Freiwilligen sehr schätzen, wissen wir wissen wir auch, dass ehrenamtliche Arbeit allein nicht ausreicht, um eine gesunde und nachhaltige Gemeinschaft zu entwickeln. Aus diesem Grund ist die finanzielle finanzielle Nachhaltigkeit ein wichtiger Aspekt bei der Durchführung des BeeWare Projekts. Als Gemeinschaft ignorieren wir nicht die Rolle, die Geld spielen muss um die Ressourcen bereitzustellen, die es den Menschen ermöglichen, einen beitragen. Wir werden als Gemeinschaft akzeptierte Mechanismen bereitstellen für ihre Arbeit auf sinnvolle Art und Weise zu monetarisieren, und wo immer wo immer möglich, Menschen für ihre Arbeit entschädigen - ohne die Ideale der Open-Source-Entwicklung zu gefährden.

Das Ziel

Das Endziel des BeeWare-Projekts: Für mobile und Desktop-basierte Software das zu tun und Desktop-Benutzersoftware das Gleiche zu tun, was Django für Web-Software Software getan hat - den Benutzern eine Reihe von Werkzeugen und Bibliotheken an die Hand zu geben die es ihnen ermöglichen, reichhaltige, native Benutzeroberflächen zu entwickeln und auf ihre Geräte zu übertragen. Dies beinhaltet:

  • Tools, mit denen Python auf verschiedenen Geräten ausgeführt werden kann,
  • Tools zum Verpacken eines Python-Projekts, damit es auf diesen Geräten ausgeführt werden kann,
  • Bibliotheken für den Zugriff auf die nativen Widgets und Funktionen von Geräten,
  • Tools zur Unterstützung bei der Entwicklung, Fehlerbehebung und Analyse dieser Projekte.

Das Ziel ist, dass diese Werkzeuge einfach genug sind, um von Neulinge in einer Django-Girls-ähnlichen Umgebung zu verwenden; aber leistungsfähig dass sie das nächste Instagram, Pinterest oder Disqus vorantreiben können. Disqus.

Am wichtigsten ist jedoch, dass all dies im Rahmen einer Open-Source-Gemeinschaft geschehen soll. Der Open-Source-Entwicklungsprozess hat sich als der zuverlässigste Weg erwiesen zuverlässigste Art und Weise, robuste und zuverlässige Software zu entwickeln, und die Tatsache, dass Software zugreifen kann, bedeutet, dass jeder mit denselben mit den gleichen hervorragenden Werkzeugen beginnen kann, egal ob er Experte oder begeisterter Amateur ist.

Python überall

Ein modernes Computerprojekt kann die größte Entwicklung der letzten der letzten 10 Jahre ignorieren. Python rühmt sich damit, eine plattformübergreifende Sprache zu sein. Vor 10 Jahren bedeutete plattformübergreifend zu sein für Windows, macOS und Linux verfügbar zu sein. Heutzutage ist die mobile Datenverarbeitung viel wichtiger. Trotzdem gibt es nicht viele gute Optionen für die Python-Programmierung auf mobilen Plattformen, und plattformübergreifende mobile Programmierung ist immer noch schwer zu fassen.

BeeWare betrachtet mobile und andere neue Plattformen (wie Uhren und Set-Top-Boxen) als Bürger erster Klasse des Computer-Ökosystems - denn denn wenn die Leute diese Geräte haben, warum sollten sie nicht in der Lage sein Software für sie in Python zu schreiben.

Überall heimisch

Es ist einfach, Themes zu verwenden, um plattformübergreifend zu arbeiten. Allerdings ist es leicht zu erkennen Anwendungen zu erkennen, die mit Themes erstellt wurden - es sind diejenigen, die sich nicht wie jede andere App verhalten. Widgets sehen nicht ganz richtig aus, oder es gibt eine Menüleiste in einem Fenster in einer OS X-Anwendung. Themes können ziemlich nahe kommen - aber es gibt immer verräterische Anzeichen.

Außerdem sind native Widgets immer schneller als ein themenbezogenes generisches Widget. Schließlich verwenden Sie native Systemfunktionen, die und optimiert wurde, und nicht eine Zeichen-Engine, die über ein generisches Widget gelegt einem generischen Widget.

Themes lassen auch viele der Zugänglichkeitsvorteile von nativen Plattformen vermissen. Die Autoren moderner Betriebssysteme verbringen viel Zeit damit, die Möglichkeiten für Menschen mit mit eingeschränkter Mobilität, Sehkraft oder Kognition. Wenn Sie native Widgets verwenden, erhalten Sie erhalten Sie diese Erleichterungen in der Regel umsonst. Wenn Sie Widgets mit einem Theme neu implementieren einem Thema, müssen Sie auch die Erleichterungen neu implementieren.

BeeWare verwendet systemeigene Widgets und systemeigene Funktionen, anstatt einen themenbasierten Ansatz für die Anwendungsentwicklung.

Python-nativ

BeeWare ist auch ein kompromissloses „Python first”-Framework. Wir mögen Python. Wir mögen sein Aussehen und seine Funktionsweise. Wenn Python auf einer bestimmten Plattform nicht als erstklassige Option verfügbar ist, werden wir alles Notwendige tun, um Python als Entwicklungssprache verfügbar zu machen. Und wenn wir die Möglichkeit haben, Python-Idiome für eine API oder ein Design zu nutzen, werden wir genau das tun. Das bedeutet, dass wir Generatoren, Kontextmanager, yield from asynchrone Aufrufe und mehr verwenden werden, um die beste Python-native API für die plattformübergreifende App-Entwicklung bereitzustellen.

Wir blicken auch in die Zukunft - das bedeutet, dass wir ausschließlich Python 3 ausschließlich.

Einheimische Erfahrung

Die Erfahrung bei der Verwendung eines Tools beginnt mit dem Installationsprozess. Teil der BeeWare-Philosophie "Native everywhere" ist die Übernahme geeigneter native Mechanismen für die Installation. Wenn Sie ein User-Space-Tool verwenden, sollte es Ihnen als Paket präsentiert werden, das Sie auf die gleiche Weise installieren installieren ist - sei es über einen App-Store, einen Installer oder eine Store, ein Installationsprogramm oder ein einfaches ausführbares Paket. Die Endbenutzer sollten nicht wissen, dass Sie die Anwendung in Python geschrieben haben.