我們可以從180多個成功發(fā)布的Python軟件案例中學(xué)到什么。
我很高興地發(fā)布一些很棒的Python應(yīng)用程序,這是一個手工整理的180多個項目的列表,所有這些都是:
1.帶有在線源代碼倉庫的免費軟件。
2.用Python實現(xiàn)它們的大部分功能。
3.眾所周知的,或至少在一個特定領(lǐng)域中非常流行。
4.在相關(guān)平臺上持續(xù)維護(hù)或仍然運行良好。
5.已經(jīng)打包好的應(yīng)用程序,而不是庫或框架。
這個軟件列表主要專注于那些不需要使用pip或PyPI安裝的軟件,其受眾大多不是開發(fā)人員。本列表收集了很多這樣的軟件,當(dāng)然還有少數(shù)是例外的,具體數(shù)量請查看此列表(地址:https://github.com/mahmoud/awesome-python-applications#awesome-python-applications)。
那么,我為什么要花費數(shù)周時間來歸類整理這些開源Python應(yīng)用程序呢?
除了節(jié)日的喜悅,還有三大原因。
目錄
目標(biāo)#1:更好的開發(fā)周期
目標(biāo)#2:更完整的Python生產(chǎn)循環(huán)
目標(biāo)#3:構(gòu)建Python生態(tài)基礎(chǔ)
接下來的步驟
目標(biāo)#1:更好的開發(fā)流程
從我開始討論Python打包問題以來,人們就一直在問我,哪種打包技術(shù)最適合他們的軟件。這一次又一次地讓我感到震驚,如果不搞清楚交付的基礎(chǔ)問題,那么人們開發(fā)程序的時候能走多遠(yuǎn)?在探索這個問題時,我遇到了一個更基本的問題:
為什么那么多人從基本原理開始(博客文章和Stack Overflow)構(gòu)建應(yīng)用程序?
Python難道不是軟件界鼎鼎大名的名字之一嗎?不是有許多成功的、實際應(yīng)用的應(yīng)用程序是用Python編寫的嗎?你的應(yīng)用程序完全獨特的機會有多大?
因此,出色的Python應(yīng)用程序?qū)嶋H上是為回答棘手的開發(fā)問題開辟了一個新的流程。
在構(gòu)建應(yīng)用程序時,掃描此列表以找到那些最符合你的項目需求的項目。然后,使用該應(yīng)用程序作為回答自己問題的指南。這對于有關(guān)架構(gòu)、部署和測試的抽象問題尤其有效。
回到學(xué)校,我從MediaWiki源代碼中學(xué)到的架構(gòu)和軟件開發(fā)知識比從任何課程中學(xué)到的都多。它一直激勵著我直到今天。APA是實現(xiàn)面向?qū)嶋H用戶的工作應(yīng)用程序的整體教育的下一步。
簡而言之,雖然我們可能沒有時間來編寫它們,但是每個生產(chǎn)應(yīng)用程序都抵得上1000篇博客文章。
目標(biāo)#2:更完整的Python生產(chǎn)循環(huán)
我們Python程序員也是軟件用戶。但與其他軟件用戶不同的是,我們知道如何將問題歸檔,甚至可能對我們選擇的應(yīng)用程序做出重大貢獻(xiàn)。
如果可能的話,選擇Python軟件,我們就更接近于參與其中。對于未來的應(yīng)用程序開發(fā)人員來說,還有什么更好的入門方法呢?
我很愿意看到更多的開發(fā)人員與他們沒有意識到是用Python開發(fā)的軟件產(chǎn)生聯(lián)系。當(dāng)我知道我最喜歡的應(yīng)用程序之一, Deluge,大量使用twisted后,這極大地鼓舞了我對Twisted做出貢獻(xiàn)。使用自由軟件會創(chuàng)造更多的自由軟件。
目標(biāo)#3:構(gòu)建Python生態(tài)基礎(chǔ)
隨著科技的發(fā)展,軟件越來越復(fù)雜。底層實現(xiàn)開發(fā)人員與應(yīng)用程序開發(fā)人員已經(jīng)分離開來,隨著時間的推移,這將導(dǎo)致更糟糕的軟件。當(dāng)應(yīng)用程序得不到開發(fā)人員的關(guān)注時,這個問題就更加復(fù)雜了。大多數(shù)APA條目都有兩位數(shù)或者三位數(shù)的關(guān)注,除非該軟件的目標(biāo)用戶是很專業(yè)的技術(shù)人員。APA中的軟件很少由PyPI分發(fā),因此下載統(tǒng)計數(shù)據(jù)也不能幫助我們。即使有幫助,底層庫的關(guān)注數(shù)據(jù)也遠(yuǎn)不如應(yīng)用軟件的數(shù)據(jù)好看。同時,由于自由軟件項目不能離開大量的捐贈或會議贊助,因此這些底層庫由于難以宣傳,又進(jìn)而導(dǎo)致了經(jīng)濟(jì)上難以為繼。
這些應(yīng)用程序代表了Python的免費和有生命力的部分中最好的部分。它們不僅是實用和自豪的源泉,而且在精神和實踐上需要我們的支持。我真誠地希望APA將有助于Python社區(qū)關(guān)注實用應(yīng)用程序的開發(fā)。
具體來說,這意味著什么?敏銳的眼睛會注意到列表是如何進(jìn)行結(jié)構(gòu)化的。這不僅是為了保持一致性,也是一次對數(shù)據(jù)集API的嘗試。我們必須考慮到庫和應(yīng)用程序之間的關(guān)系,并且來探索我們的生態(tài)系統(tǒng)。
我知道我在這里有點冒險,度量標(biāo)準(zhǔn)并不是一切,但是將Python FOSS生態(tài)系統(tǒng)作為科學(xué)發(fā)布框架的模擬來探索將是非常有趣的。我們是否可以通過將庫視為“文章”,將應(yīng)用程序視為“期刊”來獲得或多或少的開發(fā)人員赫芬達(dá)爾指數(shù)(h-index)?添加一些應(yīng)用程序用戶基礎(chǔ)近似值(通過社會替代計量學(xué)和其他方法)可以讓我們更深入地了解實際應(yīng)用的效果。
接下來的步驟
如果這篇文章看起來比我通常寫的短,那是因為它確實是對列表本身的介紹。在進(jìn)行研究的過程中,我被幾個項目的代碼庫纏住了,你也會被纏住的。
如果我們錯過了一個項目,請在GitHub上開啟一個問題或PR。如果你和我一樣對此感到興奮,可以考慮幫助解決一些懸而未決的問題。仍然有許多應(yīng)用程序特性需要研究:許可證、Python版本、框架等等。和往常一樣,關(guān)注本博客(和代碼倉庫)的更新,因為我們會有更多的發(fā)現(xiàn)!
英文原文:https://sedimental.org/awesome_python_applications.html
譯者:浣熊君( ????? )