如果没有Google这个靠山,Go 凭什么火?
整理
主管编辑张玉明
涂敏
制作
CSDN(id:csdnnews)
自2009年开源以来,go一直受到越来越多开发人员的喜爱,在最新的tiobe编程语言排名中排名第14位。开发者研究和分析公司Slashdata于2021发布了开发者报告。这表明go开发人员数量的增长速度是ruby的两倍。许多大公司,如Facebook、腾讯和百度,在其项目中使用围棋语言。Docker和kubernetes也是go写的。此外,go语言也受到许多云初创公司的喜爱,那么为什么go如此流行呢?go的五位创始人在《acm通讯》一书中给出了答案,书中说go的成功在于它专注于软件项目设计的整体环境。一方面,go以发展为中心的理念使其社区得以蓬勃发展。另一方面,go社区及其构建的技术最终使go成为现代云计算环境的重要组成部分
(按tiobe指数排名)𞓜 go的早期开发
go是静态强类型编译语言,在语法上类似于C语言,但go包含垃圾收集函数,可以自动释放不再使用变量的内存。此外,go使用新的多核处理器在专用内核上运行垃圾收集,以减少对延迟的影响
并发是go语言的核心功能,而不是单独的可选库。这在很大程度上解释了go为何以这种方式构建
我们从Google在go发展过程中的经验中学到了很多,4000名活跃的开发人员共享了大量的多语言代码库。这些开发人员认为,需要有更好的方法来处理大规模负载。所以go诞生了– - -它是专为并发性而设计的,并提供一流的支持。它不仅可以有效地处理多个任务,还可以同时执行多个任务
在go诞生之前,工程师使用了相对笨拙的语法和固定的线程堆栈。当时,支持并发的线程并不流行,因为它们不仅难以创建,而且难以使用和管理
解决问题是创建go的主要动机之一
开发者的担忧贯穿于go的开发,云服务的开发也带来了更多的用户
此外,go与其他语言相比有一些明显的优势。go的创始人在文章中提到,go
"e;消除了++程序中导致许多问题的未定义行为"e;。(例如,如果代码试图运行一些有风险的行为,例如读取空指针或使用超出数组或碎片边界的索引,go只会抛出一个运行时异常并停止运行程序)
然而,go的创始人认为go流行还有其他原因。Go在建设项目的早期工作中发挥着重要作用,为软件开发打包、依赖、构建测试、部署和其他日常工作奠定了基础,这吸引了在其生态系统中使用软件包的开发人员。虽然最初的版本只支持Linux和macos
x,但go社区的热情开发人员很快为go编译器和库创建了Windows版本,并将其移植到其他操作系统
其创始人表示,对开发人员的关注贯穿于go的开发过程。例如,go包含一个支持安全通信协议SSL和TLS的高质量加密库,以及一个包含内置HTTPS客户端和服务器(用于与其他系统在线交互)的标准库
go处理库的方式对开发人员也很有帮助:go编译器只导入需要包含在二进制文件中的库,它避免了导入整个库以确保包含必要的函数
此外,考虑到开发人员的需要,go允许从其他字段轻松导入外部库(以及自动检查兼容版本的方法)
在标准版本中,go还支持优化技术,如程序分析和对测试函数的支持,如模糊处理。Go甚至有一个代码布局约定。(Go的gofmt工具将源代码解析为这种标准化布局。)gofmt工具和其他内置工具有助于go更轻松地构建从ide插件和调试器到框架和构建自动化的所有内容。go的创建者认为,他们的语言是专门为鼓励工具和自动化的创建而设计的;因此,go有一个丰富的、可扩展的和可互操作的工具包"e
Consistency𞓜 尽管go的创建者也承认,在go的最初几年,它将在每周发布中进行修补和调整。当用户更新到新的go版本时,他们通常必须更改其程序
然而,自2012年(随着go第一个版本的正式发布),go的更新只对语言和标准库进行了向后兼容的修改,以便在编译到新版本的go时,程序可以继续运行而无需更改。
虽然结果并不乐观,但go的工具已经取得了很大的进步– - -更好的编译器、更强大的构建和测试工具,以及更多支持go
”的开源工具;虽然大多数语言的设计都侧重于语法、语义或类型创新,但go侧重于软件开发过程本身– - -Matt weagle(@mweagle)在2022年5月11日的文章中指出,go的功能集可以避免开发人员的过度扩展。然而,也提到了该约定的一个例外,即go确实添加了一个重要的新功能。两个月前,go添加了参数多态性,即;量身定制,适合围棋的其他部分QUOTE;在坚持一致性、完整性和社区原则的同时进行如此大的语言更改将是对这种方法的严峻考验。
go的创建者表示,如果没有go社区中成千上万的开源贡献者,就无法实现go今天的成就和发展。正如go创始人所言:"e;我们感谢所有帮助go实现今天目标的人”参考资料:
https://thenewstack.io/what- made-g级olang- so-采购订单pular- the-朗uages-cre公司ators-
look-背面/