申请专栏作者
投稿发布
您的当前位置:主页 > yabo亚博体育下载 > 正文

未来明星语言 Julia 或成 Python 劲敌

来源: 时间:2019-08-13
请点击下面的广告后浏览!

去年今日,MIT Julia Lab 推出了 Julia 1.0 版。一年来,它的表现如何?

本文来自可思yabo88滚球(sykv.com),转载请联系本站及注明出处

据 MIT 报道,截至 2018 年底,Julia 的下载量超过 300 万,并在超过 1500 所大学中用于科学和数值计算。根据 2019 年 8 月 TIOBE 编程语言指数,Julia 从 7 月的第 50 名升至第 39 名,在众多语言中上升幅度显着。今年 7 月,在将 Python 解释器移植到 Firefox 之后,Mozilla 出资将 Julia 引入 Firefox 和一般浏览器……

本文来自可思yabo88滚球(sykv.com),转载请联系本站及注明出处

最近,Julia 开发团队对来自 90 多个国家的 1844 名 Julia 用户和开发人员进行了调查,结果显示,93% 的受访者喜爱 Julia,Python、C 排名第二、三位,分别获得 61% 和 27% 的投票率。这份完整的调查报告在今年7 月底的JuliaCon 上发布。在此次会议上,开发者还宣布将发布一个全新的Julia 线程接口—— 受到 Cilk 、 Intel Threading Building Blocks (TBB) 以及 Go 等启发的通用任务并行机制。看起来,Julia 的进化正在稳步有序地进行着。

本文来自可思yabo88滚球(sykv.com),转载请联系本站及注明出处

Julia 会是编程语言中的“黑马”吗?你是否已经准备好学习这门崛起中的新语言了呢? 可思yabo88滚球-www.sykv.cn,sykv.com

Julia 是什么? 可思yabo88滚球-AI,sykv.com人工智能,深度学习,机器学习,神经网络

Julia 诞生于 MIT 计算机科学与人工智能实验室 (CSAIL) 和数学系,由 Jeff Bezanson 博士、前 MIT Julia Lab 研究员 Stefan Karpinski、Viral B. Shah 和数学系教授 Alan Edelman 于 2009 年创建,并于 2012 年公开发布。开发者在 2012 年 2 月的博客中写道, 可思yabo88滚球-AI,sykv.com智能驾驶,人脸识别,区块链,大yabo88滚球

“我们想要的是一种自由开源的语言,它同时拥有 C 的速度和 Ruby 的动态性;我们想要一个具有同像性(可以将语言的脚本本身当作yabo88滚球进行处理)的语言, 它有着真正的和 Lisp 一样的宏,但却像 MATLAB 一样有着显着的,类似于数学表达式的标记;我们想要一个可以像 Python 一样作为通用编程语言的工具, 像 R 那样适用于统计分析,像 Perl 那样自然地处理字符串,像 MATLAB 那样给力地处理矩阵运算,它还要能像 Shell 一样作为胶水将各种程序粘合在一起;我们想要一个简单易学的语言,同时还能让最苛刻的黑客们开心。我们希望它是交互式的,但我们也希望它能被编译。” 可思yabo88滚球-www.sykv.cn,sykv.com

Julia 是一门灵活的动态语言,适用于科学计算和数值计算,其性能可与传统的静态类型语言媲美。它具有如下特点: 可思yabo88滚球sykv.com,sykv.cn

快速:Julia 一开始就是为高性能而设计的。Julia 可以通过 LLVM 而跨平台被编译成高效的本地代码。

可思yabo88滚球sykv.com

通用:Julia 使用多重派发作为编程范式,使其更容易表达面向对象和函数式编程范式。标准库提供了异步 I/O、进程控制、日志记录、性能分析、包管理器等等。 内容来自可思yabo88滚球sykv.com

动态:Julia 是动态类型的,与脚本语言类似,并且对交互式使用具有很好的支持。 本文来自可思yabo88滚球(sykv.com),转载请联系本站及注明出处

数值计算:Julia 擅长于数值计算,它的语法适用于数学计算,支持多种数值类型,并且支持并行计算。Julia 的多分派自然适合于定义数值和类数组的yabo88滚球类型。

