Julia 成为 2018 年发展最快的编程语言之一,因为它结合了几种主要语言的优势而备受推崇。
同时,Python 依然在使用范围方面占据着巨大优势,并且热度一直保持着上升趋势。
那么,哪种编程语言将在 2019 年统治机器学习?来看下分析吧。
首先来看看风头正劲的 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 版后,该语言的用户对于它的进展情况总体上是持乐观态度的,尽管有些人仍然担心它会发生错误的处理状态,或者产生无用文档。
但 Julia 任重而道远。
如今,Python 和 R 语言通常在机器学习中占主导地位,在开发人员普及方面,Python 仍然是增长最快的编程语言,这在很大程度上取决于其机器学习框架和库的优势。相比之下,只有相对较小比例的开发人员使用刚刚起步的 Julia。
Python 在使用范围方面的确占据着绝对优势。
当前的机器学习热潮推动了学习 Python 的开发人员数量急剧增加。除了在大数据分析中使用该语言外,Python 的多功能性在其使用范围内的优势也很明显,从 Web 和桌面应用程序到编排系统操作。
软件质量评估公司 TIOBE 的数据显示,2018 年 12 月,Python 超越 C++成为 TIOBE 索引排行的第三名,这对于 Guido van Rossum 的脚本语言来说是历史最高水平。
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 年起的五年内发展最快的工作类别,并且有越来越多的免费课程可供想要专攻该领域的开发人员使用。
身为开发者的你,更看好哪种语言呢?
最后的最后,想免费学习更多 AI 课程,请访问七月在线官网:www.julyedu.com