属于新十年的开发语言:Go语言可能很快会取代Python

开发 后端
30年前,Python首次亮相,它花了20年才得到开发者的赞赏。如今,它已经成为开发者第二喜爱的语言。尤其是在过去五年里,Python用户激增,成为机器学习和数据科学开发者的首选语言。

 本文转载自公众号“读芯术”(ID:AI_Discovery)

30年前,Python首次亮相,它花了20年才得到开发者的赞赏。如今,它已经成为开发者第二喜爱的语言。尤其是在过去五年里,Python用户激增,成为机器学习和数据科学开发者的首选语言。

在未来几年里,Python在这些领域的主导地位必然是很难被动摇的。但与较新的语言相比,它依然存在严重的缺陷。这也是20年代开发者们所面临的障碍。现在正是反思Python的问题并选择更好的语言取代它的最好时机。对于人工智能开发和数据科学来说,下一个首选语言可能是Go语言。

 

Python广受欢迎的原因

Python广受欢迎的主要原因是它很容易学习。与其他语言相比,它的语法很简单,任何人都能在几小时或几天内学会Python基础知识。就算学习了C++或Java等其他语言,开发者还是更倾向于使用Python。这是因为Python的库几乎可以满足用户的所有需求。

 

Python 的问题

速度

Python是解释语言,这导致了其较大问题——执行速度慢。与C++和Go等其他编译语言相比,Python的执行速度非常慢。Python还是动态语言。变量的数据类型在运行时自动分配,这导致其执行速度变得更慢。

C/C++的使用

为了克服Python执行缓慢的问题,Tensorflow、Numpy和Pandas等库部分是用C或C++编写的。这能大幅提高执行速度。基本上Python需要借助其他语言来克服自身问题。

全局解释器锁

Python的全局解释器锁(GIL)一次只允许执行一个线程,同时提高了单线程性能。Python的多线程并不是真正的多线程同时运行。事实上,Python做不到真正的多线程。

注意,Python非CPython实现的部分,比如Jython和IronPython没有GIL。

 

为什么选择Go语言?

Go是开源编程语言,它使得构建简单、可靠且高效的软件变得容易。10年前,Go首次亮相,它在谷歌作为通用语言开发。与Python和其他编程语言相比,它有一些显著的优势。

快速

Go是静态编译语言。这意味着其执行速度要比Python快好几倍。与Python不同,Go不需要其他语言的帮助;另外,Go编译代码的速度比C++和Java还快得多。

易于学习

Go的语法和C相似,比较简单,是一门易于学习的编程语言,特别是对于那些已经了解C或Java基础知识的人。想要学习Go的基础知识,可以在A Tour of Go网站进行交互式学习,或者阅读官方文档。

日益流行

Hackearth调查了来自76个国家的16000多名开发者,显示Go是2020年很受欢迎的编程语言。无需惊讶,有32%富有经验的开发者和29%的学生表示想学Go。

 

属于新十年的开发语言:Go语言可能很快会取代Python

 

 

属于新十年的开发语言:Go语言可能很快会取代Python

 

并发性

并发性是Go的优势之一。它拥有Goroutines来实现并发,Goroutines是一些可以同时独立运行的函数。Goroutines体积很小,只占用2kB内存,你可以同时运行成千上万个Goroutines函数。

Go为什么适合人工智能研究

实际上,对于人工智能研究和数据科学来说,Go没有任何特殊之处。那么究竟为什么开发者会选择它呢?

30年前,开发Python不是为了构建机器学习或深度学习算法,也不是为了实现数据可视化。它之所以成为今天这个样子,是因为开发者和学生喜欢用Python,而且它能够支持开发者开发他们想要的东西。

Go旨在提高程序员的工作效率。相比Python,它的几大优势让它很容易在未来几年取代Python成为很受欢迎的语言。最后一言以蔽之:相比其他任何语言,Go可以更好地支持“20年代开发者”开拓创新。

 

责任编辑:华轩 来源: 读芯术
相关推荐

2019-02-26 13:53:07

PythonJava编程语言

2013-02-19 09:26:17

2020-04-26 12:08:10

Python编程语言开发

2020-10-19 12:21:38

GoPython开发者

2015-11-24 17:20:43

Go语言十年宝座

2023-03-27 23:40:01

人工智能web开发一

2018-05-13 22:56:20

Go语言语法

2020-04-07 21:13:05

智能建筑传感器物联网

2020-12-09 05:28:22

语言Charj代码

2021-08-18 06:48:52

编程语言开发IT

2012-03-01 11:21:30

内网安全安全产品安全市场

2021-01-11 13:35:00

云计算云趋势云安全

2009-04-13 15:29:49

COBOL编程语言商业语言

2020-11-13 05:53:26

物联网IOT物联网技术

2020-05-25 09:06:58

Julia语言Python

2019-12-13 16:08:57

戴尔

2021-07-25 22:34:33

人工智能作家机器人

2016-09-12 11:17:24

代码开发Linux

2022-09-04 23:24:45

Go语言监控

2021-01-15 09:53:20

云计算混合云
点赞
收藏

51CTO技术栈公众号