编者按:2012年,也就是八年前,Julia发布了最初版本。今年,科技媒体Jaxenter采访了Julia的四位创始人,Dr. Viral B. Shah, Dr. Jeff Bezanson, Stefan Karpinski 和 Prof. Alan Edelman,聊一聊这些年Julia的发展是否达到了他们对Julia寄予的厚望。采访中,他们还深入讨论了如今Julia的各种使用案例,将之与Python做了比较,并描绘了这门语言的未来。

以下为译文:

 

JAXenter:创建Julia时,您在2012年的一篇博客文章中阐述了开发该语言的原因。现在来看,Julia是否达到,或甚至超过了您的期望?

Julia团队:我们当然相信Julia达到了原博客文章的期望。如今,Julia实现的性能要比用于技术计算的其他动态语言好几个数量级。Julia本地程序通常比R,Python,Matlab等类似程序快10到100倍。在Twitter上讨论的机器学习示例,其中Julia比Python快10到100倍。

Julia本地程序通常比R,Python,Matlab等类似程序快10到100倍。

同时,Julia是通用的,并提供了用于创建仪表板,文档,REST API,Web应用程序,与数据库集成等功能。结果,Julia现在在许多行业中都得到了广泛的商业应用。各行各业的数据科学家和工程师不仅可以使用Julia来开发模型,还可以使用Julia Computing的产品,单击一下鼠标就能将程序部署到生产中。

当然,Julia还有很多事情要做。虽然我们现在拥有超过3000个Julia软件包的蓬勃发展的生态系统,并且能够调用使用Python,R,C,C ++或Java编写的所有库,最近我们的重点,是优化我们的多核,GPU和分布式计算。

JAXenter:在创建这门新的编程语言时,最大的难点是什么?如果用您现在拥有的知识和经验,将会用怎样不同的方式来进创建它?

Julia团队:编程语言是计算中最通用的结构之一。从根本上说,它们是程序员和计算机之间的接口。作为设计师的每个小决定,每天都会影响成千上万的程序员和研究人员的工作效率。

难点之一是保持实力。我们在2009年启动了这个项目,2012年发布开原公告。很显然,我们可以解决棘手的“两种语言问题”,即同一种语言兼顾性能和生产力。但是,我们尚不清楚它是否在全球范围内被接受。作为一项业余爱好坚持2-3年很容易,但是长期保持热情就很难了,更不用说投入精力,把它从一个业余爱好变成如今这样一个真正强大的工业级系统。无论在技术领域还是社交领域,一门编程语言都需要至少10年才能达到临界质量。在早期,我们都做了很多不同的工作。Viral为印度政府的Aadhaar项目工作,Stefan是Etsy的数据科学家,Jeff在麻省理工学院攻读博士学位。这么多年来,我们能够保持初心,把更多的时间花在Julia上。大约5年前,我们成立了Julia Computing,把Julia带到企业中,以全职工作的方式投入我们的热情。

我们很幸运能够在过去的十年中致力于Julia。不仅最初的创始团队还聚在一起,而且建立Julia的核心团队也有了长足的发展。回顾过去,虽然我们认为我们所做的一切还不够完美,但自认没有什么重大失误或挫折。

JAXenter:总的来说,您认为Julia最适合什么用例?

Julia团队:Julia非常适合各种形式的技术计算。在数据科学和工程工作流程中,性能至关重要–无论是分析最新CPU上的超大数据集,在GPU上大规模运行复杂的AI模型,还是在超级计算机上进行科学仿真。在所有这些领域中,Julia至少比竞争对手有10倍的优势。它可以让一个小的数据科学家和工程师团队能够实现原本需要大得多的团队的工作,以更低的成本实现市场目标。

JAXenter:在用于机器学习任务时,Julia与Python有何不同?

Julia团队:Julia在简单的机器学习任务上可与Python媲美,而在复杂的机器学习任务上甚至优于Python。在现有的Python库不提供即用型功能的情况下,你必须自己编写,但是在Python中,这是一个挑战,因为你要么牺牲性能,要么从头用C编写Python扩展。或Cython之类的东西。在Julia中,当你必须推出自己的解决方案时,它不仅易于部署,而且与使用预先存在的库相比,其性能通常更高。我们注意到,由于这个原因,许多用户都喜欢Julia的Flux和Knet软件包——只需编写普通的代码,就可以区分它们,并且通常速度足够快。出于同样的原因,许多用户也喜欢使用Julia的Turing.jl软件包进行概率编程。

