最近网上突然冒出来一个Julia,什么鬼?百度一查,卧槽,又是一门编程语言。之前的kotlin ,python余热未散,怎么又冒出来一个?既然咱是搞IT的,那就不能忽视,赶紧去google一下学习一下吧。下面给大家解开Julia的神秘面纱。

Julia诞生不到10年,而且在2018年对就是今年才发布了稳定版本1.0.0版本。如果哪家公司招聘上说要10年Julia开发经验,那你就可以一口盐汽水喷死他算了。

那么Julia到底有哪些特性呢?

• 快速:Julia一开始就是为高性能而设计的。Julia可以通过LLVM而跨平台被编译成高效的本地代码。
• 通用:Julia使用多分派作为编程范式,使其更容易表达面向对象和函数式编程范式。标准库提供了异步I/O,进程控制,日志记录,性能分析,包管理器等等。
• 动态:Julia是动态类型的,与脚本语言类似,并且对交互式使用具有很好的支持。
• 数值计算:Julia擅长于数值计算,它的语法适用于数学计算,支持多种数值类型,并且支持并行计算。Julia的多分派自然适合于定义数值和类数组的数据类型。
• 可选的类型标注:Julia拥有丰富的数据类型描述,类型声明可以使得程序更加可读和健壮。
• 可组合:Julia的包可以很自然的组合运行。单位数量的矩阵或数据表一列中的货币和颜色可以一起组合使用并且拥有良好的性能。

Julia的运用领域有哪些?

数据可视化视图:

数据可视化具有复杂的历史。绘图软件在功能和简单性,速度和美感以及静态和动态界面之间进行权衡。有些软件包会进行显示而不会对其进行更改,而其他软件包则会进行实时更新。
Plots.jl是一个可视化界面和工具集。它提供了跨各种后端的通用API ,如GR.jl,PyPlot.jl和PlotlyJS.jl。喜欢更多语法图形样式API的用户可能会喜欢纯粹的Julia Gadfly.jl绘图包。对于那些不想离开终端的人来说,还有UnicodePlots.jl。

部署Web

Julia允许您编写UI,静态编译代码,甚至将其部署在Web服务器上。它还具有强大的类似shell的功能,可用于管理其他进程。它提供类似Lisp的宏和其他元编程工具。
Julia具有C / Fortran, C ++, Python, R, Java和许多其他语言的外部函数接口 。Julia也可以通过嵌入API嵌入到其他程序中。具体来说,Python程序可以使用PyJulia调用Julia 。R程序可以用R的JuliaCall做同样的事情,这可以通过从R调用MixedModels.jl来证明。

数据科学

Julia数据生态系统允许您快速加载多维数据集,并行执行聚合,连接和预处理操作,并以高效格式将它们保存到磁盘。您还可以使用OnlineStats.jl对流数据执行在线计算 。无论您是在寻找方便和熟悉的 DataFrame,还是使用JuliaDB的新方法 ,Julia 都能为您提供丰富的工具。该Queryverse包装作用的元数据包,通过它可以访问这些工具与朱利安的API。除了使用表格数据外,还有JuliaGraphs 软件包可以轻松使用组合数据。
Julia可以使用JDBC.jl和 ODBC.jl驱动程序处理几乎所有数据库 。此外,它还使用Spark.jl,HDFS.jl和 Hive.jl与Hadoop生态系统集成 。

机器学习

Julia为深度学习(Flux.jl和 Knet.jl), 机器学习和AI 提供了强大的工具。Julia的数学语法使其成为表达算法的理想方式,就像它们在论文中编写一样,构建具有自动差异的可训练模型 , GPU加速以及对数TB数据的支持。
Julia丰富的机器学习和统计生态系统包括 广义线性模型, 决策树和聚类的功能。您还可以找到贝叶斯网络和 马尔可夫链蒙特卡罗的包 。

科学领域

Julia的设计从根本上讲非常擅长数值和科学计算。这可以在Julia编写的大量科学工具中看到,例如最先进的微分方程生态系统 (DifferntialEquations.jl),优化工具(JuMP.jl和 Optim.jl),迭代线性求解器 (IterativeSolvers) .jl)以及更多,可以驱动所有模拟。
Julia还提供了许多特定领域的生态系统,如生物学 (BioJulia),运筹学 (JuliaOpt),量子物理学 (QuantumOptics),非线性动力学 (JuliaDynamics),定量经济学 (QuantEcon),天文学 (JuliaAstro)和生态学 ( EcoJulia)。有了一群来自科学界各个部分的热情的开发人员和维护者,这个生态系统将继续变得越来越大。

并行计算

Julia专为并行性而设计,并为各个级别的并行计算提供内置基元: 指令级并行, 多线程和 分布式计算。该Celeste.jl项目达到1.5千万亿次/秒的在NERSC超级计算机的Cori使用650000个内核。
Julia编译器还可以为各种硬件加速器生成本机代码,例如GPU和Xeon Phis。诸如DistributedArrays.jl和Dagger.jl之类的包为并行性提供了更高级别的抽象。

