跳轉到

歷史與哲學

BeeWare 計畫是從一個簡單的問題開始的:為什麼 為什麼我們 Python 開發人員所使用的工具,沒有像我們日常使用的其他技術一樣,以相同的速度不斷改進? 我們日常使用的其他技術一樣?

Python 已證明自身為一種能力卓越的語言——對新手而言易於入門,在專家手中卻能展現強大威力。Python 正迅速成為數據分析、科學計算與網頁開發領域的重要支柱。 諸如Django Girls等計畫更證明:透過 Python 技術,能為零程式設計經驗者開設一日速成課程;學員在課程結束時,已能開發並部署出具備資料庫支援的動態網站,且成功上線至公開可見的伺服器。

然而,對於編寫 Python 程式的人而言,開發體驗有時更像是重返九〇年代初期,而非新千禧年。Python 的預設開發環境至今仍是 80x25 像素的控制台視窗。對於來自 Windows 或 Apple 環境的使用者——他們習慣了高度精緻、設計完善的圖形介面——這種三十年的時光倒流,無疑是種完全陌生的體驗。

是的,有一些 IDE(整合開發環境)能夠提供編寫程式碼的原生應用程式體驗。 為編寫程式碼提供原生應用程式體驗。但這些 工具需要您全盤採用 IDE 看待專案的方式。 專案的方式。它們通常會為開發過程帶來許多令人頭痛的問題。 的問題。

因此,在控制台視窗的 Unix 開發「舊方式」與 All-in-one 的「新方式」之間,出現了有趣的分裂。 控制台視窗的 Unix 開發方式,與多合一 IDE 的「新方式 IDE 的 「新方式」。

Unix哲學

然而,情況未必如此。Unix哲學的核心信條在於「每項工具只專注做好一件事」。這套哲學極具力量,透過整合一系列高度專注且獨立的工具,得以構築出極其強大的工具鏈組合。

不幸的是,大多數 UNIX 工具都將此理解為「所有工具都必須使用主控台介面」。 工具必須使用主控台介面」。然而,在 UNIX 哲學中並沒有規定工具必須使用主控台介面。 它只是變成這樣而已。

BeeWare 專案開始的前提是,我們可以擁有最好的 兩全其美。我們可以擁有一連串可組合的工具,每種工具都能很好地完成一件事。 事情。但這些工具也可以使用豐富的圖形化使用者介面來揭露其功能。 豐富的圖形化使用者介面。

不僅僅是程式碼

不過,這不只是程式碼的問題。一個成功的軟體專案 需要文件、設計技巧、反饋和錯誤報告。BeeWare社區 BeeWare 社群認為所有的貢獻都是重要的,而不僅僅是在 GitHub 上的拉取請求。 而不僅僅是GitHub上的拉取請求。

即使如此,我們還是很容易把專案視為真空,視為所有貢獻的總和。 所有貢獻的總和。但情況絕非如此。開放原始碼專案是 關於社群。

多元與包容

多元化的社區才是強大的社區。這意味著接納 來自不同背景、不同種族、信仰、取向和表達方式的人、 取向和表達方式的人。BeeWare 項目致力於 發展並維持一個包容、多元、熱忱的社區。

為此,我們提供開放式指導計劃,歡迎任何有意成為貢獻者的參與者加入,並嚴格執行一套行為準則。任何違反該準則的舉報——即使涉及資深社群成員——都將受到尊重並獲得妥善處理。

健康且可持續

同樣重要的是,要確保社區的可及性和可持續性。 可持續性。不幸的是,「真正的」開放源碼專案必須完全由自己開發,這已經成為開放源碼文化的一部分。 文化的一部分。 由志願者開發。這對於許多社群來說,是一個入門的障礙。 只有那些空閒時間的人,才有能力花他們的空閒時間做義工。 空閒時間的人。

這也經常導致貢獻者出現倦怠及其他心理健康問題。軟體開發社群中抑鬱、焦慮與倦怠如此普遍的事實,不應被視為榮譽徽章,或證明開發團隊有多麼投入。 這是一個必須正面應對的問題,其處理方式應如同解決軟體漏洞——既要立即實施應急方案,更需制定長遠計劃以根除問題的系統性根源。

雖然我們非常重視志工的貢獻,但我們也知道 雖然我們非常重視志工的貢獻,但我們也知道單靠志工的努力並不能發展一個 健康和可持續發展的社區。因此 可持續性是 BeeWare 項目運作的關鍵考慮因素。 專案運作的重要考量。作為一個社區,我們不會忽視金錢在提供資源 的作用。 貢獻。作為一個社群,我們將提供可接受的機制讓 個人以有意義的方式將他們的工作金錢化,並在可能的情況下 在可能的情況下,為人們的工作提供報酬 - 而不損害開放原始碼開發的理想。 開放原始碼開發的理想。