在TensorFlow之类的系统中,通常无法使用标准python软件包的功能。Julia机器学习框架还允许将现有的Julia包重用于文件I / O,统计分布,分布式计算,图像处理等。在部署上,与其他任何代码一样,编译Julia代码就可以了。那些更大一些的框架也在木且关注Julia,Julia的工具也影响了TensorFlow 2.0等下一代框架的重新设计。

结果,我们发现研究人员做了许多对于其他语言来说很难(或不可能)的事情。例如,可以将复杂的Julia包(如光线跟踪器)转换为ML模型,并构建可以快速训练的计算机视觉或机器人控制系统。这些想法非常具有通用性,已应用于以下领域:量子算法和量子ML,北欧能源交易,光子芯片设计,电路中的功率流,医学成像,百亿亿次计算,传染病建模,甚至交通管理。你甚至可以重新使用Julia的ML程序包,并学习更好的训练算法。人们把这个系统向前推动了许多,做到了我们当初从未想过的事情,真是令人惊讶。

在科学机器学习领域,Julia提供了一个完整的SciML堆栈,而这在Python或任何其他语言生态系统中是没有的。

JAXenter:Julia 1.4于2020年3月发布。其中最让您兴奋的功能是什么?

Julia团队:多线程是我们在1.3版中宣布的一项主要功能,在1.4版中它变得更快、更强大。Julia 1.4还具有许多其他性能增强功能。其中一个主要问题是,“开始第一次绘制的时间”问题已得到解决,该问题使Julia在启动后需要花费30秒以上的时间来生成第一张绘制。现在,第一次绘制的时间缩短为12秒。如今,减少编译延迟是编译器团队的当务之急。

Julia的新的二进制工件BinaryBuilder也首次在Julia 1.4中得到广泛使用。这意味着,在1.4中,与其尝试在每台客户端计算机上构建二进制依赖关系(有时可以奏效,但极易失败且非常令人沮丧),对于支持它的二进制依赖关系,只需要解压缩就行,无需任何构建步骤即可使用。这让Julia有了更加可靠的体验,意味着复杂的堆栈(例如GUI工具包)开箱即用,并且可以跨平台以一致的方式进行操作。当你安装CuArrays.jl等软件包时,GPU功能也可以立即使用。这是一种神奇的体验。BinaryBuilder的基础技术令人赞叹,但真正的魔力在于,社区中的人聚在一起,为各种库创建服务器端跨平台构建recipes。所有这些技术还意味着应用程序部署是超级可靠,可重现和可移植的。

JAXenter:您对Julia未来有什么计划?

Julia团队:未来还有很多工作要做——并行计算,更多的编译器支持可区分的编程,除NVIDIA(如Intel和AMD)外还支持其他GPU加速器,代码生成方面的改进,调试工作流程的改进,更好的错误消息机制和解析器改进,更好的IDE集成,程序包作者的程序包统计信息,等等。

此外,在Julia Computing,我们继续专注于稳定性和可靠性,为企业提供Julia支持的产品。为此,我们正在构建JuliaTeam(让开发团队可以轻松构建Julia应用程序)和JuliaRun(有效扩展和部署Julia应用程序)。

JAXenter:谢谢您的回答!

本文为CSDN翻译文章,转载请注明出处。

原文链接:

https://jaxenter.com/julia-programming-language-interview-171506.html

