新智元报道
来源:techrepublic
作者:Nick Heath 编辑:木青
【新智元导读】在发布1.0版本后,Julia团队现在希望让它成为机器学习领域的首选语言。同时,Python和R语言通常在机器学习中占主导地位,在开发人员普及方面,Python仍然是增长最快的编程语言。
Julia成为2018年发展最快的编程语言之一,因为它结合了几种主要语言的优势而备受推崇。
同时,Python依然在使用范围方面占据着巨大优势,并且热度一直保持着上升趋势。
那么,哪种编程语言将在2019年统治机器学习?来看下分析吧。
Julia风头正劲,适合制作可微分算法
首先来看看风头正劲的Julia。
Julia于2012年发布,由麻省理工学院(MIT)的计算机科学和人工智能实验室(CSAIL)开发和孵化,是一种免费的开源语言。
目前,Julia已经推出1.0版本,Julia现在有希望成为机器学习(ML)领域的首选语言。麻省理工学院教授Alan Edelman说:“Julia 1.0的发布标志着Julia现在已经准备好通过将Python和R语言的高效率和易用性与C 的闪电般速度相结合来改变技术世界。”
能帮助Julia实现这一目标的是Flux,这是一款面向Julia的机器学习软件库,旨在使ML代码更易于编写,同时简化训练流程,并且与竞争框架相比,能提供在GPU和Google TPU等硬件加速器上的某些性能优势。
Julia背后的团队表示,他们的语言非常适合制作可微分算法——这是一种程序性的、数据驱动的代码,可用于构建机器学习中使用的神经网络。
Julia团队在博客文章中写道:
我们需要一种语言来编写可区分的算法,而Flux将帮助Julia成为满足这类需求的语言。 Julia非常适合用于数学和数值计算,并且非常适合表达ML算法。同时,它融合了现代设计和编译器中的新思想,可以更容易满足前沿的高性能需求。
根据Julia团队的博客文章,Flux库使用各种专注ML工具扩展了Julia的编译器,从而支持一流梯度,在性能和开发人员控制之间取得更好的平衡;为GPU及时进行CUDA内核编译,在训练期间进行自动批量处理,以减少开销;在Google TPU上进行优化运行。
该团队表示,Flux支撑下的Julia,以及即将推出的可分辨编程语言Myia和最近的Swift for Tensorflow,可能很快就会挑战既定的机器学习框架和方法。
在Julia今年早些时候发布1.0版后,该语言的用户对于它的进展情况总体上是持乐观态度的,尽管有些人仍然担心它会发生错误的处理状态,或者产生无用文档。
好上手的Python仍是王者,使用范围上占据绝对优势
但Julia任重而道远。
如今,Python和R语言通常在机器学习中占主导地位,在开发人员普及方面,Python仍然是增长最快的编程语言,这在很大程度上取决于其机器学习框架和库的优势。相比之下,只有相对较小比例的开发人员使用刚刚起步的Julia。
Python在使用范围方面的确占据着绝对优势。
当前的机器学习热潮推动了学习Python的开发人员数量急剧增加。除了在大数据分析中使用该语言外,Python的多功能性在其使用范围内的优势也很明显,从Web和桌面应用程序到编排系统操作。
软件质量评估公司TIOBE的数据显示,2018年12月,Python超越C 成为TIOBE索引排行的第三名,这对于Guido van Rossum的脚本语言来说是历史最高水平。
TIOBE网站12月编辑语言索引数据
TIOBE还强调了Python在教学中日益增长的用途:2014年,Python成为70%美国大学的入门编程课程。
Python的确有很多优势:Python代码相对易于阅读和理解,支持多种编程范例,具有可以放入代码的各类软件库,并且能扩展到大型应用程序。网上还有很多高质量的免费教程、课程和视频,这很有利于传播。
Python一直被认为是最容易学习的编程语言之一,并且以其高可靠性和简单的语法而闻名,特别是新编码器。
“我认为,Python是最接近'即时满足语言'的语言,意思是代码非常少,即使你是一名新手程序员也能学会,”IEEE研究员兼研究生工程院院长Karen Panetta说“这是因为Python读起来像英语,这使得它更有利于广大用户受众学习。”
新语言层出不穷,支撑机器学习发展
Julia团队表示编程语言的发展绝对不会止步于此,并且语言的发展会对机器学习起着重要的作用。
我们相信机器学习的未来取决于语言和编译器技术,特别是在扩展新的或现有的语言以满足机器学习研究的高要求时。 支持差异化、矢量化、不同硬件和文化差异的语言将推动科学的大幅进步。
Julia团队说:“比起那些新一代的工具 Myia、Swift/TF和Flux,TensorFlow、PyTorch和KNET是为现有框架所准备的。”
不过,将来那些新一代的工具很有可能派上用场。“如果你在ML中取得新的突破,他们可能是你最好的选择。给他们一个机会,看看机器学习的未来是什么样的。”
据LinkedIn称,机器学习工程师是从2017年起的五年内发展最快的工作类别,并且有越来越多的免费课程可供想要专攻该领域的开发人员使用。
身为开发者的你,更看好哪种语言呢?
参考链接:
https://www.techrepublic.com/article/julia-vs-python-which-programming-language-will-rule-machine-learning-in-2019/
https://www.tiobe.com/tiobe-index/