目標

BeeWare 專案的最終目標:能夠為行動和 軟體所做的事情一樣。 軟件所做的事情一樣 - 為用戶提供一套工具和庫 讓使用者能夠開發豐富的原生使用者介面,並部署到他們的裝置上。 部署到他們的設備上。這包括

  • 使 Python 能於不同裝置上執行的工具,
  • 將 Python 專案打包成可在這些裝置上執行的工具,
  • 用於存取裝置原生元件與功能的函式庫,
  • 協助開發、除錯、分析及維護這些專案的工具。

我們的目標是讓這套工具簡單易用,讓新手也能在類似 Django Girls 的環境中使用。 新手在類似 Django Girls 的環境中使用;但功能又夠強大,可以用來推動下一個 Instagram、Pinterest 或 強大到可以用來推動下一個 Instagram、Pinterest 或 Disqus。

最重要的是,它的目標是以開放原始碼社群的方式完成這一切。 開放原始碼開發程序已證明是開發強大且可靠軟體的最 開放原始碼開發程序已被證明是開發強大且可靠軟體的最可靠方式,而且 任何人都可以存取軟體,這意味著每個人都可以從同一套優異的工具開始。 任何人都可以存取軟體的事實,意味著每個人都可以從同一套優異的工具開始,不論是專家或熱情的業餘人士。

Python無處不在

現代運算專案不能忽略過去 10 年來運算領域最大的發展。 的發展。Python 以自己是一種 跨平台語言而自豪。10 年前,跨平台意味著 適用於 Windows、macOS 和 Linux。如今,行動運算 更加重要。儘管如此,在行動平台上的 Python 程式設計在行動平台上並沒有太多好的選擇,而且跨平台的行動編碼 仍然難以實現。

BeeWare 將行動和其他新興平台(如手錶和機頂盒)視為計算生態系統中的一等公民。 機頂盒)作為計算生態系統中的一等公民–因為如果人們擁有這些設備,為什麼他們不可以使用BeeWare呢? 因為如果人們擁有這些裝置,為什麼他們不可以 用 Python 寫軟體。

原生於任何地方

使用主題很容易實現跨平台。但是,很容易 發現使用主題建立的應用程式 - 這些應用程式的 它們的行為與其他應用程式不太一樣。小工具看起來不太*對、 或者在 OS X 應用程式的視窗上有菜單列。主題可以很 但總會有一些蛛絲馬跡。

除此之外,原生的 widget 總是比主題通用的 widget 更快。畢竟,您使用的是經過調整和最佳化的原生系統功能,而不是在其上層疊加的繪圖引擎。 經過調整和最佳化的原生系統能力,而不是在一般 widget 上層疊的繪圖引擎。 通用 widget 之上的繪圖引擎。

主題也錯過了許多原生平台的無障礙優點。 現代作業系統的作者花了很多時間為行動不便、視力或認知能力受損的人調整功能。 行動不便、視力或認知能力受損的人。如果您使用原生小工具 通常可以免費獲得這些功能。如果您使用 主題,您也必須重新實作負擔能力。

BeeWare 使用原生小工具和原生功能,而不是使用 基於主題的應用程式開發方法。

Python 原生

BeeWare 亦是毫不掩飾的「Python 優先」框架。我們鍾愛 Python,鍾愛其語法美感與運作邏輯。若特定平台未將 Python 列為首選開發語言,我們必將竭盡所能使其成為可用的開發選項。 當我們有機會在 API 或設計中採用 Python 慣用語時,我們必定如此實踐。這意味著我們將運用生成器、上下文管理器、yield from 形式的非同步呼叫等技術,為跨平台應用開發提供最優質的 Python 原生 API。

我們也放眼未來 - 這表示我們完全支援 Python 3。 完全支援。

原生體驗

任何工具的使用體驗都是從安裝過程開始的。 BeeWare 「原生無處不在 」理念的一部分就是採用適當的 原生機制進行安裝。如果您使用的是用戶空間工具、 如果您使用的是用戶空間工具,它應該作為一個安裝包呈現給您。 安裝任何其他工具的方式一樣 - 無論是透過應用程式商店、安裝程式或 商店、安裝程式或簡單的可執行套件。終端使用者不應該 知道您是用 Python 寫的應用程式。