Julia 创始人访谈:简单机器学习任务可与 Python 媲美,复杂任务胜过 Python相关推荐

  1. 美联储加持的小众语言 Julia ,能否成为机器学习的明日之星?

    早在 2009 年,Jeff Bezanson.Alan Edelman.Stefan Karpinski 和 Viral Shah 四个人聚到一起决心创造一种全新的编程语言.新语言要快速.有表达力, ...

  2. 机器学习笔记——2 简单线性模型及局部加权线性模型的基本原理和python实现(参数估计的两个基本角度:几何直观和概率直观。函数最值问题的两大基本算法:梯度方法与迭代方法)

    简单线性模型及局部加权线性模型的基本原理和python实现(参数估计的两个基本角度:几何直观和概率直观.函数最值问题的两大基本算法:梯度方法与迭代方法) 线性模型是什么? 线性模型是监督学习的各类学习 ...

  3. python简单代码需要写多久_python基本语法?初学Python要多久才能入门?

    展开全部 首先给你分2113享Python学习入门中常用的语5261法知识 1.变量.常量,就4102是值不能被改变的量,比如16535.10等数字或者一个字符串的文本.与常量相对应的就是变量,就是值 ...

  4. python怎么使用-如何使用python进行第一个机器学习项目(详细教程篇)

    你是否想使用python进行机器学习但却难以入门? 在这篇教程中,你将用Python完成你的第一个机器学习项目. 在以下的教程中,你将学到: 1.下载并安装Python SciPy,为Python中的 ...

  5. python和java选择哪个-python和java哪个学起来更简单

    在近几年Python的呼声越来越高,很多刚开始起步想要学习编程的朋友都会犹豫要不要选择学习Python,毕竟作为人工智能时代的首选语言这个诱惑还是很大的.在选择上最纠结的就是Python和Java选择 ...

  6. 【机器学习】树模型遇上类别型特征(Python)

    在数据挖掘项目的数据中,数据类型可以分为两种:有序的连续数值 和 无序的类别型特征. 对于xgboost.GBDT等boosting树模型,基学习通常是cart回归树,而cart树的输入通常只支持连续 ...

  7. python绘制三维曲线图_机器学习的绘图库有哪些?如何运用python绘制机器学习常见曲线?...

    专栏引荐 绘图的变量 单变量 查看单变量最方便的无疑是displot()函数,默许绘制一个直方图,并你核密度估计(KDE) sns.set(color_codes=True) np.random.se ...

  8. 【机器学习入门——1】Python 开发环境的安装 Python(x,y)及Pycharm

    在学习机器学习的过程中,我们必不可少的要敲写一些代码.在机器学习领域中用到的语言主要有Matlab.Python.R等语言,由于自身接触到的环境原因我主要选着Matlab及Python语言 .Pyth ...

  9. 盘点27个机器学习、深度学习库最频繁使用的 Python 工具包(内含大量示例,建议收藏)

    目前,随着人工智能的大热,吸引了诸多行业对于人工智能的关注,同时也迎来了一波又一波的人工智能学习的热潮,虽然人工智能背后的原理并不能通过短短一文给予详细介绍,但是像所有学科一样,我们并不需要从头开始& ...

最新文章

  1. linux:进程之间的通信
  2. Matrix Power Series
  3. 第十七篇 计算机组成原理
  4. 东哥读书小记 之 《一个广告人的自白》
  5. berkeley db java edition 源码,Berkeley DB Java Edition
  6. 高可用之KeepAlived(2):keepalived+lvs
  7. 腾讯回应租号打游戏:已向超20家账号交易平台发函
  8. Linux就该这么学-使用实战
  9. d - 数据结构实验之查找四:二分查找_数据结构与算法笔记
  10. 【李宏毅2020 ML/DL】P17 Convolutional Neural Network
  11. 【MySQL】Unknown column 'column_name' in 'field list'
  12. 论Spring开发框架
  13. Git_Eclipse:[2]Git初始化配置
  14. Struts2-03-拦截器(BOS物流项目用户登录拦截)
  15. 专访黑石集团CEO苏世民:“我们能见他人所不能见”/巴伦独家
  16. 基于web的大数据可视化平台
  17. 南京融时代 php,河西南,回不去的3万5时代
  18. windows系统安全加固
  19. C++弹窗拦截程序,弹窗广告怎么关闭?不用问,我教你怎么屏蔽!
  20. 【potplayer安装及设置LAV Splitter】

热门文章

  1. Java对象创建的过程及对象的内存布局与访问定位
  2. 啦啦啦-我又来了!!!
  3. 基于ssh的多节点之间互信通信的实现
  4. NAT集群部署solo之session server
  5. 设定谷歌为默认浏览器
  6. 转:Delphi中destroy, free, freeAndNil, release用法和区别
  7. Java设计模式05:常用设计模式之原型模式(创建型模式)
  8. 全国高等院校英语能力大赛模拟题
  9. 【前端】【cornerstone】cornerstone.js如何编辑图像/加载已有图像数据(以画直线为例)
  10. kalman filter java_Kalman filters(一)