| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> Julia 生态发展之路 -> 正文阅读 |
|
[Python知识库]Julia 生态发展之路 |
今年 7 月 19 日,Julia 语言创始人成立的 Julia Computing 公司宣布完成了 2400 万美元的 A 轮融资,由 Dorilton Ventures 领投,Menlo Ventures、General Catalyst 和 HighSage Ventures 跟投?[1]。融资将被用于 Julia 生态的扩张,继续研发产品让 Julia 语言变得更容易部署、更加好用?[2]。 Julia 是一种速度快且使用简单的高级通用编程语言,最初设计用于科学计算领域?[3],2012 年发布以来已有超过 2900 万次下载,超过 10000 家公司使用?[1],包括 AstraZeneca、Google、Intel、Microsoft 和 NASA 等。作为一个开源的语言项目,有超过 1000 贡献者投入社区?[4]。 Julia 近年的发展势头迅猛(8 月 TIOBE 排名 26?[5]),但众所周知,R、Python 已经是数据计算和人工智能领域最流行的语言,拥有非常丰富的生态系统,对比之下,Julia 还很不成熟。Stack Overflow 上关于 Julia 的问题仍不到 Python 的百分之一?[6]。 图 1:Trends on Stack Overflow?[6] 那么 Julia 凭什么优势成为了有力竞争者? #?突出的特性?#类似 Python、R 的脚本语言是面向解释器的,用户写完代码,可以直接解释执行,并返回结果;而类似 C、Fortran 等语言必须先编译成机器语言才能执行。后者速度更快但使用起来没有前者方便,因此想要快速实现复杂的程序逻辑时,开发者可能会选择用脚本语言写算法,之后再翻译到 C、C++ 等语言,这是一个花精力又容易出错的过程?[7]。 Julia 的诞生就是为了将以上不同语言的性能结合成一门语言的特性,Julia 的编程过程是交互式的、动态的,同时也拥有静态编译语言的性能?[7]。官网介绍的 Julia 特性如下?[4]:
Julia 的速度一定程度上是语言本身的设计带来的,可以根据需求引入静态类型,牺牲部分不那么重要的动态性换来性能的大幅提升?[10]。可以说 Julia 是在尝试寻找两种编程语言性能和动态的平衡点?[11]。 Julia 官方提供了 Micro-Benchmarks 来比较不同语言编译器在处理一些通用代码时的表现,比如函数调用、字符串解析、排序、数值循环、随机数生成、递归和数组操作等?[12]。可以看到 Julia 的表现接近 Rust, 远比 Python、R 等语言快,特别是在递归的处理上,约为 Python、R 速度的?100?倍。 图 2:Julia Micro-Benchmarks?[12] #?成长中的生态?#Julia 语言的生态系统还在飞速成长的阶段,当前可以大致分为语言项目、工具、应用三部分来看?[4]:
图 3:Julia 生态圈 #?语言项目Julia 语言项目在 GitHub 上开源,语言仓库主要开发迭代是 2012 年至 2018 年,2019 年至今的代码提交频率并不高。 图 4:Julia 仓库提交次数?[13] 当前开启的 Issues 超过 3000 个,Issues 关联最多的标签是?Performance、doc 和 bug,其中 Performance 标签的描述是 “Must go faster”,Issues 主要是关于使用 Julia 编写的代码优化以达到更快的速度?[13],可见选择 Julia 的用户对于性能的重视。 # 工具Julia 已有的工具软件生态主要可以支持通用应用、可视化、数据科学、机器学习、科学计算和并行计算等实现?[4]:
注册的库已超过 5000 个?[4],在 Julia Observer 上可以看到?Data Science、Graph Theory 和 Machine Learning?三个标签相关库的数量最多(剔除未分类的)[15]。 图 5:各标签相关的库数量?[15] 除了库,Julia 还提供了 Juno、VS Code、Jupyter 等主流编辑器和调试、代码分析等工具的支持。 ##?Julia Computing 公司该公司成立于 2015 年,其成立最重要的目的就是为了发展 Julia 语言。其旗舰产品 JuliaHub 是一个 SaaS(Software as a Service)平台,允许用户直接在平台上使用 Julia 开发、部署应用,并扩展上千个节点。该平台同时提供了 Pumas、JuliaSim、JuliaSPICE 等专业领域的前沿产品,可用于药物、多物理场和电子电路的建模和仿真模拟?[2],其中和 Pumas-AI 在制药领域的合作,给各大疫苗包括新冠疫苗研发中提供了较大的助力,使得 Julia Computing 成功走入大众视野?[16]。 #?在研究领域的应用Julia 在学术研究中应用广泛,官网要求使用了 Julia 的论文需要引用 《Julia: A Fresh Approach to Numerical Computing》 已被引用超过 2500 次?[17]。 在 2021 年 Julia 开发者调研中显示有 70% 用户使用 Julia 进行学术研究,用于商业工作的相对较少?[18]: 图 6:Julia 开发者调研-用途?[18] 学术研究的用户中研究生或研究人员占比超过 50%,研究方向以计算机科学、数学、物理和化学为主?[18]: 图 7:Julia 开发者调研-学术领域?[18] 使用 Julia 实现的部分主要是数据科学、建模模拟和统计等?[18]: 图 8:Julia 开发者调研-实现的部分?[18] Julia 目前主要的应用还是在学术研究中,全世界有超过 1500 所高校将 Julia 用于教学实践中或开设 Julia 课程,如 MIT、Stanford 和 UC Berkeley 等?[1]。数值计算、机器学习等方面的生态是最丰富的,职业开发者在其他商业领域采用 Julia 主要也是应用于大数据的分析预测中?[18]。如何扩展 Julia 的应用多样性也是 Julia 要发展生态必须考虑的因素。 #?小结?#Julia 的创始人在博客中说 Julia 诞生于“我们的贪婪”?[19]:
Julia 希望能继承不同编程语言的优点,发展至今,已经实现了创始人们大部分的想法。 近年数据科学、仿真模拟和机器学习等方面的需求快速增长,特别是机器学习的兴起让 Julia 有机会发挥自己的优势?[20]:
Julia 在其他领域是否可以有更加多样的应用,Julia Computing 公司融资后能实现怎样的商业价值都还是未知数,但 Julia 的演进一定不会停止,创始人们不会满足于现状,最完美的语言可能永远不会出现,但他们在实现的路上已经比其他人走得远了?[20]。 参考[1]?Julia Computing Raises $24M Series A, Former Snowflake CEO Bob Muglia Joins Board - HPCwire https://www.hpcwire.com/off-the-wire/julia-computing-raises-24m-series-a-former-snowflake-ceo-bob-muglia-joins-board/ [2]?Julia Computing https://juliacomputing.com/ [3]?Julia - wikipedia https://en.wikipedia.org/wiki/Julia_(programming_language) [4]?Julia https://julialang.org/ [5]?TIOBE Index for August 2021 https://www.tiobe.com/tiobe-index/ [6]?Stack Overflow Insights:Trends https://insights.stackoverflow.com/trends?tags=r%2Cstatistics [7]?Julia: come for the syntax, stay for the speed - nature https://www.nature.com/articles/d41586-019-02310-3 [8]?Julia Joins Petaflop Club - HPCwire https://www.hpcwire.com/off-the-wire/julia-joins-petaflop-club/ [9]?知乎专栏:浅谈Julia语言:Julia的编程范式 https://zhuanlan.zhihu.com/p/38434080 [10]?Julia: A Fast Dynamic Language for Technical Computing https://arxiv.org/pdf/1209.5145v1.pdf [11]?掘金:为什么Julia这么快?https://juejin.cn/post/6844903660669911054 [12]?Julia Micro-Benchmarks https://julialang.org/benchmarks/ [13]?JuliaLang/julia - GitHub https://github.com/JuliaLang/julia [14]?Julia Observer: Packges https://juliaobserver.com/packages [15]?Julia Observer: Categories https://juliaobserver.com/categories [16]?Why Julia is Turning Heads in 2021 - the next platform https://www.nextplatform.com/2021/03/22/why-julia-is-turning-heads-in-2021/ [17]?Julia: A Fresh Approach to Numerical Computing - Google Scholar https://scholar.google.com/scholar?q=Julia:+A+Fresh+Approach+to+Numerical+Computing&hl=zh-CN&as_sdt=0&as_vis=1&oi=scholart [18]?2021 Julia User & Developer Survey https://julialang.org/assets/2021-julia-user-developer-survey.pdf [19]?Why We Created Julia https://julialang.org/blog/2012/02/why-we-created-julia/ [20]?微信公众号:超越Python、C++、R?人气语言Julia联合创始人Keno Fischer独家专访 https://mp.weixin.qq.com/s/_t4pOOJ-Tc5wXvrcSBrB8w |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 13:39:23- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |