代理:为什么大部分代理工作都是用 java 完成的?
为什么大部分代理研究和工作都是用 Java 完成的?开发人员似乎完全避开 .net 框架是否有原因,或者是因为 .net 比 Java 更商业,所以研究人员没有讨论它?
Why is most of the agent research and work done in Java? Is there a reason that the developers seem to have completely steered clear of .net framework or is it that it just doesn't get talked about among researchers as the .net is more commercial than Java?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
关于为什么使用 Java 的一个假设是:研究人员大多受雇于大学。研究人员通常不编码——靠拉面为生的研究生为他们编码。大多数大学只是普通 Java 程序员的工厂。因此,大多数研究都是用 Java 完成的。
关于为什么不使用 .NET 的另一个假设:暂时忽略 Mono,.NET 与 Microsoft 的操作系统紧密相关。研究中心提供的工作环境很可能不运行 Microsoft 操作系统/实用程序。
它肯定与商业可行性无关——就其价值而言,Java 与 .NET 一样“商业”。
One hypothesis on why Java is used: Researchers are mostly employed in universities. Researchers typically don't code - grad students living on ramen noodles code for them. Most universities are just factories for run of the mill java programmers. Ergo, most research gets done in Java.
Another hypothesis on why .NET isn't used: Disregarding Mono for a moment, .NET is tied to Microsoft's OSs. Chances are likely that the work environments provided by research centers aren't running Microsoft OSs / utilities.
It most certainly doesn't have to do with commercial viability - Java is just as "commercial" as .NET, for what it's worth.
编程支持。
几乎所有能想到的事情。
programming support.
nearly everything conceivable.
.net (MS) 需要投资操作系统和开发平台的许可证。 Java (Sun) 和目标操作系统基本上是免费的(您需要支付支持费用),经过企业验证并且该语言得到广泛传播。
基于代理的编程在扩展场景中很重要。在 .net (MS) 上横向扩展意味着需要大量投资!
.net (MS) requires invests in licences for the operating system and development platform. Java (Sun) and target operating systems are basically for free (you pay for support), enterprise proven and the language is widely spread.
Agent based programming matters in scaling scenarios. Scaling out on .net (MS) means to invest a lot!
显而易见的答案是,对于您愿意投入时间的任何事物,Java 都是免费的(就像啤酒一样)。除了硬件之外,你还可以运行Linux(或Open Solaris等)、免费的JVM、大量的免费API——这是文化的一部分,免费鼓励免费。
微软生态系统更像是一种按需付费的环境。许多在 Java 世界中免费的工具在 Microsoft 世界中只有付费选项。
在研究领域,有大量工资过低的研究生,人力便宜得多,因此商业许可工具节省人力的表面效益并没有那么大。此外,研究项目可能需要在广泛分布的机器上运行。当这种情况发生在商业环境中时,商业实体正在赚钱(例如,一家电子商务公司需要增加其集群中的机器数量 - 他们获得更多的流量、更多的销售额、更多的钱,这样他们就可以花增加基础设施)。在研究中,商业软件许可要求的增加并不一定因其基本经济原理而合理。
总而言之,Java 更受青睐。一旦发生这种情况,它就会成为每个人都在谈论的工具,其影响就会像滚雪球一样,最终导致 .NET 被挤出去。
当然,您会发现上述所有情况都有例外,但重点是它概述了趋势。
The obvious answer is that Java is free (as in beer) for anything you are willing to invest time on. Other than the hardware, you can run Linux (or Open Solaris, or etc.), a free JVM, tons of free APIs - it is part of the culture, free encourages free.
The Microsoft ecosystem is more of a pay as you go environment. Many tools that have free in the Java world only have for pay options in the Microsoft world.
In the research world, where you have plenty of underpaid graduate students, manpower is much cheaper so the ostensible benefit of the commercial licensed tool saving manpower isn't as much of a benefit. Add to that that a research project could be required to run on a wide distribution of machines. When that happens in the commercial environment, the commercial entity is making money (say for example an e-commerce company that needs to increase the number of machines in its cluster - they are getting more traffic, more sales, more money so they can spend to increase infrastructure). In research, the increased licensing requirements of commercial software aren't necessarily justified by their underlying economics.
So all told, Java gets the preference. Once that happens, that becomes the tool everyone is talking about, and the effect snowballs to the point where .NET is crowded out.
Of course you will find exceptions to all the above, but the point is that it outlines the trend.