【独家翻译】一家华尔街公司发现,计算的成功并不一定要依赖传统的企业级Java。已经找到了完美的平衡。贸易公司JaneStreet表示,Caml为其带来了一套强大的工具,足以创建快速且无错误的大型程序。“例行工作的很大一部分是案例分析任务。让自己的程序正确运行并不是一件容易的事,任何你能从系统中得到的修复错误的工具都是无价的,”JaneStreetYaronMinsky,负责人该公司技术部门的负责人本周五在纽约举行的QCon开发者大会上表示。它是一家专门从事贸易相关事务的企业,也是全球最大的Caml和OCaml(面向对象版本的Caml)用户。JaneStreet的所有交易和辅助系统都使用Caml,尽管底层系统接口仍然使用一些C代码,并且分析电子表格由VisualBasic脚本支持。总而言之,Caml代码每个工作日为JaneStreet处理价值约200亿美元的交易活动。公司目前约有60名程序员,他们要么在学校阶段就已经了解Caml,要么凭借出色的学习能力在培训中快速掌握这门编程语言。除了这些专业技术人员,公司还有大约90名非程序员在日常工作中与Caml打交道。明斯基指出,JaneStreet使用Caml几乎是偶然的。Caml是一种用于机器学习的函数式编程语言。这种语言在各大大学的编程教学中被广泛使用,但在学术界之外并未得到广泛认可和实践成功。明斯基十年前甚至还没从学校毕业就开始在简街工作。因为对Caml语言非常熟悉,他为公司创建了大量的实验方案,其中很多方案后来都集成到了生产环境中。如此优异的表现,让他在获得分布式系统博士学位的同时,顺利拿到了JaneStreetCompany的聘书。当时,简·斯特里特“更关注贸易方面而非技术方面,”明斯基回忆道。电子表格中充斥着大量的VB代码,但这种处理方式显然跟不上公司规模的扩张。更重要的是,当时没有专门的系统可以处理变更管理,因此无法更新所有用户计算机上的代码。随着JaneStreet的交易业务逐渐进入计算机时代,Minsky部署的Caml解决方案开始成为公司的核心系统。JaneStreet还考察了大多数贸易公司使用的Java语言,但构建企业级Java程序所涉及的大量动态面向对象的方法使公司难以理解和相应地思考,Minsky说。明斯基指出,公司的一位分析师喜欢查看系统上运行的代码——尽管他根本不是程序员。他只需要坐下来仔细阅读代码内容,就可以理解其执行的目的和背后的含义。Caml的代码真的很容易理解,任何人都可以通过一点点语法来掌握它。Caml还具有一系列天然优势。它是一种函数式编程语言,因此可以很好地支持程序中的函数式计算。“你可以创建一个函数,将它传递给另一个函数,然后让该函数返回一组函数,”明斯基说。在Caml语言中,函数是“可以像任何其他项目一样任意传递的类值”。相比之下,大多数其他编程语言不允许开发人员将函数作为值传递或手动传递。此外,数据值在函数式编程语言中是不可变的。这意味着程序的行为不是来自“数据结构中单元格更改的实现,而是来自表达式的评估,”Minsky解释道。Caml是一个静态类型系统,这意味着它有一套规则指导系统处理每一种数据类型。一般来说,静态类型语言的漏洞定位难度远低于JavaScript或Python等动态类型系统。此功能大大加快了计算任务的速度,因为程序知道接下来需要处理什么类型的数据。“我对这种编程风格积累了丰富而深刻的经验,你可以使用类型系统来帮助你理解变化的影响,”Minksy指出。“当然,每种语言都可能写出糟糕的代码,但只要人们知道自己在做什么,就可以将这种类型系统作为设计方案的一部分,从而大大提高程序开发结果的正确性。“虽然很少有人会把Caml开发经验写到简历中,但不难找到有这方面经验的程序员,”Minsky说。了解Caml或更熟悉函数式编程的开发人员更熟悉这方面。这种编程model往往充满热情,Minsky第一次帮公司招聘程序员的时候,直接通过Caml邮件列表发出通知,最终从受访者中选出了三名新员工。当然,公司也招聘了很多程序员对Caml一无所知,原因很简单,只要这些考生有能力通过培训掌握这门语言,有没有经验都不是什么大问题——事实证明,这个判断是完全正确的。,该公司使用Caml构建了众多开发项目。除了其核心交易系统外,还包括并发库ary,一个复杂的订阅和发布系统,以及一系列系统自动化工具。总的来说,JaneStreet拥有“大量可以由一个小团队维护的系统解决方案”,Minsky解释说。当然,Minsky强调说,使用这种鲜为人知的语言也有一些缺点。最严重的是缺乏合适的现成工具,根本没有自动补全等高级编辑工具和用户喜爱的主流IDE(集成开发环境),为了解决这些问题,公司开发了很多JaneStreet还积极资助一家名为OCamlPro的公司和剑桥大学的Caml实验室,以鼓励他们创建商业化的Caml支持解决方案。“我们尽最大努力促进语言的健康发展.我们自己写的300万行代码已经成为公司运营的重要基础,以Caml语言为核心构建的技术社区也成为我们重要的技术支撑,”明斯基指出。“如果大家依靠利基技术起家,要想获得成功,就必须准备好为其后续的发展买单。“英文:http://www.networkworld.com/article/2363253/software/you-wont-believe-what-programming-language-this-wall-street-firm-uses.html
