目录

Go VS Python

简介
在很多地方我都无意有意间去对比这两门语言, 其实每一门语言都有它的应用领域,没有必要看网上那些争论。

应用场景

从应用领域看这两门语言的对比

go的应用领域
  • 云原生
  • 区块链
  • 微服务
  • 分布式
  • web,像电商,直播项目等等
  • web3
  • 刷算法题,我也用Go, 是为了熟悉Go。没必要用py,虽然相对用py刷算法要简单些。但技多不压身!
  • 黑客,游戏等等。我也用Go,有专门的黑帽子编程这本书,不过我还没接触过。 遇到这些项目,用Go。

py的应用领域
  • 数据分析
  • 爬虫
  • 人工智能
  • 运维,测试,办公自动化
  • web 遇到这些,想都不要想,用py。最好不要用py做web项目,学那些web框架,框架我学了gin一个能够灵活运用写项目就够用了。

各自擅长的领域

go完胜的领域
  • 性能,体量比较大的项目,首选go,像电商,直播等等,这些项目用python性能是不足的,不然知乎也不会用go重构了py。体量小的项目,用什么都无所谓。
  • 编译,go编译后只有一个exe,不香吗,而且是跨平台编译。和py打包后一堆dll文件要好很多,毕竟它是一门编译型语言,go编译后干净利落(前提是关掉cgo,否则复杂的程序还是会产生动态链接库文件的),关闭命令。我博客用的hugo、很久之前用的mardown文件自动生成目录的exe,就是用go写的,很棒的软件!
1
go env -w CGO_ENABLED=0
  • 维护性、扩展性,健壮性,go完胜
  • 代码可读性,go好很多,尤其是源码,py的源码有些晦涩难懂。而且各种奇诡精妙的写法。
  • 部署,移植,go完胜。比py去下各种第三方库,出现版本不兼容等情况要很多,而且go一直是向下兼容的,虽然go一直在更新,但用最新的go环境去运行十年前的go代码,依然可以!这不比py出现各种依赖,版本不兼容的报错好很多吗?
py完胜的领域
  • 数据分析,人工智能,py完胜,py能荣登第一,主要还是数据分析和人工智能,PY比Go方便在数据类型的处理上,很方便。
  • 第三库多!py的第三方库生态多的超乎想象,一辈子都学不完。几乎要啥有啥,基本不需要自己造轮子,拿过来用就是了,造了也没别人的好,而且py造轮子的难度比go难很多,py如果真正进行底层源码的修改,难度会很大。
  • 爬虫领域,py完胜,简单的爬虫虽然跟语言关系不大。但复杂的爬虫,首选py方便些。
  • 办公自动化,测试自动化,运维自动化,py完胜go。

可以看出来,py还是偏向脚本型应用,我之前写的一些东西,也是偏向于脚本。虽然代码量并不少。如果涉及到复杂的传参,py的可读性就很差了,甚至自己都把自己绕进去了,当然,这也可能是我的原因,哈哈。

这两门语言都是很好的!而且都是自己感兴趣的,多看看吧。

chatgpt的回答

chatgpt的回答

Go 和 Python 是两种不同的编程语言,各有优缺点,适用于不同的场景和需求。下面是一些 Go 和 Python 的对比:

  1. 性能:Go 是一种编译型语言,其编译后的二进制文件具有很高的性能,适合于需要高性能的场景。Python 是一种解释型语言,其执行速度相对较慢,但对于处理大量数据的场景,Python 的高级数据结构和库可以提高开发效率。

  2. 并发性:Go 语言天生支持并发编程,其 Goroutine 和 Channel 可以方便地实现高效的并发处理。Python 也有一些并发编程的库,如 Threading 和 Multiprocessing,但相对于 Go 来说,其并发性能较弱。

  3. 语言特性:Go 是一种静态类型语言,其类型检查可以在编译时发现错误,提高了代码的可靠性。Python 是一种动态类型语言,其代码编写速度较快,但在运行时可能会出现类型错误等问题。

  4. 生态系统:Python 有非常丰富的第三方库和生态系统,可以方便地进行数据分析、机器学习、Web 开发等各种应用。Go 的生态系统相对较小,但也有一些优秀的库和框架,如 Gin、Beego 等。

总的来说,Go 适合于高性能、高并发的场景,如网络编程、分布式系统等;Python 适合于数据分析、Web 开发、机器学习等场景。具体选择哪种语言,需要根据具体的需求和项目情况来决定。 #py和go对比

个人看法

个人看法

我个人是很喜欢go的,也看了网上关于go和py的争论,正如上面介绍的,

  • 应用领域不同,选择不同。有些不涉及语言,选什么都可以。不要去看网上那些毫无意义的争论,喷go不好的只是他们没学好罢了。
  • 个人兴趣,我个人从大学开始,接触VB,C,Java,前端,Python,Go,让我选择,我会选择Go作为我的主力语言,而python作为我的辅助语言。
  • Go目前已经排名前十,Python排名第一,已经成为全球性的语言。现在很多小学生都在学python,把python当成脚本和工具用,在特定的项目下,还是得上Go,Go发展了十多年,生态虽然不如python强的变态的地步,但也已经很成熟和完善了。
  • 有意思的是,我在学习gin web过程中,用py来测试go,或者在学习爬虫过程中,用gin 来辅助py,觉得还是很灵活的,这个后面文章会有介绍。