文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

2020 年为什么要选择 Go 并放弃 Python

2024-12-24 19:27

关注

[[315867]]

为了证明 Go 语言中文网坚持做 Go 语言,推广 Go、分享 Go,为 Go 的发展做贡献,这两天会分享两篇 Go 和 Python 的对比文章。欢迎指正。

您会在 Python 和 Go 之间选择哪个?如果您对 Go(Golang)有更深入的了解,那么您肯定会选它。否则将会选择Python。那么我们讨论一下。Python 的伙伴们,有 5 个理由可以让您选择 Go。让我们一起阅读这篇文章。

“ Python非常强大,尤其是 Python 3 具有异步功能,但是 Go 将完全取代它在大型企业中的地位……”

如果您真的理解引号,则可以尝试使用 Go 编程语言。我认为 Go 是一种非常简单的编程语言,可以适应任何应用程序环境,甚至比 Javascript 编程还要简单。这可能就是为什么 Go 编程语言近年来变得流行的原因。

在本文中,我将比较两种语言的以下方面。这些方面的参数将帮助您确定哪种语言更适合您的手头项目。

网站 TreeScale.com 主页和 API 是基于某些分析工具的 Web 应用程序。这是他们的技术栈:

Repustate 几乎完全是 Python 商店。他们使用 Django 来实现 API 和网站。因此(当前)使用 Python 来实现阿拉伯情感引擎是合理的,以便保持代码的一致性。仅用于原型设计和实现,Python 是一个不错的选择。它的表达能力非常强大,第三方类库等也很好。如果您要使用 Web 服务,那么 Python 是不错的选择。但是,当您执行低级计算并严重依赖哈希表( Python 中的字典类型)进行比较时,一切都会变慢。我们每秒可以处理大约两到三个阿拉伯文文档,但这太慢了。相比之下,他们的英语情感引擎每秒可以处理大约 500 个文档。

从上面可以看到,基本框架完全基于微服务和逻辑的分离(前端和后端分离),甚至是完全不同的技术来实现。

他们将 API 服务和后端集成到一个项目中的主要原因是它们在许多地方都相似,并且通过多种语言或技术进行编码,同时有很多重复的代码。最后,他们需要花费大量时间来个性化 Django 的 API 服务,尤其是在自定义 JSON 响应方面。

我觉得当您开发一些普通的应用程序时,使用 Django 很棒,但是当您需要更高的性能和一些个性化的模块时,使用 Django 会使它更加复杂。

为什么选择 Go 编程?

1、编译为单个二进制文件

Golang 是一种编译语言,Googe 的开发人员为此付出了很多努力。它使用静态链接根据操作系统类型和环境将所有相关的库文件和模块实际组合到一个二进制文件中,这也意味着如果要将后端应用程序编译到 Linux 操作系统和基于 X86 CPU 的应用程序,您只需将已编译的二进制应用程序下载到服务器,然后后端应用程序就可以工作,不需要任何相关文件。

2、静态类型系统

类型系统对于大规模应用非常重要。Python 是一种很棒的有趣的语言,但是有时您会看到一些奇怪的异常,因为当您尝试将变量用作整数变量时,而实际它是字符串类型。

def some_view (request): user_id = request.POST.get ('id', 0)这样的代码将导致 Django 崩溃。

而 Go 会进行编译,并告诉您这是一个编译器错误,这是它在愚蠢问题上赢得时间的地方。

3、优化(性能)

令人惊讶的是,在大多数应用程序场景中,Go 比 Python(第 2 版或第 3 版)更快。比较的结果可以在基准测试中看到,这当然是不公平的,它取决于应用程序的类型和用户用例。

就我们而言,Go 拥有自己的多线程模块和 CPU 可扩展性,因此性能更高。每当我们需要执行一些内部请求时,我们都可以使用 Goroutine 分别执行它们,这比 Python 中的线程要节省十倍的资源。借助这些内置的语言功能,我们可以节省大量资源(内存和 CPU)。

4、Go 不再需要 Web 框架

对于编程语言来说,这是一件很酷的事情。Go 语言的创建者和社区拥有核心语言支持的许多内置工具,在大多数情况下,您不再需要任何第三方库。例如,它具有内置的 http,json 和 html 模板。您甚至可以构建非常复杂的 API 服务,而不必担心在 Github 上找到第三方库。

当然,Go 也有许多用于构建 Web 项目的库和框架,但是我建议您不要使用第三方库来构建 Web 项目或 API 服务,因为在大多数情况下,使用标准库包将使您的生活更轻松。

5、更好的 IDE 支持和调试

当您尝试更改编程语言时,IDE 支持是最重要的考虑因素之一。友好的 IDE 可以平均节省 80% 的编程时间。Go Plugin for JetBrains IDEA,还提供其他支持,例如(Webstorm,PHPStorm 等)。该插件提供项目开发中所需的任何服务。强大的 JetBrains IDEA 可以使您的开发更加强大,更好用的是 Goland。

选择 Go,还是 go home?

Mozilla 正在内部将其庞大的基础日志记录架构转换为 Go,部分原因是强大的 goroutines 。Go语言是由 Google 的人员设计的,在设计之初,对并发的支持才是重中之重,而不是像其他各种 Python 解决方案一样在其后添加。因此,我们开始从 Python 切换到 Go。

尽管我们的 Go 代码产品尚未正式发布,但结果令人鼓舞。现在,我们每秒可以处理一千个文档,使用更少的内存,并且不需要调试在 Python 中遇到的问题:丑陋的多进程/gevent/“为什么 Control-C 无法杀死进程”。

为什么我们喜欢 Go?

任何对编程语言的工作方式(解释与编译,动态与静态)了解甚少的人都会说:“切,当然 Go 会更快”。是的,我们还可以用 Java 重写所有内容,并且可以看到类似且更快的改进,但这不是 Go 语言获胜的原因。您在 Go 中编写的代码似乎是正确的。我不知道发生了什么,但是一旦代码被编译(快速的编译速度),您就会觉得代码可以正常工作(不仅可以正确运行,而且在逻辑上正确)。我知道这听起来不太可靠,但确实如此。就冗余(或非冗余)而言,这与 Python 非常相似。它以函数为首要目标,因此函数式编程将易于理解。当然,Go 线程和通道使您的工作变得更轻松,可以从静态类型中获得很大的性能提升,并且可以更好地控制内存分配,但是不必为语言表现力付出太多成本。

根据我们的代码统计,用 Go 重写项目后,我们减少了 64% 的代码。

您不需要调试不存在的代码。代码越少,错误越少!

结论

Go 为我们提供了极大的灵活性。一种语言可以在所有用户方案中使用,并且在所有用户方案中都能很好地工作。在后端和 API 服务中,我们获得了 30% 的性能优化。现在,我可以实时处理日志,转换为数据库,并通过 WebSocket 处理一项或多项服务!这是 Go 语言功能提供的非常强大的功能。

 

来源:今日头条内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