Python即将出局?Julia和Swift能取而代之吗?( 二 )


此外 , Swift拥有更好的内存安全和管理工具 , 即自动引用计数(Automatic Reference Counting) 。 与garbage收集器不同 , 只要引用计数归零 , ARC就会回收内存 , 因此更为准确 。
作为提供类型注释的编译语言 , Swift和Julia比Python速度更快 , 功能更强大 。 仅仅这一点 , 可能就足以让开发人员推荐它们 。
Python即将出局?Julia和Swift能取而代之吗?文章插图
Python在并行性方面有局限性Python最大的缺点不是速度慢 , 而是并行计算的局限性 。 简单地说 , Python使用GIL(全局解释器锁)——它会通过阻止多个线程同时执行 , 来提高单个线程的性能 。 该过程有一个很大的障碍:开发人员不能使用多个 CPU核心来进行密集的计算 。
我们在利用Python与Tensorflow、PyTorch 等C/C++库的互操作性方面做得不错 。 这一点众所周知 , 我也十分赞同 。 但是Python包装器并不能解决所有调试问题 , 最后还是得靠C和C++检查底层代码 。 从根本上说 , Python的优势在低层无效 , 这点足以让Python出局 。
这一因素很快将决定Python的衰落、Julia和Swift的崛起 。 Julia专门用来解决Python的缺陷 , 主要有三个特性:协同程序(异步任务)、多线程和分布式计算 , 这些特性都展示出并发和并行编程的无限可能 , 这种结构使Julia能够以比Python更快的速度执行科学计算并解决大数据问题 。
另一方面 , Swift有一切开发移动应用所需的工具 , 能够进行并行计算 。
Python即将出局?Julia和Swift能取而代之吗?文章插图
图源:unsplash
Python即将出局?Julia和Swift能取而代之吗?文章插图
Swift和Julia都拥有Python的互操作性和强大的支持虽然在速度、多线程和类型安全方面有不足之处 , 但Python有包含大量库和程序包的巨型生态系统 。 在Python面前 , Swift和Julia在机器学习领域仍然是个“弟弟” , 拥有的库数量非常有限 。 然而 , Julia和Swift比Python更强的互操作性大大弥补了二者库支持的不足的缺点 。
Julia不仅允许程序员使用Python代码(反之亦然) , 还能与C语言、R语言、Java以及几乎所有主要编程语言的进行互操作 。 这种多功能性能有力推动这种语言的发展 , 增加它被数据科学家迅速采用的机会 。
另一方面 , Swift通过PythonKi 库提供了与Python的互操作性 。 Swift(起源于苹果)最大的卖点是它得到了谷歌的大力支持 , 十几年前收益于全力支持而崛起的正是Python , 可真是风水轮流转 。
另外 , Swift的创建者Chris Lattner正在谷歌的AI brain团队工作 , 这表明Swift正在被重点培养 , 以在机器学习领域的取代Python 。
Tensorflow团队通过S4TF项目投资了Swift , 这进一步证明了该语言不仅仅是Python的修饰版 。 相反 , Swift 凭借其差异化的编程支持和像C语言一样的低层级工作能力 , 将有可能被用来取代支撑深度学习的工具 。
Python即将出局?Julia和Swift能取而代之吗?文章插图
图源:unsplash
随着数据量的不断增加 , Python的致命弱点很快就会浮现 。 注重易用性和快速编码能力的日子一去不复返 , 速度和并行计算才是游戏的主角 。 Python 作为一种通用语言 , 将不再解决这些问题 。 Python终会退场 , 而Julia和Swift似乎就是候选接任者 。
不过 , 我并不是说作为编程语言的Python会立刻消失 , 它会一点一点淡出人们的视线 。 Python在数据科学中的地位将逐渐降低 , 专门为深度学习而设计的语言才是未来主流 。
Python即将出局?Julia和Swift能取而代之吗?文章插图