Java / C#与金融行业的C ++相比有多大优势?

时间:2009-09-03 05:59:07

标签: finance

我想知道Java / C#与C ++相比如何参考金融行业项目进行扩展?

感谢。

3 个答案:

答案 0 :(得分:14)

取决于系统的类型。 C ++传统上与财务应用程序相关联,因为人们使用它来编写快速蒙特卡罗模型来定价衍生证券。如果您不是定量分析师(quant),这可能无关紧要。

对于交易大厅系统或其他事务应用程序,C ++肯定会在更小的内存占用和更少的CPU中获得更快的性能和更多的事务量。但是,数据库和网络性能更可能是一个限制因素,Java或C#可以通过使用集群体系结构进行扩展。

Java和C#可以暂停进行垃圾回收,这会导致应用程序的响应时间死亡。对于需要支持可靠实时响应的某些应用程序(例如算法交易平台),这些延迟可能是不可接受的。在这种情况下,C ++允许您更严格地控​​制此行为,可能更适合。

根据关键字“银行业务”和“C ++”,“。Net”和“Java”对Jobserve进行一些快速搜索合同工作:

  • “C ++ and Banking”的60场比赛
  • “Java and Banking”的128场比赛
  • 186场比赛'.Net和银行'

假设承包商的招聘广告数量与活跃项目数量(2)之间存在某种相关性(1),可以将其用作粗略指标,表明这些平台在活跃项目中的相对流行程度。

  1. 拥有技能的人的相对可用性也会影响到这一点 - 提供的技能很好将意味着更多的工作被填补,技能设置不足将意味着更多的职位空缺时间更长。

  2. 银行业和保险业长期缺乏良好的开发人员,并且拥有行业经验,因此许多技能组合都有大量的合约市场。

答案 1 :(得分:3)

显然,不同公司/行业领域的差异很大,但根据我的经验,它大致分解如下:

  • 适用于大型企业系统,后端交易平台等的Java。
  • C ++用于低延迟/高性能的东西
  • 用于前端/桌面应用的C#

Java总体上是这三者中最大的 - 这是有道理的,因为它最适合服务器端的通用,跨平台企业应用程序。

Java / C#真正的唯一区域是非常低延迟的东西,其中GC暂停可能非常有问题。你真的需要C ++(或汇编程序,或其他一些允许你保证实时行为的语言)

偶尔还会出现一些其他语言(例如Haskell的定价模型),但这些语言往往属于更多利基/专业领域。

我还看到了一些较新的JVM语言(例如Scala,Clojure)的一些实验。目前仍然规模很小,但如果你正在寻找一个发展你的技能的地方,我认为这对未来是一个相当不错的选择,因为它们结合了Java平台的优势(银行有大量的投资) )具有更现代/更高效的语言。

答案 2 :(得分:2)

这实际上取决于应用程序的用途。许多应用程序现在都是基于Web的,而C ++也不适合该环境。

我同意另一个响应者的意见,但我想补充一点,因为编码的简易性和处理数据的能力,其他语言对于超出这些范围的数量越来越受欢迎:特别是R,Matlab和Python。