充满野心的Julia成功了吗?

2023-11-23 09:20
文章标签 成功 充满 野心 julia

本文主要是介绍充满野心的Julia成功了吗?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言:

程序员10年心血,超过700人做出贡献,还有更多人创造了成千上万的开源包,Julia最终是否完成了他们的目标?今天我们就从速度、动态静态系统类型、矩阵运算以及语言灵活简洁性四方面来谈一下Julia的性能。

Julia是快速的

15年《Journal of Economic Dynamics and Control》上发表了一篇文章,这篇文章对当时的几种主要编程语言的运行速度进行对比,包括C++、Fortran、Java、Julia、Python、Matlab、Mathematica、R等,作者在每种语言中使用相同的算法、分别测量不同语言在Mac和windows系统上的运行时间。
最终结果如下Table 1所示,Julia的表现是非常出色的,尽管他的速度没有达到C++的水平,但是mac和windows上的速度也仅仅是C++的2.64和2.7倍。
可见Julia的运行速度确实还不能达到C的速度,但是与Matlab的10.88和8.92倍、Cpython的269.31、155.31倍、R(compiled)的280.90和243.63以及Mathematica的809.22和626.19倍相比,Julia就显示出了它的速度优势。尽管Julia的速度并没有达到C的速度,但是相比许多其他语言,Julia是具有明显的速度优势的。
在这里插入图片描述

而18年正式发行了1.0版,速度更是有所提高,oschina(开源中国)上显示标准测试程序测试下的效率数据如下表所示(表中C++的运行时间是绝对时间,其他都是相对于C++的相对时间),可见Julia的效率也是极好的,尽管大多数运行速度还不如C++,但是相对其他语言,除部分略逊色于Matlab或者JavaScrip外,Julia都完胜其他高级语言,甚至pi summation上,Julia成功以25%的优势击败C++。可见Julia是快速的。
在这里插入图片描述

Julia是动静结合的

静态类型系统,在程序运行之前,就可计算每一个表达式的类型;而动态类型系统,我们只有通过运行那个程序,得到表达式具体的值,才能确定其具体的类型。动态语言编程的代码数量少,看起来更为简洁,更具有灵活性;而静态语言在编译时就能发现类型不匹配的错误,而且如果在程序中明确规定了数据类型,编译器还可以针对这些信息对程序进行一些优化工作,提高程序执行速度。
Julia官方的介绍说明Julia是动态的,但通过允许指出某些变量具有特定类型,Julia获得了静态类型系统的一些优点。这方面Julia就相对灵活,可以根据需要选择动态还是静态,也有人说Julia是动态的静态语言。

Julia的矩阵运算

Matlab通过使用Intel核心数学库(MKL)在矩阵乘法上占有优势,而Julia拥有MKL库的授权,同样可以使用Intel MKL库,当然Julia默认的库并不是MKL,而是BLAS,BLAS本身效果也具有不错的性能,因此Julia矩阵运算的效果还是不错的,当然也有人通过实验对Matlab和Julia进行对比,结果显示速度与数据类型相关,结果如下图显示:
在这里插入图片描述

64位整数Julia明显更快,优势非常明显,32位整数及32位浮点数和64位浮点数Julia略有优势,8位整数和16位整数Matlab较有优势;当然因为64位整数的明显优势存在,Julia的平均速度要比Matlab快一些。

Julia是灵活易用的

我们知道python是当下非常受欢迎的语言之一,python简单易上手,是一种胶水语言,灵活且生态丰富,而Julia也拥有高阶的语法,同时也在不断的提升高效性和易用性,下面我们分别用python、matlab以及Julia实现如下函数:
若传入两个参数,传出两个参数的和,若传入一个参数,传出这个参数加1,三种语言的代码如下:在这里插入图片描述

我们发现python相对Matlab要简洁很多,而Julia甚至还要更简洁一些,可见Julia是简洁易用的,此外Julia还十分灵活,它能使用所有Python和大部分R的库。

Julia是可进步的