本文来自可思yabo88滚球(sykv.com),转载请联系本站及注明出处

可选的类型标注:Julia 拥有丰富的yabo88滚球类型描述,类型声明可以使得程序更加可读和健壮。 可思yabo88滚球-yabo88滚球挖掘,智慧医疗,机器视觉,机器人sykv.com

可组合:Julia 的包可以很自然的组合运行。单位数量的矩阵或yabo88滚球表一列中的货币和颜色可以一起组合使用并且拥有良好的性能。 可思yabo88滚球sykv.com

2018 年 12 月,Julia 的三位联合开发者 Bezanson、Karpinski 和 Shah 获得 2019 年 James H.Wilkinson 数字软件奖。根据选拔委员会的一份声明,“Julia 允许研究人员以直观的语法编写高级代码,并以生产编程语言的速度生成代码。它已被科学计算界广泛采用,包括天文学、经济学、深度学习、能源优化和医学等应用领域。尤为特别的是,美国联邦航空管理局选择 Julia 作为下一代机载防撞系统的语言。”

可思yabo88滚球sykv.com,sykv.cn

在 GitHub 上有 Julia 应用于计算生物学、统计学、机器学习、图像处理、微分方程和物理学等领域的小组。根据最新调查报告,目前,Julia 的主要应用领域包括统计学与yabo88滚球科学、工程学、机器学习、计算机科学、物理学、数学、人工智能、信号与图像处理等。73% 的用户使用 Julia 从事科研工作,54% 的用户将其用于个人工作,16% 的用户将其用于教学。 可思yabo88滚球sykv.com,sykv.cn

?

可思yabo88滚球-人工智能资讯平台sykv.com

?

可思yabo88滚球sykv.com,sykv.cn

与 Python 的区别

可思yabo88滚球-AI,sykv.com人工智能,深度学习,机器学习,神经网络

Julia 需要用 end 来结束代码块。与 Python 不同,Julia 没有 pass 关键字。

可思yabo88滚球-yabo88滚球挖掘,智慧医疗,机器视觉,机器人sykv.com

在 Julia 中,数组、字符串等的索引从 1 开始,而不是从 0 开始。 内容来自可思yabo88滚球sykv.com

Julia 的切片索引包含最后一个元素,这与 Python 不同。Julia 中的 a[2:3] 就是 Python 中的 a[1:3]。 可思yabo88滚球-AI,sykv.com人工智能,深度学习,机器学习,神经网络

Julia 不支持负数索引。特别地,列表或数组的最后一个元素在 Julia 中使用 end 索引,而不像在 Python 中使用 -1。

可思yabo88滚球-yabo88滚球挖掘,智慧医疗,机器视觉,机器人sykv.com

Julia 的 for、if、while 等代码块由 end 关键字终止。缩进级别并不像在 Python 中那么重要。

可思yabo88滚球-AI,sykv.com智能驾驶,人脸识别,区块链,大yabo88滚球

Julia 没有用来续行的语法:如果在行的末尾,到目前为止的输入是一个完整的表达式,则认为已经结束;否则,认为输入继续。强制表达式继续的一种方式是将其包含在括号中。

可思yabo88滚球-AI,sykv.com人工智能,深度学习,机器学习,神经网络

默认情况下,Julia 数组是列优先的(Fortran 顺序),而 NumPy 数组是行优先(C 顺序)。为了在循环数组时获得最佳性能,循环顺序应该在 Julia 中相对于 NumPy 反转(请参阅 Performance Tips 中的对应章节)。

可思yabo88滚球-AI,sykv.com智能驾驶,人脸识别,区块链,大yabo88滚球

Julia 的更新运算符(例如 +=,-=,···)是 not in-place,而 Numpy 的是。这意味着 A = [1, 1]; B = A; B += [3, 3] 不会改变 A 中的值,而将名称 B 重新绑定到右侧表达式 B = B + 3 的结果,这是一个新的数组。对于 in-place 操作,使用 B .+= 3(另请参阅 dot operators )、显式的循环或者 InplaceOps.jl。

可思yabo88滚球-www.sykv.cn,sykv.com

每次调用方法时,Julia 都会计算函数参数的默认值,不像在 Python 中,默认值只会在函数定义时被计算一次。例如,每次无输入参数调用时,函数 f(x=rand()) = x 都返回一个新的随机数在另一方面,函数 g(x=[1,2]) = push!(x,3) 在每次以 g() 调用时返回 [1,2,3]。

可思yabo88滚球sykv.com

在 Julia 中,% 是余数运算符,而在 Python 中是模运算符。

可思yabo88滚球-yabo88滚球挖掘,智慧医疗,机器视觉,机器人sykv.com

与 MATLAB、R、C/C++ 的区别详见文档。 可思yabo88滚球-AI,sykv.com智能驾驶,人脸识别,区块链,大yabo88滚球

为什么用 Julia?

内容来自可思yabo88滚球sykv.com

Julia 最受欢迎的技术特征包括快速和高性能、易于使用、开源、多重派发以及解决了两种语言问题;最受欢迎的非技术特征包括自由、社区开发者富有才华且活跃、易于创建包以及采用 MIT 许可证。

可思yabo88滚球-www.sykv.cn,sykv.com

?

内容来自可思yabo88滚球sykv.com

?

内容来自可思yabo88滚球sykv.com

?

可思yabo88滚球-yabo88滚球挖掘,智慧医疗,机器视觉,机器人sykv.com

?

可思yabo88滚球-yabo88滚球挖掘,智慧医疗,机器视觉,机器人sykv.com

Julia 最大的技术问题在于包并不像所需的那样成熟或维护良好、生成第一个图需要很长时间;最大的非技术问题在于同事、公司或合作者使用其他语言,在用户所在的领域 / 行业中,没有足够的 Julia 用户。

可思yabo88滚球-AI,sykv.com人工智能,深度学习,机器学习,神经网络

?

可思yabo88滚球-人工智能资讯平台sykv.com

? 可思yabo88滚球-yabo88滚球挖掘,智慧医疗,机器视觉,机器人sykv.com

?

可思yabo88滚球-AI,sykv.com人工智能,深度学习,机器学习,神经网络

?

可思yabo88滚球-AI,sykv.com智能驾驶,人脸识别,区块链,大yabo88滚球

据外媒 ZDNet 此前发布的yabo88滚球,Julia 的 GitHub Star 数在过去一年翻了一番,该语言还被 1000 多种学术出版物引用。 可思yabo88滚球-yabo88滚球挖掘,智慧医疗,机器视觉,机器人sykv.com

?

可思yabo88滚球sykv.com

? 可思yabo88滚球-www.sykv.cn,sykv.com

?

可思yabo88滚球-yabo88滚球挖掘,智慧医疗,机器视觉,机器人sykv.com

?

可思yabo88滚球sykv.com,sykv.cn

关于”为什么你会使用 Julia“的问题,52% 的受访者表示,Julia 似乎是未来的语言,43% 的人认为,它能使工作速度更快。

可思yabo88滚球sykv.com

? 可思yabo88滚球sykv.com

? 可思yabo88滚球-yabo88滚球挖掘,智慧医疗,机器视觉,机器人sykv.com

你是否已经准备好学习这门新语言了吗?

可思yabo88滚球-人工智能资讯平台sykv.com

相关文章: 内容来自可思yabo88滚球sykv.com

Julia: The programming language of the future?

可思yabo88滚球-www.sykv.cn,sykv.com

Julia programming language: Users reveal what they love and hate the most about it

可思yabo88滚球sykv.com,sykv.cn

视频:JuliaCon 2019 | Julia User and Developer Survey (2019)

可思yabo88滚球sykv.com,sykv.cn


转发量:

网友评论:

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片 匿名?

关于我们?? 免责声明?? 广告合作?? 版权声明?? 联系方式?? 原创投稿?? 网站地图??

Copyright?2005-2019 Sykv.com 可思yabo88滚球 版权所有 ?? ICP备案:京ICP备14056871号

人工智能资讯?? 人工智能资讯?? 人工智能资讯?? 人工智能资讯

?扫码入群
咨询反馈
扫码关注

微信公众号

返回顶部
关闭