上面说了很多关于Julia的特性,估计你应该会问,你说的这些特性R语言或者Python就可以实现呀。对,确实是可以。但是。。。人家跟你比的是速度。据说在10**5以下运算的时候完全体现不出Julia的优势,但是如果是在10**5以上规模的运算中Julia可以完胜。就这一句话,你说你学不学?你说你服不服?你说你怕不怕?
下面给出一个三者的对比,是一个大牛亲自测试的结果:
语言 优势 劣势
Julia 易用 输出结果可读性很差
R 易用、对截断正态分布支持,输出结果可读性强 第一次编译会额外花费时间
Python 易用 输出结果可读性不如Julia

用不用看自己了,有时间我觉得可以去简单看一下。

Julia是什么?为什么突然这么火?相关推荐

  1. julia有 pytorch包吗_GitHub发布年度机器学习榜:TensorFlow最火,PyTorch失踪,Julia第四...

    第一名毫无疑问是Python,Python在GitHub全站也非常热门,排名第三,仅次于Java和Java. 其他的机器学习常用语言则有C++.Java.Java.C#.Shell和Type,对比下面 ...

  2. GitHub发布年度机器学习榜:TensorFlow最火,PyTorch失踪,Julia第四

    郭一璞 发自 凹非寺  量子位 报道 | 公众号 QbitAI 最近,GitHub官方公布了2018年度机器学习排行榜,公布了最受欢迎的十大语言.十大软件包和十大项目. 排行榜是GitHub官方把20 ...

  3. python是一种什么类型的编程语言-Python这么火,为什么说它不是未来的编程语言?...

    本文转载自公众号"读芯术"(ID:AI_Discovery) Python这两年非常火,随处可见的广告让它逐渐变成了一种老少皆知的存在. 虽然问世几十年后,Python才得到编程社 ...

  4. 为什么叫python编程-Python这么火,为什么说它不是未来的编程语言?

    本文转载自公众号"读芯术"(ID:AI_Discovery) Python这两年非常火,随处可见的广告让它逐渐变成了一种老少皆知的存在. 虽然问世几十年后,Python才得到编程社 ...

  5. python缺点这么多、为什么还流行_Python这么火,为什么说它不是未来的编程语言?...

    本文转载自公众号"读芯术"(ID:AI_Discovery) Python这两年非常火,随处可见的广告让它逐渐变成了一种老少皆知的存在. 虽然问世几十年后,Python才得到编程社 ...

  6. 为什么说python是计算机语言的未来_Python这么火,为什么说它不是未来的编程语言?...

    本文转载自公众号"读芯术"(ID:AI_Discovery) Python这两年非常火,随处可见的广告让它逐渐变成了一种老少皆知的存在. 虽然问世几十年后,Python才得到编程社 ...

  7. 最火的开源项目及编程语言

    GitHub目前已经成为全球最流行的开源项目托管平台,目前托管在GitHub上的项目数量已经达到了1000万,而达到这一里程碑只用了不到4年的时间,这足以见得开源的趋势以及GitHub的受欢迎程度. ...

  8. 实例对比 Julia, R, Python,谁是狼语言?

    目标受众:对Julia感兴趣的人 阅读时长:本文大约800字.全文读完可能需要这首歌的时间 狼,就是比狠,更狠一点! 比京香还火?Julia到底是个什么来头 最近突然火了一门语言叫Julia.有多火呢 ...

  9. JULIA学习材料合集

    julia语言最近火的一比,整理了一套学习资料给你们,一共六本合集,一起打包下载 <Beginning Julia Programming> <Beginning Julia Pro ...

最新文章

  1. 东北面人李---精品作品展
  2. 湖南2021年计算机一级考试,2021年湖南计算机一级考试时间(4页)-原创力文档...
  3. 过去式加ed的发音_过去式的变化规律,掌握诀窍了吗?
  4. UIViewController详解
  5. 国产自主研发编程语言火了,同行十二年,不知Python是木兰?
  6. 树莓派python编程读取电压_《树莓派Python编程指南》——3.2 在结构体中存储值-阿里云开发者社区...
  7. 信息学奥赛一本通C++语言——1059:求平均年龄
  8. JavaTPoint 编程语言中文教程【翻译完成】
  9. 你需掌握的CSS知识都在这了(长文建议收藏,文末有福利)
  10. AD批量修改电阻封装记得按CTRL+A
  11. 点云能量预测:KPConv点云输入方式
  12. python语言数字类型字节_Python中 各种数字类型的判别(numerica, digital, decimal)
  13. 计算机放大电路的基础知识,集成运算放大器基础知识及示例电路
  14. Navicat连接Oracle
  15. 电子招投标技术的五大好处
  16. Android 一款十分简洁、优雅的日记APP
  17. STM32F407配置PLLI2SCLK实现特定50MHz时钟驱动83848
  18. 《Pro SQL Server Internals, 2nd edition》节选翻译(一)
  19. 计算机网络——网络层知识点
  20. 关于github双因素验证问题解决方案

热门文章

  1. 开源的.Net IDE :SharpDevelop
  2. 锚定情境法(二):如何合理选择情境题?
  3. 日语学习的在线资料,朋友推荐,拿来分享
  4. 怎样用计算机传输文件,两台电脑之间互相传文件的方法步骤
  5. tf.matmul函数用法
  6. JS:对象的浅克隆、深克隆
  7. Linux驱动开发(一)
  8. 2020年煤矿安全监测监控实操考试视频及煤矿安全监测监控作业模拟考试
  9. 二、 剖析Netty的工作机制之Buffer、Channel、Selector分析
  10. 【Android 你的SurfaceView休眠了吗】