“ Python 是非常强大的,特别是 Python3 有了异步功能,但是 GO 将完全取代它在大企业中的存在…”如果你真正理解了引号中的话,你可能会去尝试 Go 编程语言。我认为 Go 是很简单的编程语言,并且适应任何的应用环境,甚至比 Javascript 编程还要简单,这可能是 GO 编程语言能在这几年很快流行起来的原因吧。

我们在使用 Go 语言编程之前有什么呢?

网站 TreeScale.com 主页和 API 都是基于一些分析工具的网络应用。下面是我们的技术栈:

  • React.js 主页前端
  • Django Python 主页后端和认证服务
  • Node.js API 服务
  • PostgreSQL 数据库、Cassandra 日志系统
  • 自定义容器注册表是使用 Rust 语言

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

为什么我们开始整合 API 服务和后端到单个项目中,主要的原因是他们有很多地方是相似的而且通过多种语言或者技术编程,代码存在很多重复的。最终我们需要花费很多时间在个性化的 Django’s API 服务,特别是在定制 JSON 的响应。

一个月之后我们用 Django 建立的 API 服务,我感觉当你开发一些普通的应用使用 Django 是非常棒的,但是当你需要更高的性能和一些个性化的模块的东西的使用 Django 是会越来越复杂的。

为什么选择 Go 语言编程?

#1 编译成单一的二进制

Golang 是编译型语言并且 Googe 的开发者花了很大的功夫在上面。它使用静态链接实际上是基于操作系统类型和环境组合所有的依赖库文件和模块到一个单一的二进制文件中,这也意味着如果你想要编译你的后端应用到你的 Linux 操作系统和 X86 架构的 CPU 中,你只要下载编译好的二进制应用到服务器,然后可以后端应用可以工作了,这是不需要任何的依赖文件的。

#2 静态类型系统

对于大规模应用来说类型系统是非常重要的。Python 是很棒的并且有趣的语言但是有些时候你会看到一些不寻常的异常因为当你尝试将变量作为一个整型变量的时候结果它是一个字符串类型.

  1. # Django will crash process because of this def some_view(request):
  2. user_id = request.POST.get('id', 0)

Go 在编译的时候告诉你这是一个编译器错误,这就是在愚蠢的问题上赢得时间的地方。

#3 优化

令人惊讶的是,在大多数的应用场景中,Go 语言比 Python(版本2或3)更快。Benchmarking Game 中可以看到对比的结果,当然这是不公平的,这依赖于应用类型和用户用例。

对于我们的案例,Go 语言由于自己的多线程模块和 CPU 可伸缩性获得了较好的性能。无论什么时候我们需要执行一些内部的请求,我们可以使用 Goroutine 来分别执行,这个比 Python 中的 Threads 在资源开销上要少上十多倍。由于这些内置的语言特性,我们可以节省大量的资源(内存和 CPU )。

#4 Go 不再需要 Web 框架

对于编程语言这是一件十分酷的事情。Go 语言的创造者和社区内置了很多原生的被核心语言支持的工具,在大多数情况下你都不再需要任何第三方类库。比如它有内置的 http、json、html 模板,你甚至可以不用费心去 Github 上寻找第三方类库就可以构建十分复杂的 API 服务。

当然,Go 也有很多类库和框架用来构建 web 项目,但是我会建议你不使用第三方类库来构建你的 web 项目或者 API 服务,因为在大多数情况下使用原生包会使你的生活更加轻松。

#5 更好的 IDE 支持和调试

IDE 支持是当你尝试更改编程语言时最重要的考虑因素之一。友好的 IDE 平均可以节省你80%的编程时间。 Go Plugin For JetBrains IDEA ,同样提供了其他支持,比如 (Webstorm、PHPStorm 等等…)。这个插件提供了任何你在项目开发中需要的服务,强大的 JetBrains IDEA ,可以让你的开发如虎添翼。

基于我们的代码统计,在用 Go 语言重写项目后我们少写了64%的代码。

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

结论

Go 为我们提供了超强的灵活性,一种语言可以适用于所有的用户场景,而且在所有的用户场景都可以工作的很好。在我们的 Backend 和 API 服务中,我们得到了30%的性能优化。而且现在我可以实时处理日志,转换到数据库中,并且通过 Websocket 处理一个或多个服务!这就是 Go 语言特性所提供的的非常强大的功能。

本文作者:佚名

来源:51CTO

五大理由从Python转到Go语言相关推荐

  1. 编程语言python这个词怎么翻译_五大理由从 Python 转到 Go 语言【已翻译100%】...

    #3 优化 令人惊讶的是,在大多数的应用场景中,Go 语言比 Python(版本2或3)更快.Benchmarking Game 中可以看到对比的结果,当然这是不公平的,这依赖于应用类型和用户用例. ...

  2. 学python五大理由_学习Python的五大理由

    Python已经是25岁的大叔级编程语言了,但近年来Python反而变得越来越流行,在TIOBE编程语言指数排行榜中,Python的排名从去年的第八名飙升到了第五名(下图). 无论是编程新手还是保持饥 ...

  3. PHP优于Node.js的五大理由

    PHP是一款服务器端的脚本语言,主要用于动态网页开发,是目前最流行的开发语言之一.Node是一款用来编写高性能网络服务器的JavaScript工具包.文中将两者进行对比,列举了PHP优于Node.js ...

  4. python是用什么语言开发的-专为人工智能和数据科学而生的Go语言,或将取代Python...

    时间回到30年前,Python 首次亮相.花了20年时间,Python才获得开发者的认可.来到 2019 年,Python已经成为开发人员第二喜欢的语言. 在过去的5年时间里,Python 成为了机器 ...

  5. python是一种语言吗-Python是一种什么样的编程语言?解释?编译?汇编?机械?...

    作为一名技术专家和软件工程师,新技术和语言地持续探索必不可少,笔者将从现在带大家开启"Python"的世界.如果你刚好从事面向对象开发,那么不妨给Python一个机会.在循序渐进地 ...

  6. c++强大还是python强大-Python 到底是强类型语言,还是弱类型语言?

    0.前言 我在上一篇文章中分析了 为什么 Python 没有 void 类型 的话题,在文章发布后,有读者跟我讨论起了另一个关于类型的问题,但是,我们很快就出现了重大分歧. 我们主要的分歧就在于:Py ...

  7. python叫什么语言-Python代码是什么语言

    Python代码是一种计算机程序设计语言,是一种动态的.面向对象的脚本语言,最初是用来编写自动化脚本的,随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项目的开发. Python代码是 ...

  8. python是一种语言还是一个软件-python和GO语言应该选择哪一个?老男孩教育

    IT行业是很多人都认为非常受欢迎的领域,因为前景好.待遇高.从业岗位多,越来越多人都想要学习编程.那么编程语言众多,在选择的时候很多人都会在python和GO语言进行徘徊,该如何选择呢? python ...

  9. 没有c语言基础可以学python吗-没有c语言基础,能不能学好python?

    学习C语言对学好python有帮助吗? 答案是有. 学好python需不需要有C语言基础? 答案是不一定. 实际上,所有的编程语言都是在做一件事情--告诉计算机,将你输入的数据A如何转化成需要输出的数 ...

最新文章

  1. 为什么 ElasticSearch 比 MySQL 更适合复杂条件搜索
  2. Linux中perl脚本监控
  3. Python下使用subprocess中文乱码的解决方案
  4. Vue使用watch监听一个对象中的属性
  5. 荒岛余生为什么没有打开包裹_您会带到荒岛什么办公桌设置?
  6. Android SharedPreferences总结及优化
  7. 快给你的代码来点彩虹屁
  8. ES6学习(新增字符串方法)
  9. Fluent API — 流畅API(基于Java介绍)
  10. Python函数声明以及与其他编程语言数据类型的比较
  11. C#身份证号码验证器(检验格式是否正确)
  12. 我去,还有这种网站!
  13. 《微观经济学》第四章供给与需求的市场力量
  14. 【测试】Appium原理
  15. W dBm功率换算公式
  16. sw转cad映射文件_SolidWorks工程图转CAD图纸DWG文件教程-很吊
  17. contiki CC2530 CC2430例子描述
  18. html文本域 高度自适应,Javascript 文本域根据输入内容自适应高度
  19. Swift 基础 高阶函数 forEach filter map compactMap compactMapValues flatMap reduce sort sorted shuffled ...
  20. 少儿创意学编程(Scratch基础篇):第5课——绘画板

热门文章

  1. DAS,SAN,NAS
  2. biztalk 2010 映射
  3. 开发函数计算的正确姿势——支持 ES6 语法和 webpack 压缩
  4. sed替换每行最后一个字符
  5. JavaScript 工作原理之十一-渲染引擎及性能优化小技巧
  6. 用一份PPT开始你的Hyper-v虚拟化之旅
  7. Mac下Android studio 之NDK配置教程(一)
  8. 在Clojure中使用class
  9. Linux桌面新彩虹-Fedora 14 炫酷应用新体验
  10. asp.net开源CMS汇总