Anvil 团队最近开源了 Anvil App Server,这是一个完全用 Python 构建的 Web 应用程序的运行时引擎。
社区的反应非常积极,我们在 Anvil 已经将许多反馈融入到我们的 下一个版本 中。但是我们一直被问到的问题之一是:“你们为什么选择开源如此核心的产品部分?”
我们为什么创建了 Anvil
Anvil 是一种工具,可以尽可能简单地构建 Web 应用程序。我们通过让您使用一种语言(Python)构建整个应用程序来实现这一点。
在 Anvil 之前,如果您想构建一个 Web 应用程序,您必须使用许多技术(如 HTML、Javascript、CSS、Python、SQL、React、Redux、Bootstrap、Sass、Webpack 等)编写代码。这有很多东西要学习。而这只是一个简单的应用程序;相信我,它可能会更加复杂。

是的,真的。所有这些,都只是为了一个简单的 Web 应用程序。
但即便如此,您还没有完成!您需要了解关于 Git 和云托管提供商的所有知识,如何保护(很可能是)Linux 操作系统,如何调整数据库,然后您还需要随时待命以保持其运行。永远。
因此,我们构建了 Anvil,一个在线 IDE,您可以使用 拖放式设计器 构建您的 UI,并用 Python 编写所有逻辑,然后 Anvil 会处理剩下的事情。我们用“只需编写 Python”取代了整个摇摇欲坠的技术栈。
简单的 Web 托管很重要,但还不够
Anvil 也可以为您托管您的应用程序。为什么不呢?部署 Web 应用程序非常复杂,因此运行我们自己的云托管服务是提供我们所需简单性的唯一方法。在 Anvil 编辑器中构建一个应用程序,点击一个按钮,它就可以在 Internet 上运行了。
但是我们一直听到人们说,“这太棒了,但是……”
- “我需要在没有可靠互联网连接的离岸平台上运行它。”
- “我想将我的应用程序打包到我销售的 IoT 设备中。”
- “如果我把鸡蛋放在这个篮子里,我怎么能确定十年后我仍然可以运行我的应用程序?”
这些都是很好的观点!云服务并不适合所有人。如果我们想为这些用户服务,就必须让他们能够将他们的应用程序从 Anvil 中取出并在本地运行,完全在他们自己的控制之下。
开源是逃生舱,而不是弹射座椅
在会议上,我们有时会被问到,“我可以将其导出为 Flask+JS 应用程序吗?” 当然,可以将 Anvil 项目导出为相应的 Python 和 JavaScript——我们可以生成一个服务器包,将客户端 Python 编译为 Javascript,并生成一个经典的 Web 应用程序。但这会有严重的缺点,因为:代码生成是弹射座椅。

(图片 以公共领域许可)
生成的代码总比没有好;至少你可以编辑它!但是,一旦您编辑了该代码,您就失去了生成它的系统的所有好处。如果您使用 Anvil 是因为它的 拖放式编辑器 和 浏览器中的 Python,那么为什么您必须使用 vim 和 Javascript 才能在本地托管您的应用程序呢?
我们相信逃生舱,而不是弹射座椅。因此,我们以正确的方式做到了这一点——我们开源了 Anvil 的运行时引擎,它与在我们的托管服务中为您的应用程序提供服务的代码相同。这是一个独立的应用程序;您可以使用文本编辑器编辑代码并在本地运行它。但是您也可以 git push
将其推回到我们的在线 IDE 中。这不是弹射座椅;没有爆炸性的过渡。这是一个逃生舱;您可以爬出去,做您需要做的事情,然后爬回来。
如果它是开源的,它可靠吗?
开源中看似矛盾的一点是,它的免费可用性是它的优势,但也有时会造成不稳定的感觉。毕竟,如果您不收费,您如何长期保持这个平台的正常运行和健康?
我们正在做我们一直以来都在做的事情——提供一种开发工具,它可以大大简化 Web 应用程序的构建,尽管您使用 Anvil 构建的应用程序 100% 属于您。我们为 Anvil 应用程序提供托管,并为 企业客户 提供整个开发和托管平台。这使我们能够提供免费计划,以便每个人都可以将 Anvil 用于爱好或教育目的,或者开始构建一些东西并看看它的发展方向。
收益更多,损失更少
开源我们的运行时引擎并不会损害我们的业务——它使我们的在线 IDE 在今天和未来都更加有用和值得信赖。我们为需要它的人开源了 Anvil App Server,并提供了最终的保险策略。这对我们的用户来说是正确的举措——现在他们可以充满信心地进行构建,因为他们知道开源代码就在那里,随时可用。
如果我们的开发理念与您产生共鸣,为什么不亲自尝试一下 Anvil 呢?
-----
这篇文章改编自 我们为什么开源 Anvil App Server 并已获得许可重复使用。
1 条评论