作者 | Drew DeVault

译者 | 弯月

出品 | CSDN(ID:CSDNnews)

世上没有完美的软件,即便是一些看似很不错的软件也会有一些小问题。即使是我最心爱的软件项目 Plan 9 也有一些令人痛心的缺陷!对于某些项目,我忍不住想吐槽,但我是出于对它们的喜爱,恨铁不成钢,希望它们能够通过自己的努力赢得大家的尊重。

Go 编程语言就是一个这样的项目。我曾在我的博客和其他地方多次吐槽 Go,但我也经常在私下里赞美 Go。今天,我想来好好地夸一夸 Go,因为虽然我经常吐槽它,但 Go 仍然是我使用过的最好的编程语言之一,而且我对这门语言充满了敬意。

语言魅力

我最欣赏 Go 的地方在于,它能长期保持简单性、稳定性和健壮性。我觉得这些特质比软件设计的其他目标更为重要。Go 开发团队的工作态度非常严谨,每个功能都经过了深思熟虑,力求最简单且最完整的解决方案,而且他们小心翼翼地限制了实现范围,紧紧贴合这些解决方案。在这些方面,Go 几乎没有任何失误。

团队纪律为他们赢得了巨大的优势。我认为他们最大的成就在于,整个 Go 生态系统的质量都非常高。

  • 首先,Go 提供了一门语言和标准库,且设计和实现都非常卓越,这本身就是一项了不起的成就;

  • 其次,Go 语言提供了简单且优雅的设计,整个社区都可以利用 Go 语言设计出优秀的软件。很少有编程语言能够在整个生态系统内达到相同水平的统一性和高质量。

此外,Go 语言还创造了自己的小众市场,并帮助这些小众市场发展壮大,最终成为全新的软件设计类别。我认为 Go 并不是一种系统编程语言(C 和 Rust 之类的语言更加适合)。

Go 是新一代软件产品中的佼佼者,它是一种互联网编程语言。Go 的标准库高效、简洁、正确地实现了丰富的网络协议,并巧妙地结合了协作/抢占式多任务处理模型,因此使用 Go 编写可扩展的互联网软件非常容易。该领域还有其他几种编程语言(比如 Elixir),但是它们没能像 Go 这般成功。

优秀的开发团队

Go 团队的专业素养令我非常佩服。Go 与 Google 紧密相连,二者的关系导致Go 按照自己的方式进行权衡取舍,但由此而引起的项目领导权集中化却对项目有利。Go 社区的一些成员已经注意到了这种结构的缺点,Go 素来做不到及时响应社区的需求。但我认为,Go 的语言设计采用了保守的方式,因此这种脱节实际上对 Go 有好处,可能对项目本身来说还是一个优势。如果 Go 尽可能多地听取社区的意见,那么就有可能成为一个大杂烩,也会因此而失去其特有的魅力。

虽然 Go 没有做到对社区有求必应,但 Go 非常注重社区实际的需求。如果你指出 Go 中的某个问题,并引起他们的注意,则他们会认真对待。许多项目都希望表现出非常谦逊的姿态,一旦发现错误,他们就会主动承担下来。Go 始终能够遵循正常的工程流程:分析问题、提出解决方案、交付修复程序。

总的来说,虽然我经常吐槽 Go,但我还是非常欣赏 Go。我认为 Go 是有史以来最好的编程语言之一。Go 在编程领域达到了难以企及的状态,作为一种健壮的工程工具,在未来几十年中,使用 Go 编写的应用程序都能够正常且良好地运作。我认为 Go 是高水准的编程语言,希望它能够继续发光发彩。

各位 CSDN 的读者朋友,你觉得 Go 语言最大的魅力是什么?最想吐槽的地方又是哪里呢?

原文链接:https://drewdevault.com/2021/04/02/Go-is-a-great-language.html

声明:本文由CSDN翻译,转载请注明来源。

60+专家,13个技术领域,CSDN 《IT 人才成长路线图》重磅来袭!

直接扫码或微信搜索「CSDN」公众号,后台回复关键词「路线图」,即可获取完整路线图!

