乐趣区

关于python:Python和Go语言哪个更适合你

在本文中,咱们探讨了 Python 和 Go 这两种世界上最风行的编程语言的差别、相似之处和用例。从对两者的疾速比拟开始,而后看看它们在可读性、速度、易学性等方面如何叠加。
Python 和 Go 不同,通常用于不同的目标。Python 是数据科学家的次要语言,其中 Go 是服务器端命令的语言。Go 是用于运行软件的语言。它是更快的语言,以 Java 和 C++ 速度执行。

Python 是用于编写可读、可共享代码的语言——因而围绕它的大型社区。
从技术上讲,Go 是一种为速度而构建的过程式函数式语言,而 Python 是一种面向对象、命令式、函数式和过程式语言。Go 反对并发,即算法可能无序运行其步骤,而 Python 不反对。

简而言之,如果你正在解决数据并且受众是人,请应用 Python。如果你正在应用服务器,请应用 Go。
Python 编程语言
Python 于 1991 年首次公布。由 Guido van Rossum 设计,Python 的设计理念以代码可读性为核心。
Python 是一种解释性的、高级的、通用的编程语言。它是面向对象的。因为其设计侧重于可读性,Python 社区将依据代码的 Pythonic 水平对彼此的代码进行评分。因为其可读性,Python 非常适合:

学习编程
疾速收集想法
与别人共享代码

Go 编程语言
Go 是 Golang 的缩写,Go 最后由 Robert Griesemer、Rob Pike 和 Ken Thompson 于 2007 年在 Google 设计。

Go 是一种动态类型的编译型编程语言,由 Google 开源并保护。Go 是 C 系列编程语言的一部分,它应用垃圾收集器来解决内存透露。在设计 Golang 时,它的创建者想要改良曾经存在的货色,其中之一就是可读性。
1、可读性
不可读代码的根本规范是 Java 和 C++。Python 和 Go 都心愿改良它们。Go 做了一些扭转。与 Python 相似,Go 勾销了:

行尾的冒号
括号和圆括号的应用。

如果相熟 C 级语言,那么这应该看起来很相熟:
Go 代码示例:

package main

import "fmt"

func split(sum int) (x, y int) {
    x = sum * 4 / 9
    y = sum - x
    return
}

func main() {fmt.Println(split(17))
}

返回: 7 10
Python 代码示例 (非 -Pythonic):

even_numbers = []

for number in range(10):
 if number % 2 == 0:
    even_numbers.append(number)

print(even_numbers)

Python 代码示例 (Pythonic):

even_numbers = [x for x in range(10) if x % 2 == 0]
print(even_numbers)

返回:

[0, 2, 4, 6, 8]

2、错误处理
大多数 IDE 将帮忙在编写 Python 代码时发现错误。与 Python 不同,Go 没有错误处理。它是为曾经晓得如何编码的人而构建的。尽管更易于浏览和键入,但其简略性的代价是为代码中的谬误留下了更大的空间,这意味着将破费更多工夫调试代码。
3、速度
说到速度,Go 很快。Go 的本意是速度快,但这并不是 Python 的惟一指标。在大多数基准测试中,Go 远远超过 Python。Go 甚至超过了 Java 的速度,人们普遍认为 Java 比 Python 快得多。如果归结为须要一个程序来疾速加载软件,那么 Go 就是 Go 的抉择。

4、库
Python 比 Go 早 16 年,因而围绕它建设了一个更大的社区。在该社区中,它对面向所有类型的 Stack Overflow 提供了大量反对:初学者、课程、教程和操作指南,以及最终的 Python 库。很可能,永远不用在 Python 中从头开始。
Python 库尤其宏大。他们能够让任何编写代码的人在第一天做他们想做的事。应用 Pandas 能够轻松摸索数据表,应用 TensorFlow 和 PyTorch 能够轻松进行机器学习。
Go 不提供这种反对。你必须编写本人的所有脚本来搜寻数据表。在 Go 中开发机器学习将是一项微小的致力。(顶级 Go 库都与服务器保护无关)
5、共享
与 Jupyter notebook 共享可执行的 Python 代码是数据迷信世界中常见的工作流工具之一。Jupyter Notebooks 和 Google Colab Notebooks 容许 Python 用户在十分交互式的浏览和编写体验中浏览和执行代码。
在 Go 中共享和显示这些类型的图表将很难启动和运行。


6、简略易学
编程语言被设计得更好、更智能。任何代码的可读性使其易于学习。在编程世界中,公认的事实是 ,如果你学习一种语言,你就能够学习任何其余语言——你只须要深入研究。
探讨差别只对挑剔的人和曾经能够用一种语言读写的人有意义。从某种意义上说,这些差别并不重要,应该波及一个人开始编程的抉择。相同,这些差别仅在抉择最适宜执行性能的语言时才重要。
结语:选 Go 还是 Python?
Go 和 Python 都易于应用和学习。Go 真的很快。Python 有大量的社区反对。
目前,在 Go 的开发中,Go 次要用于服务器端应用程序。Python 是数据科学家的首选语言,而且很可能会继续很长时间。所有 ML 库开发人员都在投入工夫为 Python 开发库。Go 可能会及时达到那里,但就目前而言,程序员的工具包中有两种语言的空间。

TSINGSEE 青犀视频研发人员在做平台开发时,在智能剖析方面用 Python 编译会比拟多,在局部基层调用能力上则采纳 Golang 比拟多。大家能够依据本身的需要来抉择初始学习的语言,也能够通过咱们的开源我的项目 EasyDarwin 来进行测试。
咱们在人工智能技术 + 视频畛域,将 AI 检测、智能辨认技术交融到各个视频利用场景中,如:安防监控、视频中的人脸检测、人流量统计、危险行为(攀高、摔倒、推搡等)检测辨认等。典型的示例如 EasyCVR 视频交融云服务,具备 AI 人脸识别、车牌辨认、语音对讲、云台管制、声光告警、监控视频剖析与数据汇总的能力。
当然,也有网友认为:作为一种编程语言,Golang 胜过 Python。Go 在大多数状况下相对占上风,它可能没有 Python 多年来取得的名气和互联网的扩张,但 Go 必定也在这方面迎头赶上。欢送在评论区和咱们探讨。

原文链接:https://juejin.cn/post/702031…

退出移动版