关于 Python 等动态类型语言的一个错误观念认为它们用于构建企业级应用还不太可靠。然而,几乎所有的商业和政府机构都已经或多或少使用 Python 了,无论是作为不同的应用程序之间的粘合代码还是构建应用程序本身。
企业软件是为机构的需求而非个人的需要创建的。为企业编写的软件通常需要与历史遗留系统, 例如现有的数据库和单机应用程序进行整合。通常也需与轻量级目录访问协议 (LDAP) 和活动目录 (AD)这样的认证系统整合。
机构开发企业软件,包含大量的定制需求以适应其运营模式的具体需要。 因此,由于组织内部不同派系之间 为争取软件能优先解决其各自的需求而罔顾他人的斗争,往往会导致软件开发过程变得异常复杂。
因企业软件建设过程涉及到许多利益相关者而产生的复杂局面,导致了大量的预算以及由机构中非技术人员 执行的过度审查。而这些非技术人员通常在编程语言和框架的选择上妄加评断--而他们是不应该做出技术设计决策的。
传统大型机构使用静态类型语言如 C++、 .NET 和 Java 构建企业软件。上世纪80年代和90年代的大公司, 如微软、Sun 和 甲骨文将这些语言标榜为”企业级“语言进行市场销售。其直接后果是,其它语言受到了冷落, 并被看作不适应 CIO 的艰难技术环境。除了 Java、C++ 和 .NET,其它语言都被认为是有风险的, 因而不值得投资使用。
此外,在 20 世纪 90 年代,”脚本语言“如 Python、Perl 和 Ruby 都还不够强大, 因为他们的核心标准库都仍处在开发阶段。像 Django、Flask 以及 Rails (Ruby 语言) 这样的框架还没有产生。 那时的网络还刚刚开始, 大多数企业应用还只是 Windows 系统上的桌面应用程序。 而 Python 根本不适合用于那样的环境。
从本世纪初到现在,许多动态类型语言及其生态系统有了很大的发展,而且在某些方面往往超越了其它生态系统。 Python、 Ruby 以及其它之前被冷落的语言现在有了更广阔并且维护良好的开源生态系统, 它们受到独立开发者和大公司的支持,包括微软、IBM、谷歌、Facebook、Dropbox、Twilio等等。
Python的开源库,特别是针对Web开发和数据分析的那些代码, 对于任何语言来说,都是维护良好功能完备的典范。
同时,一些传统的企业软件开发语言如 Java 因受主要企业支持者投资不足影响,已经衰落了。 当 Oracle 于2009 年收购 Sun 时, 在 Java 中增加新的语言特性以升级到 Java 7 的计划已被拖了很多一段时间。 Oracle 还在 Java 安装包中捆绑了不需要的广告软件, 而 Python 社区绝不会容忍这种情况发生,因为这门语言是开源的,并不受某一公司控制。
其他的生态系统,如微软的 .NET 平台则发展的较好。微软在整个新世纪的早期阶段对 .NET 平台 进行了持继投资以促进及发展。
然而,微软的企业产品,它们的应用程序服务器和相关软件往往有昂贵的许可费用。此外, 微软也是开源运动的主要支持者,尤其对于 Python 来说, 他们的 Visual Studio Python 工具集 提供了一流的开发环境。
最终的结果是企业软件开发在过去的几十年中发生了翻天覆地的变化。CIO和技术管理人员, 如果想继续为他们的业务侧客户提供商业价值的话, 不再能忽视 Python 及伟大的开源社区在企业软件开发领域所取得的进展了。
Python广泛用于大型企业组织,但代码通常不作为开源提供。 如果您遇到适合此列表的项目,请联系我告诉我们:
由美国政府机构消费者金融保护局 (CFPB) 主导的 Collab 是一个为大型机构服务的企业内联网及协作平台。 该项目目前已投入运行,并被成千上万的 CFPB 员工使用着。
Pants 是一个针对大型机构软件项目的构建系统, 这些项目通常包含许多个由不同的编程语言编写的子项目。
以下文章介绍了在处理标准 Python 开发时经常未讨论的企业开发主题。
“Talk Python to Me”的第四集采访了 PayPal 在企业Python和大型项目上的首席开发人员。 他们谴责围绕 Python 的许多神话,涉及大型项目,包括变量输入系统和可扩展性。
在16小时内构建和部署企业 Django Web App 包括一个开发人员在构建和部署 Python 和 Django 企业应用程序的经验研究。
Mozilla 的 Enterprise InfoSec 资源是编程语言无关的, 但对于试图理解企业安全域所带来的所有术语的开发人员非常有用。
企业IT的终结 是一篇引人入胜的文章,实际上并没有特别谈论 Python,而是展示了如何像 ING 银行那样的 大型企业 IT 部门必须改进其结构,流程和工具,以成功发布软件。诸如 Python 之类的编程语言 更有可能用于这些更新的多语言和 DevOps 驱动的环境中。
CIO 期刊上有很多篇靠谱的揭密文章,如这篇 Python 企业开发概述 和这篇为什么动态语言在企业开发中占有越来越多的份额。
JavaWorld 上有一篇很有趣的文章叫 Python 进军企业软件开发之路。
我在 2014 年 DjangoCon 上讲了如何用 Django 解决企业的5个问题,内容覆盖如何在大型机构中使用 Python 和 Django。
这篇 StackExchange 答案详细阐述了企业软件与传统软件的区别。
这篇 Reddit 上的 Python 主题文章企业中的 Python 值得一读,里面有针对在企业环境中 Python 对比 Java 和 .NET 的更广泛观点。
为什么企业这么慢?并非特定于 Python, 而是关于监管,文化和财务原因讲述为什么大公司经常这么慢。
Fix errors in your Python code before your users see them by monitoring with Rollbar.
Deploy web apps with the Ansible configuration management tool.
Build microservices with Docker, Flask & React in this great course.