Python在企业中的利弊

22

我一直在使用Python探索和开发商业银行领域中关键任务的应用程序。

银行在选择新应用程序时非常保守。

我需要真正稳定的证据和其他人的使用经验。

我已经查看了Python网站,但现在希望这个群体能告诉我更多信息。

到目前为止,我还没有开发银行合作伙伴,这是下一阶段所需的,因此我正在收集证据和介绍信息。感谢所有帮助和评论。


6
你读过这些问题中的任何一个吗?http://stackoverflow.com/search?q=%5Bpython%5D+enterprise - S.Lott
4
看过http://www.python.org/about/success/后,它没有完全回答你的问题,哪些方面不足? - S.Lott
1
S.Lott,我不会点击那个成功页面上的每个链接,但我没有看到单个关键任务企业系统,只是一堆应用程序。 - Dustin Getz
@Dustin Getz:我不清楚“企业系统”和“应用程序”的区别。你能提供一个清晰的定义或一个清晰定义的参考吗? - S.Lott
1
让我不敢认为Python(动态类型语言)适合这个的是这个简单的例子:amountInCents = amount * 100 如果amount是一个字符串,比如“1”,那么amountInCents = “1111111....11”。 - David d C e Freitas
显示剩余5条评论
10个回答

34

意大利银行(类似于美联储,但自欧元引入以来,所有使用欧元作为货币的国家,包括当然是意大利,都已将货币政策“外包”给了欧洲中央银行)正在使用Python,并对此非常满意,并计划扩展其使用。我要指向的谈话是用意大利语进行的,但是如果您在搜索作者时,我认为您可以找到他们的英语论文。

桑迪公司的FrontArena,一种广泛使用的“下一代跨资产交易”系统,使用Python(例如,请参见此处)。

这篇文章很好地总结了Python在银行业中的应用(截至几年前),并重点关注了伦敦金融城。

考虑到银行喜欢“不露声色”,我认为关于Python在银行业中使用的信息有这么多,真是令人惊讶-如果这些少数情况“泄漏”了出来,想象一下还有多少情况是保持低调的!-)


谢谢您的输入,它与我正在寻找的内容相符。Python成功页面上有一家在线旅行公司。它具有与主机接口的交易处理功能,但是从2004年开始。还有更有趣、更实质性的故事吗?以下一些被评为低分的评论反映了外界的糟糕思维,正是这些问题,以及其他问题,我希望能够解决。我正在寻找关键任务、交易处理,最好具有与主机接口的系统,各种形式的在线银行系统...如果没有,为什么没有呢? - dartdog
3
为什么不呢?对于一家公司来说,让员工花时间和精力解释他们如何在内部使用Python,并没有任何好处,所以正确的问题是,为什么会发生这样的支出呢?这是技术爱好者的奇迹!:-) 如果没有市场营销或共同营销的资金支持,就算再多也是不合理的。如果Develer(意大利)、Logilab(法国)等公司有机会,我可以帮你联系他们......但是,当然,他们没有空闲的时间进行毫无收益前景的免费营销!-) - Alex Martelli
有一个好消息,Python在我们这个极大的工程公司中逐渐受到重视,被用于小型项目和应用。我们的大型程序中集成了大量的自由开源软件(FOSS)——管理层理解并支持FOSS。但是,这些价值数十亿美元的大型程序并没有将FOSS作为其架构的核心——因为它的支持还不够完善。下面讨论的一个显著例外是Linux,但它得到了许多公司的大力支持。不幸的是,Python尚未得到足够的支持。你认为谷歌为什么会雇佣你、Guido和其他Python专家呢? - Dustin Getz
@Dustin,因为我们达到了Google工程师的招聘标准?-) 不要认为我们的面试比Java巨星(Josh Block等)、C++巨星(Matt Austern等)、Unix巨星(Thompson、Pike、Presotto等)、互联网巨头(Vint Cerf等)等任何人容易...;-) - Alex Martelli
达斯汀和亚历克斯,你们俩都清楚地了解这里的问题。大多数来自互联网的自由开源软件项目(我记得阿帕网),当贝尔实验室试图推广Unix时,我是霍尼韦尔的供应商。在这些和其他情况下,发生了各种里程碑事件,开始将这些发展带入商业接受领域。Python正处于临界点,但仍然主要是早期采用者。需要什么?只是时间吗? - dartdog
我认为有市场供企业在 Python 周围构建类似企业支持 Linux 的支持。如果发生这种情况,Python 在主要系统中的使用将会大幅加深。希望微软不会率先推出下一个杀手级环境。 - Dustin Getz

