【问题标题】:Issues when writing a medium/large system编写中/大型系统时的问题
【发布时间】:2011-05-04 06:28:53
【问题描述】:

像 Python(我非常喜欢)和 Ruby 这样的语言有一些炒作,但我正在用 Python 编写一个中等规模的系统,并且觉得缺少一些工具,如果我使用 Java 的话:Eclipse 特性、JUnit 集成和一些语言功能,例如在编译时捕获一些错误。

有人说 Java 作为一门语言已经死了。但是大型重要软件是用 Java 编写的:Hadoop、Lucene 和许多其他软件。

对于此类中型/大型基础设施软件,Java 是否比 Python 或 Ruby 更好?

【问题讨论】:

  • “更好”的语言?更好是指更快吗?更贵?更大的运行时内存占用? “更好”是什么意思?

标签: java python ruby system enterprise


【解决方案1】:

您说 Java 更适合企业软件是有道理的。这就是 Java 的真正亮点:它非常适合企业编程。

但是,您对 Python 和 Ruby 中的工具的抱怨是没有根据的。 PyDev for Eclipse 充分利用了您在 Java 中开发时会喜欢的相同功能。 Ruby 有一个类似的 Eclipse 插件。 pyunit、nose 等单元测试框架适用于两种语言(我相信 PyDev 支持单元测试)。此外,就像 Java 编译器会在编译时捕获错误一样,Python 脚本会在您运行它之前给出语法错误,以及 (IMO) 比 Java 编译器更容易理解的错误系统。

由于 Python 和 Ruby 是脚本语言,它们的专业领域更多地在于小型任务、快速开发以及使用 Django 或 Rails 等框架。所以,是的,像 Java 这样的重载语言非常适合企业,但 Python 和 Ruby 的优雅和易用性还有一些话要说。

【讨论】:

  • @S.洛特:我说错了。我使用了问题作者使用的一些语言,当“系统”他真正的意思是“企业”时。不管怎样,已经更正了
  • “Java 更适合企业软件”?如果没有“企业”的定义,这个答案似乎并不是特别有用。你能通过定义“企业”来扩展它吗?
  • 有争议的意见传入:“企业软件”在我的世界中转化为 =>“更少的编码,更多的技术集成”,本质上是从现成的部件“组装”软件,而不是发明它们。坦率地说,我在 7 年的 Java 经验中从未见过这个概念,并且在我的整个职业生涯中曾在 10 多个组织中工作过。
  • “Java 更适合企业软件”只是因为在企业界没有人会因为选择 Java 而责怪您,即使情况不妙。使用 python 或 ruby​​,您会发现自己每天都会因每个小故障(可悲但真实)而质疑您的选择十次。
  • @Paulo:这是政治的一部分,也是现有框架的一部分
【解决方案2】:

真的很重要。您知道 Python/Ruby 中的一些特性使它们成为比 Java 更具吸引力的产品。静态类型在大多数情况下可能是你最好的朋友,而对其他人来说则是痛苦的。

缺乏工具与采用有关。 Java/c# 的采用率更高。

公司/企业和大中型组织喜欢通过合同而非技术优势采购解决方案。

根据经验,Python 确实存在一些速度问题,我无法评论 Ruby,但我想如果您的应用程序需要专门的速度,我不会使用 python。

另外,线程和多核处理不如python中的那么好,虽然2.7似乎改善了很多老问题,但我认为GIL问题仍然存在于线程。

我对 Java 的唯一评论是它现在有 Oracle 支持,并且根据您的位置以及您对 Oracle 的喜爱程度,可能会改变您对 Java 的态度。特别是如果您为开源解决方案设计。

【讨论】:

  • 我会在一周中的任何一天用人力来换取性能,因为现在硬件比开发人员便宜。
  • @Paulo:完全同意。能够[几乎]直接解决问题(这个概念在 Ruby 中应用非常广泛,而在 Java 中则更少)是一个高效的开发人员。我们得到报酬是为了提高生产力,对吗? ;)
  • 非常重要,在某种程度上,所有语言都是平等的,有些语言比其他语言更容易做某事。如果您精通您的语言,那么大多数时候结果看起来是一样的。它的所有秋千和回旋处。我做了几种语言,每种语言都有各自的优点和缺点。目前让我感兴趣的是F#。完全的范式转变,让我保持警觉:)
【解决方案3】:

这类问题可能会引起很大争议......对于企业软件来说,大多数时候关键因素是政治因素,而不是技术因素。

如果您拥有业务,请坚持使用最符合您愿景的技术。如果没有,请使用 Java - 它在政治上更安全。

在技术领域,几乎是平手。

【讨论】:

  • +1:由于问题中未定义“更好”,因此它是主观的。由于它声称“缺少一些工具”和“Java 已死”,它也是 争论性
猜你喜欢
  • 2011-11-19
  • 1970-01-01
  • 2012-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-26
  • 1970-01-01
相关资源
最近更新 更多