吐槽过后,我为什么要夸夸 Go 语言相关推荐

  1. perl语言编程 第四版_2020年,5 种 将死的编程语言!

    来源 | 码农网译者 | 小峰 曾几何时,几乎每个人都在使用Perl语言编程.但是那些经常使用的人慢慢地发现,关于这个Perl语言似乎总是有点不对劲.至少我知道有这么个叫做"piecemea ...

  2. c语言5的阶乘流程图_2020年,5种将死的编程语言!

    英文原文:http://http//insights.dice.com/2014/10/09/5-programming-languages-marked-for-death/uages-marked ...

  3. perl语言编程 第四版_2020年,5 种 将死的编程语言

    来源 | 码农网 译者 | 小峰 曾几何时,几乎每个人都在使用Perl语言编程.但是那些经常使用的人慢慢地发现,关于这个Perl语言似乎总是有点不对劲.至少我知道有这么个叫做"pieceme ...

  4. Wolfram Mathematica学习笔记1

    前言 最近重拾高数的时候给博主整自闭了,什么极限啊.积分啊博主忘的是干干净净. 属实是应了那句 『课上学到的东西在下课的一瞬间就全部还给了老师』. 吐槽过后就要开始想办法补救. 就在博主薅着所剩无几的 ...

  5. 《程序员的呐喊》一一1.2 巴别塔

    本节书摘来自异步社区出版社<程序员的呐喊>一书中的第1章,第1.2节,作者:[美]Steve Yegge ,更多章节内容可以访问云栖社区"异步社区"公众号查看. 1.2 ...

  6. 2020年,5种将死的编程语言

    来源 | 码农网 译者 | 小峰 曾几何时,几乎每个人都在使用Perl语言编程.但是那些经常使用的人慢慢地发现,关于这个Perl语言似乎总是有点不对劲.至少我知道有这么个叫做"pieceme ...

  7. DLT(DeepLearningTracker)学习与代码理解 (1)

    持续更新中-- DLT是香港科大的Naiyan Wang和Dit-Yan Yeung提出的,文章和代码见 http://winsty.net/dlt.html 相关论文是 Learning A Dee ...

  8. 数百台湾人把名字改成“鲑鱼”去吃免费日料,结果有人改不回来了

    来源|地球人研究报告 ID|diqiuren005 文|你的外星小姨 根据台湾各地民政局的播报,在刚刚过去的几日内,有近200名台湾民众来申请改名. 改名是个常见的事情,但这200人并不一样. 他们有 ...

  9. 2020年,5 种 将死的编程语言!

    来源 | 码农网 译者 | 小峰 曾几何时,几乎每个人都在使用Perl语言编程.但是那些经常使用的人慢慢地发现,关于这个Perl语言似乎总是有点不对劲.至少我知道有这么个叫做"pieceme ...

最新文章

  1. 【TensorFlow系列】【五】利用inception v3 pb模型文件做预测
  2. java文本框背景_background 设置文本框背景图
  3. python cookbook 自营_Python Cookbook总结 7-8 章
  4. [NOIP2016 提高组] 愤怒的小鸟
  5. MS SQL 2000 分配权限
  6. Python实现红黑树的删除操作
  7. java输出结果校验_2. Bean Validation声明式校验方法的参数、返回值
  8. SQL Server 2016中的查询优化器更改说明
  9. canvas 2.0
  10. HAOI(十二省联考)2019 qwq记
  11. 用C语言进行BMP文件的读写
  12. redis服务器环境下mysql实现lnmp架构缓存
  13. [病毒分析]熊猫烧香(上)初始分析
  14. html写自动关机的代码,让电脑自动关机代码是什么
  15. 玩转小米盒子1:选购指南及应用推荐
  16. CNN with Attention---channal and spatial attention(转)
  17. javascript检测5到10位数的QQ号
  18. 网络 — MB/s、Mb/s、Mbps、Mbit/s、Kbps
  19. 常见的电子元器件分类介绍
  20. ORA-01119、ORA-27040的两种可能存在的错误

热门文章

  1. stm32单片机OLED取字模软件使用 PCtoLCD2002
  2. 使用def文件简化dll导出
  3. 如何用css实现类似简书的纵向导航/竖排导航
  4. Java关键字transient和volatile小结(转)
  5. 转 Django url 标签的使用
  6. 利用jquery写的从后台获取json数据以表格显示,并带翻页功能.里面包含模式窗口等功能...
  7. 2021李宏毅机器学习课程笔记——Adversarial Attack
  8. Pytorch torch.rsqrt()的简单用法
  9. 矩池云上安装yolov5并测试
  10. JAVA使用摄像头录制_JavaCV开发详解之1:调用本机摄像头视频(建议使用javaCV最新版本)...