既然Julia具有这么多优点,但是它的使用人数为什么还是没有python和Matlab等的人数多呢?
当然Julia问世时间尚短占了很大一部分原因,除了这一原因,我们也不得不承认尽管Julia具有很多突出的优点,但是它还是一个发展中的语言,并不是特别成熟,还有很多可以进步的地方:
用于附加功能的包不够成熟或维护得不够好,作为一个开源的编程语言,Julia十分灵活,更新也较快,但是这就会出现支持服务不到位、缺乏良好的记录文档,作为一个新语言Julia的生态还不够强,尽管它能使用所有的python和大部分R的库,但是生态不强就使得Julia并不适合调库党。
基于JIT( Just-in-time,即时编译器),启动有预热时间,不适合小规模、只运行一次的任务(例如shell脚本),也就是说Julia并不适合简单且运行时间短的任务。
命令行界面工具缺乏,不适合在终端(Terminal)开发,需要借助能够热重启(reload)和IDE开发,各个IDE都有其各自的优点与缺点。
安装package麻烦,费时,还易出错,国内还没有解决镜像的问题,下载和安装都很慢。
使用的人少,相关资料少,缺乏教学资源,一个使用者多的语言,教学资源丰富,此外遇到问题时网上可以找到他人的解决方法,因此可以吸取前人的经验,而Julia的使用者较少,教学资源也不多,网上的经验分享也不多,因此出现问题时也难以找到解决方法,这在很大程度上限制了Julia的发展。

结语:

回到我们最初的问题,充满野心的Julia成功了吗?我们可以说,它已经在成功的路上,或者说他已经取得了很大一部分的成功,但是Julia还在发展中,它还可以更近一步,还可以更好。

想获取更多内容,请关注海数据实验室公众号。

本期分享到这里,我们会每天更新内容,咱们下期再见,期待您的再次光临。有什么建议,比如想了解的知识、内容中的问题、想要的资料、下次分享的内容、学习遇到的问题等,请在下方留言。如果喜欢请关注。在这里插入图片描述在这里插入图片描述

社群推荐:

更多有关数据分析的精彩内容欢迎加入海数据在线数据分析交流群,有什么想法或者疑问都可在里面提出,与同行零距离交流,共同成长进步,请识别下面二维码加火星小海马微信,邀你进群。

在这里插入图片描述

这篇关于充满野心的Julia成功了吗?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/416919

相关文章

六西格玛培训公司:解锁成功之门,让企业与个人共赴“嗨”途

在竞争激烈的21世纪,六西格玛培训公司手握一把神奇的钥匙,帮助企业及个人轻松开启成功的大门。 对企业来说: 产品质量飞跃:不再是偶尔的精品,而是每个产品都如同精雕细琢的艺术品,吸引无数顾客争相购买。 工作流程优化:六西格玛培训如同精准的剪刀,剪去冗余,让工作流程更加顺畅高效。 客户满意度飙升:深谙客户需求的六西格玛,帮助企业精准把握市场脉搏,让每位客户都感受到宾至如归的满意。 战略转型游刃有

IPD推行成功的核心要素(十一)技术规划与平台规划促进公司战略成功

随着外部大环境的影响,各企业仅有良好的愿望是不够的。预测并顺应新兴市场和技术的变化,变危机为转机,不断推出强大的产品才是一个公司持续繁荣的根本保障。而高效的产品开发往往是基于某些关键技术,针对市场推出的一个或几个产品系列,这些产品系列通常共用一些产品平台,共用一种或者几种关键技术。当一家企业进入了平稳发展期,已经建立了较为完善的管理制度和产品开发流程,但是依然认为竞争对手是那样强大,那样不可战胜。

XP单机版安装金蝶K3的13.1版本,金蝶K3Wise安装步骤,成功安装

在我们安装金蝶K3时往往会出现各种报错,主要是因为我们的Windows Xp操作系统是Ghost版本,或者是windows XP HOME或者是精简版,因此某些组件在系统里没有,导致我们安装金蝶K3时经常出错报错。本文章就是主要结合实际安装过程,总结了一些问题的解决办法。如果您按照本流程进行安装会比较流畅。 下载一个版本的Windows XP镜像,重装电脑。

