Julia受到中国用户的非常关注

banq 18-09-02
              

Julia编程语言最初是为数学和科学工作而设计的,现获得一系列企业用户的支持,并在中国迅速走红,在其新版本发布后,共有来自140个国家下载,34%来自中国。

Julia开始于2009年在麻省理工学院的一个研究项目,由计算机科学家Jeff Bezanson, Stefan Karpinski, Viral Shah 和麻省理工学院教授,这个项目是从一家公司分拆出来的,并于2012年向公众推出。据首席技术官Keno Fischer称:2015年左右,商业用户特别是金融服务商,开始询问其对独特工作量的适用性。

“他们来找我们想要确保它是健壮的,”他说。

Fischer说,就在这个月开源项目发布了Julia 1.0,发布前几年就确保了健壮性、稳定性和提供可用性的能力,确保了企业用户的期望。

传统上,编程语言在高性能和高生产率之间进行了艰难的平衡,而Julia的创建者希望它不但快速而且易于使用。

那些运行快速的语言通常是由计算机科学家以及接近硬件的人设计的,他们知道如何充分利用硬件;而易于使用的语言是由用户、统计学家、科学家设计的。

“Julia 的实力在于这两种人都有,”他说。

这两种人合作的Julia被描述为提供C ++和Java的速度、具有Python和R的高级生产力、简单性和易用性,(banq注:实际把面向机器和面向人这两个不同方向能统一起来)

多次分派dispatch
Fischer表示,就想法而言,Julia最接近多年前在Apple开发的Dylan,在应用方面,它类似于Matlab,R,SAS或Python。它专注于来自科学界的数学和线性代数能力,帮助具有科学背景的人排除编程焦虑。

其核心原则是动态多分派,可以 基于运行时类型或某些其他属性动态分派函数或方法 。

Fischer解释道:

如果我在代码中用动态语言编写A + B,A和B可能是很多东西 - 数字,矩阵,字符串,数据库对象 - 各种复杂的东西。但是,是否加号取决于上下文,这个上下就是A和B的类型,如果A和B都是数字,只需将它们加在一起即可,也就是采取相加的方式,但如果A是数字而B是矩阵,那就没那么简单了,那就需要通过多次分派才能找到适合A和B类型的执行方法。

“这是一种非常适合表达数学概念的范式,”Fischer说。“然后通过优化过程,我们从这些模型分派声明中提取静态类型信息,并使用这些信息来优化代码,就像静态编译器一样。”

因此,Julia依赖于一个复杂的类型系统。

“Julia有一个非常丰富的类型概念,你可以在运行时选择类型,最重要的是,类型是你可以操作的语言的一级目标(类型是第一等公民)”他说。“你可以传递它们,你可以转换它们,你可以对它们执行操作,你可以注释它们。这些类型是Julia最经过深思熟虑和最关键的创新之一。“

回到静态路径语言,他解释说,“你不能将静态语言的快速性应用于传统动态语言的原因是:动态语言没有足够的静态信息来优化其代码,但是在Julia上不存在这样的关键问题,类型系统允许我们静态地推断Julia程序的行为,将该信息提供给编译器并使其生成快速代码。“

在中国有很大下载量
超过700名志愿者为1.0发布做出了贡献。其特点包括:

1. 一个新的内置包管理器
2. 丢失值的规范表示。
3. 内置的String类型,现在可以安全地保存任意数据,能够将广播扩展到自定义类型,并在GPU和其他矢量化硬件上实现高效的优化计算。

它在发布后两周内有来自140多个国家下载,其中34%的独立访问者来自中国下载,页面

Julia可被用于自动驾驶汽车、机器人、 3D打印机以及精密医学、 增强现实、 基因组学、 能源交易、 机器学习、 金融风险管理 和太空任务,用在政府机构,包括联邦航空管理局,美联储和其他机构; 由Blackrock,Aviva,Citibank,Bank of America等金融服务公司提供支持; 还包括硅谷的玩家包括谷歌,亚马逊,Facebook和优步。

Julia计算公司在Julia Pro中提供了Julia支持的版本,以及针对金融服务,数据库和时间序列工作负载等的特定产品,Fischer 表示,他们将在未来几个月内整合其产品。

Julia Language Gaining in Enterprise Cred - The Ne

[该贴被banq于2018-09-02 15:43修改过]

              

2