||
1. Julia是什么?
Julia 是一个面向科学计算的高性能动态高级程序设计语言。其语法与其他科学计算语言相似。他们想要的是一个开源的软件,它要像C语言一般快速而有拥有如同Ruby的动态性;要具有Lisp般真正的同像性(Homoiconicity)而又有Matlab般熟悉的数学记号;要像Python般通用、像R般在统计分析上得心应手、像Perl般自然地处理字符串、像Matlab般具有强大的线性代数运算能力、像shell般胶水语言的能力,易于学习而又不让真正的黑客感到无聊;还有,它应该是交互式的,同时又是编译型的……
2. Julia相对于R和Python的优势
2.1. Julia很快
看一下Julia官网上的Benchmark,Julia综合速度,是R语言的42倍,是Python的15倍,是Java的3倍,是Fortran的1倍,和C语言速度不相上下。
2.2. 原生态支持并行运算和GPU开发
Julia是为为并行计算和分布式计算而设计,更适合于大数据的开发和运算。Python和R这方面先天不足。
2.3. Julia比R更像Python
Julia,R和Python被称为科学运算的三大语言,R语言是统计学家开发的,更偏向于统计分析,工程化不足。Python是简单工程化语言,但是数学运算速度慢。Julia相对于R语言,更工程化,而且更快,缺点是相关的包比较少。Julia相对于Python而言,更专注于科学运算。未来我相信,Julia会把R语言在数据科学的份额占掉一大半,同时会吞食Python在数据科学中的位置。
3. Julia的应用前景(来源:Julia中文官网)
Julia可以让你开发用户界面,静态编译代码,甚至部署到网页服务器上。它还有强大的类似壳层(shell)的管理进程功能。它还提供类似Lisp的宏和其它元编程的能力。它还和其它语言友好相处,提供 C, Python, R, Java, 还有更多的语言之间的稳定的界面。
3.4. 规模化机器学习
Julia为机器学习和人工智能提供强大的深度学习工具 (Flux and Knet)。和论文中发表的数学公式一样, Julia的数学语法是表达算法的理想方式,通过 自动微分, GPU加速和terabytes数据支持来 建立可训练的模型。
Julia丰富的机器学习生态系统还提供监督式学习算法, 比如 回归, 决策树, 以及非监督式学习算法,比如 聚类 。您还可以找到 贝叶斯网络和 马尔科夫蒙特卡洛的外部库。
3.6. 并行和异构计算
Julia设计上就具有并行性, 提供各个层次的内置并行计算能力: 矢量化(SIMD), 多线程 和 超级计算机上运行的分布式计算, Julia复杂的编译器可以生成各种硬件加速器的机器码,比如GPUs 和至强融核。编写在所有平台上都可以运行的通用代码, 不需要考虑底层的细节。
4. 学习Julia与弯道超车
一个朋友说,当你下决心做一件事情时,最难的部分已经过去了。
古人也说:“天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣。”
关于很多事情,都有一个先发优势,遇到新的东西,积极拥抱,上士闻道,勤而行之。这才是应该有的态度。
人应该有舍我其谁的自信,而不是妄自菲薄,故步自封。
中国通过互联网革命,取得领头。育种通过Julia获得新生。
5. Julia学习笔记
为了更好的记录“学习Julia”这个Flag,我将公众号的菜单列了一个子目录“Julia”,记录自己的学习笔记,后期积累一段之后,放到知识星球里面。
莫说育种不高端
语言都用最前沿
弯道超车尤可期
点点滴滴把石穿
欢迎志同道合的小伙伴,多多交流Julia学习心得,笔记。
欢迎关注我的公众号:
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-27 02:12
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社