6
当然,你可以使用Python实现关键任务的软件(无论在你的情况下是什么)。最终,你的应用程序的成功将更多地取决于其能力,而不是它是否使用Python编写。有些.NET公司甚至会引入Python应用程序,只要有一种方法可以从.NET与系统通信。
我不会将你的应用程序营销为Python应用程序。这会给你带来麻烦,因为你将遇到障碍。当你满足业务客户并与他们的IT人员交谈时,这种情况经常发生,“哇,我们不能支持那个”而没有对企业成本效益进行全面分析。这就是关于在关键任务系统中使用Python的引用出现的地方。尽量避免这个领域。
使用Python,如果你在特定约束下构建应用程序,你总是可以针对流行的平台进行目标定位。IronPython运行在.NET上,Jython运行在Java上。能够回复如何在这些平台上运行应用程序的信息可能会有所帮助。

实际上,更准确地说,Python在所有平台上都可以正常运行,端口的真正原因有点让我困惑,似乎很有趣但基本上不相关。普通的Python与.NET和Java都能很好地配合使用。 - dartdog
它可以在许多操作系统上运行,但您需要在CPython运行时和Java JVM之间切换,这可能会在灵活性和性能方面产生成本。此外,支持JVM是在企业(银行)场景中获得认可的好方法。有很多机会与Java库进行纯互操作,如果您需要在JVM和CPython之间进行转换等,则不太好。 - Brian Lyttle
在 Ruby 的世界中有 JRuby。它的存在主要是为了让 Ruby 在企业场景中得到认可。Martin Fowler 在博客中谈到了这个问题以及 ThoughtWorks 的工作。他们正在与企业合作,而 JRuby 可以帮助他们获得更好的接入。 - Brian Lyttle

5

有一款在银行和对冲基金中广泛使用的著名应用程序叫做FrontArena。我相信这是用Python编写的。

此外,numpy数值处理库和简洁、清晰的语法意味着Python在金融领域的量化分析师(或quants)中非常流行。


FrontArena是用Python编写的。请访问http://www.python.org/community/jobs/index.html#harvey-nash-agency-switzerland查看Python职位信息。 - luc
前端的核心是用 C++ 编写的。Python 被广泛地用来扩展它。许多标准功能都是用 Python 实现的。 - hbn

3
CCP Games在他们的大型多人在线游戏中使用名为Stackless Python的版本,用于客户端和服务器。游戏的很大一部分基于市场/交易模拟,并准确地跟踪和报告每天数以百万计的物品上的数千次市场交易。这可能听起来很奇怪,但考虑到我的游戏玩家同伴们可以是多么善变和抱怨不已,决定在这种高可用性环境中使用Python应该算得上是一件好事。

2

如果需要,总有ResolverOne可以帮助你解决问题。


看起来是个不错的工具,有趣但并不是特别切题! - dartdog
1
这是一家基于Python的产品公司。对我来说,基于Python的产品提供似乎是使命关键的。 - S.Lott
我给你点赞。这是一个有用的答案。请在 MSDN Channel 9 上观看该公司所有者的视频。 - Brian Lyttle

2
Sungard的Front Arena在其系统架构中广泛使用Python。 这是一个交易楼层系统,在其领域具有相当大的市场份额。 是的,它被投资银行广泛使用。

1

这并不是十分充分的证明,但这篇博客概述了Google如何使用Python。

我认为Google比任何银行都更加“使命关键”。

除了上述链接之外,显然还有很多关于Google如何使用Python的资源。但如果能够索引几乎整个互联网的公司Google可以将Python作为核心语言,那么Python肯定符合银行的标准。


5
我认为谷歌比任何银行都更加“使命关键”,这可能是一个相当艰难的论点。 - recursive
也许“谷歌对Python的使用比任何银行都更关键”?或者,因为谷歌拥有垄断地位,整个世界更依赖搜索而不是资本流动? - S.Lott
2
如果一次谷歌搜索返回一个错误链接并不会发生什么特别糟糕的事情。然而,在金融世界中,即使有一个错误的结果也可能产生重大后果。 - MaxVT
@MaxVT:对“Google作为一家更具使命关键性的公司”的解释有很好的论据。如果这是@Mark Rushakoff真正想表达的话。 - S.Lott
谷歌如果出了差错也不会被起诉。 - Dustin Getz
显示剩余2条评论

0

我知道这个话题已经比较老了,但无论如何。 如果我们谈论关键任务。 Python 在 Thales 软件中被广泛使用,该软件提供硬件加密解决方案。 例如,在 PayShield 应用程序中也使用了 Python,我相信这是真正的关键任务。 尽管 Java 在那里的使用比 Python 更多。


nShield产品线的许多实用工具都是用Python编写的。不幸的是,我没有链接。 - Ol_dirty

-3

我再试一次。

我的雇主(我们很大)进行了一项研究,以解决内部关于要标准化到哪个“平台”的冲突。这些平台是根据技术深度、业务对齐和公司的可行性来评估的。赢得胜利的那个在技术上处于中等水平,但在业务对齐和公司的可行性方面却优越。客户并不关心技术细节;客户想要确保在未来4年内不会出现任何重大战略障碍,例如支持公司倒闭。

我在这个帖子中点击的所有链接都不是企业系统,它们都是应用程序。就我所见,除了Eve Online这个游戏之外,没有任何公司有勇气用Python编写关键任务的企业系统——停机时间不会导致任何人死亡或被起诉。


是的,这样更好。现在,这与Python有什么关系? - SilentGhost
1
让人们感到愉悦和舒适的是获得正确的业务对齐和公司可见性,但有时候选择技术属性是正确的。但并非总是如此。基于其他不同情境下的决策来做出自己的决策也是不好的。 - Brian Lyttle
1
“卓越的业务对齐和公司生存能力”?像康柏电脑(Compaq)?SCO?Data General?Sperry Rand?Burroughs?Univac?NCR? - S.Lott
兄弟,这是我非常尊敬的一位导演的原话。在发布这篇文章之前,我查阅了相关图表。 - Dustin Getz
2
@Dustin Getz:我相信这是一个准确的引用。我相信他们当时在考虑任何他们认为重要的标准时都是出于好意的。我认为“稳定性”在长期内似乎并不重要。事后看来,选择平台时使用单个供应商的“稳定性”可能不是一个好的选择理由。我建议,“单一供应商”也许是选择平台的一个不好的理由。 - S.Lott
显示剩余2条评论

-5

Python没有像微软(MSFT)或Redhat等公司那样大量的资金支持。如果Guido不幸意外身亡,Python就麻烦了。

我非常喜欢Python,但是一个金融交易系统可能需要一个真正可信、稳定的公司来支持它。

编辑:这不是挑衅;这是从观察一位同事推动由小公司支持的平台所得到的重要教训,以及由于商业策略问题而导致他的项目被放弃,转而选择使用一个质量差很多但有大量资金的项目。项目的成功不仅仅取决于技术方面。


2
像康柏公司、数字设备公司或太阳微系统这样的值得信赖的企业?它们在它们的时代都是行业领先、坚如磐石的投资。但现在,情况就不一样了。 - S.Lott
很明显,Python社区非常庞大,Guido被公交车撞到也不是问题,我相信Alex Martelli和其他人可以详细说明。 - dartdog
5
@dartdog,如果Guido被任何事情击中,对我个人来说(因为他是我的朋友),对他的家人和整个世界都是一场悲剧。当然,Python会继续发展(就像拉里·沃尔得了癌症但幸运地目前处于缓解期时Perl一样),可能会转向类似于Perl现在以及BSD和Apache长期采用的领导委员会模式。Linux在Thorvalds方面也处于类似的情况——长期以来,领导委员会一直在推动它,尽管这是通过Linus的委派完成的——这并没有阻止银行采用它,特别是自从IBM开始销售它以来! - Alex Martelli
这基本上是我的观点,特别是IBM开始推广它之后!我怀疑银行在Linux获得商业支持之前是否采用它作为关键任务系统。 - Dustin Getz
我开了一个新的问题来解决这个问题:http://stackoverflow.com/questions/1374114/present-state-of-enterprise-python - Dustin Getz
@Alex 我从未想过这个问题。Guido一直保持着Python的美观。如果他发生了什么事情,Python是否有PEP或其他强有力的计划? - orokusaki

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接