《三国:谋定天下》成为了SLG游戏现象级的成功案例

原标题:《三国:谋定天下》引领SLG游戏新潮流,B站股价五个飙升了30%   易采游戏网6月23日:B站作为年轻人喜爱的文化社区和视频平台,再次用一款新的游戏证明了其在游戏发行领域的独到眼光与强大实力。最近大火的策略角色扮演游戏《三国:谋定天下》成为了现象级的成功案例,不仅游戏本身质量受到认可,而且在竞争激烈的iOS畅销榜上勇夺第三的位置,仅排在了资深巨头DNF手游和《王者荣耀》之后。更加引人注

linux设备上的Onvif 实现4:成功编译gsoap 2.8.15

前言     本说明示例是gsoap 2.8.15     gsoap工具包中支持的平台是:linux386、macosx、win32,没有提供嵌入式arm平台,本文将指导完成交叉工具编译生成嵌入式平台工具。 工作目录:\\192.168.0.234\work\gaoht\gsoap   \gsoap-2.8\   解压后的目录   \target\      编译后的安装目录 交叉编译工具:T

[HBM] HBM 国产进程, 国产HBM首次研发成功 (202406)

依公知及经验整理,原创保护,禁止转载。 专栏 《深入理解DDR》 AI 的火热浪潮带火了高带宽内存的需求,HBM已是存储市场耀眼的明星。目前市场上还没有国产HBM, 什么时候可以看到国产希望呢? 或许现在可以看到曙光了。 1. 设计端 1 生 2, 2 生 3, 3 生万物,万物怎么出现的, 当然是先有设计了。 1.1. 长鑫存储 HBM 样品 DRAM 原厂长鑫存储与芯片封装测试

怎么判断文件 fileoutPutStream已经拷贝成功? 项目需求是判断fileInputStream已经拷贝

要判断文件 `fileoutPutStream` 已经拷贝成功,可以通过以下几个步骤来实现: 1. **确保所有数据都已写入**:    使用 `FileOutputStream` 的 `getFD().sync()` 方法,这会强制将所有未写的数据写入到磁盘上。 2. **检查流是否关闭成功**:    在关闭流之后检查是否有异常抛出。如果流关闭时没有抛出异常,这通常意味着数据已经被成功写入

对菜鸟程序媛来说这是个充满BUG的世界。八阿哥虐我千百遍,我待八阿哥如初恋。

菜鸟程序媛曾经对这个充满BUG的世界感到无比的绝望!!! 笔者是个菜鸟android程序媛。 在工作中经常会遇到各种各样的BUG 基本上都不是很高端的BUG 但是笔者的大脑一直没有产生bug数据库 在BUG产生的时候无法第一时间从大脑中select到 并且获得解决方案 说来惭愧。。。 但是好歹也经历过一些BUG,笔者最近刚结了个项目修复 了近百个BUG。 在此稍微总结一些经验吧!

如何搭建一个成功的短剧制作平台

要搭建一个成功的短剧制作平台,需要考虑多个方面,包括目标定位、技术选择、内容管理、用户体验等。 1、明确目标和定位: 确定你的目标受众是谁,他们的年龄、兴趣、消费习惯等。 明确短剧制作平台的主要定位,是提供原创短剧内容,还是为用户提供创作与分享平台。 2、市场调研和竞品分析: 分析市场上已有的短剧制作平台,了解它们的优点和不足。 找出市场空白和用户需求,为你的短剧制作平台提供独特的服务或内

springboot项目用idea maven打包成功,在文件夹用命令行打包不成功

一个springboot工程,在idea里用maven里生命周期里package打包 ,可以打包成功,但是用mvn命令行在文件夹里就打包不成功, 报如下错误: -source 1.7 中不支持 lambda 表达式,请使用 -source 8 或更高版本以启用 lambda 表达式 后来经查,根据这篇博客 https://blog.csdn.net/weixin_43994410/articl