【问题标题】:Agents: Why is the majority of agent work done in java? [closed]代理:为什么大部分代理工作都是在 java 中完成的? [关闭]
【发布时间】:2009-10-28 13:08:58
【问题描述】:

为什么大多数代理研究和工作都是用 Java 完成的?开发人员似乎完全避开 .net 框架是有原因的,还是因为 .net 比 Java 更商业化,研究人员没有谈论它?

【问题讨论】:

  • repast 开发时不存在 .NET Express 版本,Java 易于扩展,并且对于使用 Terracotta 和类似的 map-reduce 技术跨越机器的非常大的模拟作业非常有用。

标签: java .net agent


【解决方案1】:

关于为什么使用 Java 的一个假设:研究人员主要受雇于大学。研究人员通常不编写代码——靠拉面为生的研究生为他们编写代码。大多数大学只是普通 java 程序员的工厂。因此,大多数研究都是用 Java 完成的。

关于为什么不使用 .NET 的另一个假设:暂时不考虑 Mono,.NET 与 Microsoft 的操作系统相关联。研究中心提供的工作环境很可能没有运行 Microsoft 操作系统/实用程序。

这当然与商业可行性无关 - Java 与 .NET 一样“商业”,就其价值而言。

【讨论】:

    【解决方案2】:
    1. JVM 是跨平台的。
    2. Java 有很好的并发 编程支持。
    3. 广泛的第 3 方库,用于 几乎所有可以想象的东西。

    【讨论】:

    • 2 - .net 也是如此。 3 - .net 也是如此。不过我同意 1。
    • .Net 没有与 Java 相同级别的 3rd 方库。您还应该在第 3 点的广泛后添加“免费”一词。
    【解决方案3】:

    .net (MS) 需要投资购买操作系统和开发平台的许可证。 Java (Sun) 和目标操作系统基本上是免费的(您为支持付费),经过企业验证并且该语言广泛传播。

    基于代理的编程在扩展场景中很重要。在 .net (MS) 上横向扩展意味着投入大量资金!

    【讨论】:

    • 这不是真的。微软学术关系计划是一个巨大的免费赠品。你只需要申请,他们就会免费向你扔出比你能处理的更多的软件。只是,人们懒得问。 (显然这只适用于大学)
    • 是的 - 但即使您可以免费获得它 - 还有很多工作要做。您必须发送文件并通过一个流程才能获得批准。一旦您获得批准,您仍然需要管理您对 MSDN Academic Alliance 的订阅并管理您的软件的许可证。 “懒惰”和厌恶额外不必要的工作是有区别的。 :)
    • 如果您的研究取得了成功,并且如果您想从研究中创建业务案例,那么您将不会被微软困住。 Java 的可访问性要好得多,Java 通常用于教育。让你的学生.net (MS) 准备好要困难得多(这真的很难过)。我希望 Mono 得到更多关注!
    【解决方案4】:

    显而易见的答案是,Java 是免费的(就像啤酒一样),您愿意花时间在任何事情上。除了硬件,您还可以运行 Linux(或 Open Solaris 等)、免费 JVM、大量免费 API - 这是文化的一部分,免费鼓励免费。

    Microsoft 生态系统更像是随用随付的环境。许多在 Java 世界中免费的工具在 Microsoft 世界中只有付费选项。

    在研究领域,那里有大量薪酬过低的研究生,人力成本要便宜得多,因此商业许可工具节省人力的表面上的好处并没有那么大。除此之外,可能需要一个研究项目在广泛分布的机器上运行。当这种情况发生在商业环境中时,商业实体正在赚钱(例如,一家电子商务公司需要增加其集群中的机器数量 - 他们正在获得更多流量、更多销售、更多资金,以便他们可以消费增加基础设施)。在研究中,商业软件增加的许可要求不一定符合其潜在的经济性。

    总而言之,Java 获得了偏好。一旦发生这种情况,它就会成为每个人都在谈论的工具,而且效果会滚雪球,以至于 .NET 被排挤。

    当然你会发现以上所有的例外,但关键是它勾勒了趋势。

    【讨论】:

      猜你喜欢
      • 2016-11-17
      • 2020-01-14
      • 2011-08-19
      • 1970-01-01
      • 1970-01-01
      • 2011-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多