為什麼我們要開源我們的 Python 平台
Anvil 團隊最近開源了 Anvil App Server, 一個用於託管完全用 Python 構建的 Web 程序的運行時引擎。
社區的反應十分積極,我們 Anvil 團隊已經將許多反饋納入了我們的 下一個版本。但是我們不斷被問到的問題是,「為什麼你們選擇開源這個產品的核心呢?」
我們為何創造 Anvil
Anvil 是一個可以使得構建 Web 應用更加簡單的工具。我們讓你們有能力僅使用一種語言—— Python —— 就可以來構建你的整個應用。
在 Anvil 之前,如果你想要構建一個 Web app,你需要寫很多代碼,用很多的技術,比如 HTML、Javascript、CSS、Python、SQL、React、Redux、Bootstrap、Sass、Webpack 等。這需要花費很長時間來學習。對於一個簡單的應用便是這樣子;相信我,一般的應用其實 更加複雜。
![A complex framework of development tools needed for a simple web app](/data/attachment/album/202106/29/041259blruibu8cmmm6emf.png "A complex framework of development tools needed for a simple web app")
是的。對於一個簡單的 web 應用便是需要如此多的技術。
但即使如此,你還沒有完成!你需要了解有關 Git 和雲託管提供商的所有信息、如何保護(很有可能是)Linux 操作系統、如何調整資料庫,然後隨時待命以保持其運行。一直如此。
因此,我們開發出了 Anvil,這是一個在線 IDE,你可以在用 拖放編輯器 來設計你的 UI 界面,用 Python 編寫你的 邏輯,然後 Anvil 會負責其餘的工作。我們將所有的繁雜的技術棧進行了替換,只用 Python 就行啦!
簡單的 Web 託管很重要,但還不夠
Anvil 還可以為你託管你的應用程序。為什麼不呢?部署 Web 應用程序非常複雜,因此運行我們自己的雲託管服務是提供我們所需的簡單性的唯一方法。在 Anvil 編輯器中構建一個應用程序,單擊按鈕,它就在網上發布了。
但我們不斷聽到有人說,「那太好了,但是……」
- 「我需要在沒有可靠互聯網接入的海外平台上運行這個應用。」
- 「我想要將我的應用程序嵌入到我售出的 IoT 設備中」
- "如果我把我的寶都壓到你的 Anvil 上,我怎麼能確定十年後我的應用仍然能夠運行呢?」
這些都是很好的觀點!雲服務並不是適合所有人的解決方案。如果我們想為這些用戶提供服務,就必須有一些方法讓他們把自己的應用從 Anvil 中取出來,在本地運行,由他們自己完全控制。
開源是一個逃生艙,而不是彈射座椅
在會議上,我們有時會被問到,「我可以將它導出為 Flask+JS 的應用程序嗎?」 當然,我們可以將 Anvil 項目分別導出為 Python 和 JavaScript —— 我們可以生成一個伺服器包,將客戶端中的 Python 編譯為 Javascript,然後生成一個經典的 Web 應用程序。但它會有嚴重的缺點,因為:代碼生成是一個彈射座椅。
![Code generation is an ejector seat from a structured platform](/data/attachment/album/202106/29/041259rtzu3zw1yze2212u.jpg "Code generation is an ejector seat from a structured platform")
生成的代碼聊勝於無;至少你可以編輯它!但是在你編輯該代碼的那一刻,你就失去了生成它的系統的所有好處。如果你使用 Anvil 是因為它的 拖放編輯器 和 運行在瀏覽器中的 Python,那麼你為什麼必須使用 vim 和 Javascript 才能在本地託管你的應用程序?
我們相信 逃生艙,而不是彈射座椅。所以我們選擇了一個正確的方式——我們 開源了 Anvil 的運行引擎,這與在我們的託管服務中為你的應用程序提供服務的代碼相同。這是一個獨立的應用程序;你可以使用文本編輯器編輯代碼並在本地運行。但是你也可以將它直接用 git
推回到我們的在線 IDE。這不是彈射座椅;沒有爆炸性的轉變。這是一個逃生艙;你可以爬出來,做你需要做的事情,然後再爬回來。
如果它開源了,它還可靠嗎
開源中的一個看似矛盾的是,它的免費可用性是它的優勢,但有時也會產生不穩定的感覺。畢竟,如果你不收費,你如何保持這個平台的長期健康運行?
我們正在做我們一直在做的事情 —— 提供一個開發工具,使構建 Web 應用程序變得非常簡單,儘管你使用 Anvil 構建的應用程序 100% 是你的。我們為 Anvil 應用程序提供託管,並為 企業客戶 提供整個現場開發和託管平台。這使我們能夠提供免費計劃,以便每個人都可以將 Anvil 用於業餘愛好或教育目的,或者開始構建某些東西並查看它的發展。
得到的多,失去的少
開源我們的運行引擎並沒有減少我們的業務 —— 它使我們的在線 IDE 在今天和未來變得更有用、更值得信賴。我們為需要它的人開放了 Anvil App Server 的源代碼,並提供最終的安全保障。對於我們的用戶來說,這是正確的舉措 —— 現在他們可以放心地進行構建,因為他們知道開源代碼 就在那裡,如果他們需要的話。
如果我們的開發理念與你產生共鳴,何不親自嘗試 Anvil?
這篇文章改編自 Why We Open Sourced the Anvil App Server,經許可重複使用。
via: https://opensource.com/article/20/7/why-open-source
作者:Meredydd Luff 選題:lujun9972 譯者:zepoch 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive