企业Python的商业案例

9
这不是一个“编程”问题,而是一个更多关于技术/平台的问题。我正在尝试弄清楚 Python 是否可以成为企业/网络应用程序的合适替代品。
在哪些情况下使用 Python 比 Java 更加理想?一般的 Python 网络应用程序(数据库/会话/并发)与典型的 Java 应用程序相比如何表现?特定的 Python 框架与基于 Java 的框架(Spring、SEAM、Grails 等)相比如何?
对于企业来说,从 Java 基础设施转向 Python 基础设施是否太难/昂贵/资源密集/不可行?此外,请解释一下为客户提供基于 Python + Google AppEngine 的解决方案的商业案例。在典型情况下,这是否具有成本效益?
如果我提出了太广泛的问题,很抱歉,我本来想让它更具体,但我需要您的帮助,从程序员、服务提供公司和最终商业客户的角度评估 Python 作为一个整体。
对于中小企业来说,Python/GoogleAppEngine 技术栈是一个明确的可扩展和经济实惠的平台。但是对于已经在 Java 上投入大量资金的大型跨国公司呢?
谢谢您。我正在自己进行研究,并很乐意在这里分享我的结论!
谢谢, Srirangan
5个回答

14

一家已经拥有了大量 Java 技术投资的企业应该将 jython 添加到他们的技术组合中——可以逐渐和渐进地采用,首先用于辅助功能,如测试、"一次性" 数据迁移等,新功能的原型设计,在某些情况下,使用一些现有的开源 Python 库显然非常方便等等——随着公司中众多 Java 开发人员学习使用 Jython,一些原型将直接以 Jython 代码形式投入生产,因为重编码它们没有任何优势,某些需要重新编写的旧子系统将被重新编写为 Jython 等等。

抛弃一个庞大且正常运行的代码库以及它所代表的巨大投资从来不是明智的决定——Python 的优势包括其丰富的强大的、生产级别的实现,它们与其他技术的良好结合,以及 Python 可以逐渐和增量式地渗透到几乎任何开发商店。


2
你是在“Terabucks”买咖啡的吗? :) - PaulMcG

4
你投资于现有技术的金额越大,摆脱它所需的成本就越高。COBOL可能是最好的例子。
这种投资不仅包括移植现有解决方案,还包括重新培训或雇佣新员工,以便您具备构建和支持新技术的技能,同时仍然维护您的遗留解决方案。
此外,对于大多数跨国公司而言,软件并不是他们的核心业务。只要它有效地发挥作用并满足业务需求,他们就不太关心“细节”。
你需要提供一些非常有说服力的好处来克服这种惯性。
悲哀但却真实。

1

如果您需要使用Django可以做的事情,那么Django和Python绝对是您想要的。Google App Engine 也可以运行Django。因此,您可以创建一个Django应用程序并将其托管在Google App Engine上,稍后更改主意并切换到传统的服务器托管或自己托管(如果您有自己的服务器)。

我还没有尝试过Google App Engine,但我的理解是,与所得到的东西相比,价格相当合理。Google的IT部门非常出色地保持着他们的数据中心运转;如果您将托管外包给Google App Engine,您就知道您的数据已备份,您知道服务器不会崩溃,即使挖掘机将整个Google数据中心从互联网上拿走,其他Google数据中心仍将向您的客户提供应用程序服务。您还知道,如果您的应用程序突然变得非常受欢迎,Google App Engine将自动扩展以处理负载。(我认为您设置了最大支付限制,它会扩展直到达到限制。但是,正如我所说,我没有使用过它,也不确定。)

我还没有使用过Java,但从我所见到的来看,Python是一种更具表现力的语言,熟练的Python编程人员可以在一天内完成更多的工作,因为这门语言更好。然而,如果您已经投资于Java并且拥有Java的内部专业知识,那么您会因为一夜之间放弃它而感到疯狂。正确的做法是选择一个新项目来尝试一下那个疯狂的Python。

我真的很推荐Django。您可以获取Django书籍并尝试教程。如果您在Python中的第一个试点项目是Django项目,那么您应该会轻松地完成。


Django很棒。但GAE+Django就不太好了,因为GAE并没有完全支持使Django非常方便的许多功能。OP正在询问任何情况下使用内部硬件解决的问题类型,这使得GAE不是答案。 - Paul McMillan
另外,我喜欢Python,但如果你没有使用过Java,请不要背口号式地重复别人说的话,这只会让你看起来很糟糕。 - Paul McMillan
原始! steveha想要一个饼干! <-- 这就是模仿。请具体指出我模仿了别人听到的内容的部分。请注意,我说“从我所见到的”...我是根据自己的经验进行争论的。与Java相比,Python需要更少的代码行,大多数人都认为这有助于提高生产力。另请参阅:http://pythonconquerstheuniverse.wordpress.com/category/java-and-python/ - steveha
@Paul,如果GAE实际上并不完全支持Django的许多功能,那就是重要信息,值得注意。我的想法仍然正确吗?即将一个GAE应用程序移动到Django的传统托管上会很容易吗?如果Django是GAE的适当超集,那么这应该可以实现,但如果GAE缺少Django的其他功能,它将无法正常工作。我需要编辑我的答案以删除任何不正确的内容吗? - steveha

1
你的问题的答案是肯定的。Python非常适合企业,因为它是一种具有原始力量、灵活性和可以与其他编程语言粘合的语言。企业真正需要的是一种可以做任何事情的语言,我认为Python已经准备好了。如果你想要例子,那么我相信没有比谷歌更好的例子了。谷歌在其关键业务应用程序内部和外部都在运行Python。唯一的问题是Python并没有被顶级跨国公司很好地认可,作为Python程序员,我们很难说服管理团队。我猜你也会面临同样的问题。但我保证,一旦你开始接触Python,你就会理解它的真正力量。

0

几乎没有任何技术选择的可用“商业案例”。

“那么对于已经在Java上投入了大量资金的大型跨国公司呢?” 问问周围的人。看看是否有Java的商业案例。

我怀疑你会找不到任何东西。 大多数公司缓慢地转向技术选择。

COBOL没有商业案例 - 在旧时代,它是唯一的选择。

很少有Java的商业案例。通常情况下,一些有远见的个人开始构建第一个网站(可能是用Perl)。 “网络事物”获得了推广,一些有远见的个人开始使用Java构建网站。 最终,这些小团队的成功表明Java比COBOL更具优势。

管理者说“制定商业案例”的话,但要看看他们实际做了什么。 他们听取(1)同行的意见,(2)成功人士的意见。

要为Python制定“商业案例”,您必须成为那个有远见的个人。

1)使用Python。

2)取得成功。

3)分享您的成功经验。

4)准备好解释您的成功是由于您的工具,而不是您个人的天赋和魅力。


一门语言肯定有商业案例。我们的开发人员是否具备适当的知识,是否有(新的)开发人员可用于该语言?我们是否可以轻松地与我们的其他软件堆栈进行互操作(例如LDAP集成),还是我们需要自己重新发明这个轮子?对于商业案例来说,真正有趣的不是技术本身,而是对该技术的使用和支持。 - extraneon
@extraneon:所有这些都是有趣的问题。但是,这些问题并没有以定量的“商业案例”的方式用于做出任何语言使用决策。相反,语言使用决策是基于先前的成功而缓慢发生的。看看任何组织中Java的采用情况。找到“商业案例”文档。这非常非常罕见。 - S.Lott

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