认真聊一聊大家关心的Go语言

扒一扒Go语言中的“语法糖” 语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会。1、可变长参数Go语言允许一个函数把任意数量的值作为参数,Go语言内置了... 操作符,在函数的最后一个形参才能使用...操作符,使用它必须注意如下事项可变长参数必须在函数列表的最后一个; 阅读详情



本篇结合之前JetBrains的一篇博客,大致来聊一聊Go语言生态以及Go开发者目前的一些现状吧。


之前,JetBrains官方博客发表了一篇题为"The state of Go"的文章,他们通过深入研究有关 Go 的信息,发现了不少鲜为人知的事实,并提供了翔实的数据作为支撑。此外,JetBrains 还邀请到了知名的 Go 语言专家 Florin Pățan 针对各项数据发表了自己的见解。

一、Go 开发者

数量 & 所处地区

全球大约有 110 万名职业 Go 开发者(特指在工作中专门将 Go 作为主力编程语言的群体),如果把主要使用其他编程语言但同时兼职使用 Go 的专业开发者计算在内,这个数字可能接近 270 万。

从 Go 开发者在全球地区的分布来看,生活在亚洲的职业 Go 开发者最多,大约有 57 万。

Go 语言专家 Florin 表示这在他的预期之内。他认为亚洲的 Go 开发者数量之所以高居榜首是因为那里有大量的开发者来自腾讯、阿里巴巴和华为等大型公司,这些公司一般都会雇佣许多开发者。

如果再细分下去,以国家为维度查看使用 Go 作为主力编程语言的开发者分布情况,中国所占的比例最高,全球有 16% 的 Go 开发者来自中国。

Florin 对此同样不感到意外,不过他表示本以为俄罗斯会排第二,美国会进入前五,然而事实却是日本的 Go 开发者数量排名第二,美国排到了第七。

谈及中国位居榜首的原因,Florin 认为最重要的是中国拥有数量相当庞大的开发者,根据他自己所认识的公司来看,诸如 PingCAP、腾讯、和华为都拥有大量开发者帮助构建与微服务相结合的内部工具、基础设施和后端服务。

Florin 提到了俄罗斯的 Go 社区非常活跃,Go 在那里也非常流行,不过他对 Go 开发者在日本和乌克兰的分布情况感到意外,因为他本以为德国和印度会更高,Florin 表示自己四五年前在柏林的时候,所认识的每家初创公司都使用了 Go。

二、使用 Go 开发的软件类型

根据 JetBrains 2020年开发者生态调查的结果,Web 服务是使用 Go 进行开发的最受欢迎的领域,所占份额为 36%。其次分别是实用程序、IT 基础设施、工具库和系统软软件开发。

Florin 认为,对于 Web 服务,首要任务是创建速度足够快的 API 服务器。他们不一定需要框架,因此开发者可以使用 Go 快速启动并运行。他希望未来这张图不会发生大变化,希望看到 Web 服务获得更多的分享,因为使用 Go 入门很简单。

三、使用 Go 的热门行业

根据 JetBrains 2020年开发者生态调查的结果,Go 开发者主要从事 IT 服务行业,其次是金融和金融科技,云计算/平台、大数据、移动开发和其他行业。

Florin 表示没想到 Go 在移动开发行业也能占有一席之地,毕竟它的移动开发历史比较匮乏。人们可能会使用 Go 来为移动应用程序提供 Web 服务或后端,但是仅此而已。

四、Go 工具

Go Web 框架 Top5

包管理器

Go routers

测试框架

五、讨论度最高的Go工具和其他语言

讨论的高频词:JSON、goroutine、PostgreSQL、MySQL、Dockers……

六、行业见解

根据 JetBrains 2020年开发者生态调查的结果,Go 是十大主要编程语言之一,被专业开发者采用的所占比例为 7%。Florin 认为,许多人并不倾向于以 Go 作为其第一门学习的编程语言,通常是从其他语言(例如 PHP、Ruby、Java、C++、C#)迁移过来,据他所知主要是从 C++ 和 C# 迁移到 Go。

Florin 表示,Go 相对 PHP 的优势在于类型安全,因为 Go 是静态类型语言,而 PHP 是动态语言。这意味着编译器会帮助开发者完成大部分工作,以确保他们编写的代码能够正确编译和运行,并在运行时不会出现问题。Go 与 C++ 相比的优势是简单。在 Go 中,一切都非常简单。此外在不进行任何特殊优化的情况下,使用 Go 还会获得性能方面的提升,这对公司来说是重要的生产力优势。

Florin 还提到了 Go 采用率持续增长的另一个原因,由于许多流行的 IT 基础设施都是用 Go 编写,例如 Kubernetes、Docker 和 Vault,因此尽管许多公司的主力技术栈可能是 Java 或者其他语言,但他们也会配置针对 Go 的团队,尤其是在维护和修补此类基础设施项目方面。

近期热门文章30 行代码实现蚂蚁森林自动收能量(附送源码)Linux 最常用命令:简单易学,但能解决 95% 以上的问题
2021了,最流行的密码依旧是123456
真香!用VS Code直接浏览GitHub代码 !
从万众期待到口碑扑街!唐探3令人失望,用Python来分析一下大家的评论用Python分析了某大学2000千条表白墙,甜到发腻,原来脱单的秘密是……值得收藏!20个Python奇技淫巧,让你受益匪浅!这款IDEA插件刷爆了朋友圈,网友:这用起来有点酸爽~央视最美记者王冰冰火爆B站,单个视频1800万播放,都说了啥?点阅读原文,领廖雪峰大数据视频资料!
golang快速入门[4]-go语言如何编译为机器码 前文 golang快速入门[2.1]-go语言开发环境配置-windows golang快速入门[2.2]-go语言开发环境配置-macOS golang快速入门[2.3]-go语言开发环境配置-linux golang快速入门[3]-go语言helloworld 在上文中,我们详细介绍了第一个helloworld程序 package main import "fmt" func ma... 阅读详情

相关推荐

golang技术随笔(一)深入理解interface

Go语言的主要设计者之一罗布·派克( Rob Pike)曾经说过,如果只能选择一个Go语言的特 性移植到其他语言中,他会选择接口。可见接口在golang中的地位,及其对gloang这门语言所带来的活力。      golang中的interface是什么 接口相当于是一份契约,它规定了一个对象所能提供的一组操作。要理解golang中接口的概念我们最好还是先来看看别的现代语言是如何实现

justaipanda的专栏 3万+

对Go语言的简单了解

基础知识 基本概念 Go语言(Golang语言的简称)是一种静态强类型的编译型编程语言。 Go语言语法上与C相似,但有内存安全、GC(垃圾回收)等功能。 与C++相比,Go并不包括如枚举、继承、断言、虚函数等功能,但增加了切片(Slice)型、并发、管道、垃圾回收、接口(Interface)等特性的语言级支持。 与Java相比,Go内嵌了关联数组(哈希表和字典),就像字符串类型一样。 使用Go语言编程既能实现开发效率高,又能实现程序执行时性能强。 一些特性 协程并发 高并发是Go语

ylnzzl的博客 344

Go语言的学习路线

Go语言以其简单、高效和强大的并发支持,成为现代开发语言中不可或缺的一员。通过以上的学习路线和资源,相信您能够逐步掌握Go语言,并在实际开发中得心应手。不断实践与探索,祝您在Go语言的学习旅程中收获满满!

2501_90195397的博客 1217

【Golang】01 Go 语言初识

一、Go语言的核心开发团队 1、Ken Thompson(肯·汤普森) 2、 Rob Pike(罗布·派克) 3、Robert Griesemer 二、Google 创造Golang 原因 1、计算机硬件技术更新频繁,性能提高更快。目前主流的编程语言发展明显落后于硬件,不能合理利用多核多CPU的优势提升软件系统性能。 2、软件系统复杂度越来越高,维护成本越来越高,目前缺乏一个足够简洁高效的编程语言。 1)现有编程语言 缺乏风格不统一、计算能力不够、处理并发不够好 3、企业运行维护很多C/C++ 的项目

promiseful的博客 324

【学习笔记-QGIS】 QGIS从零快速上手

安装文章参考:https://zhuanlan.zhihu.com/p/370633306。

Xcong_Zhu的博客 1万+

终端运行脚本报: 因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fw link/?LinkID=135170 中的 about_Execution_

PowerShell 执行策略是一种安全机制,用于控制哪些脚本可以在系统上运行。默认情况下,Windows 系统会设置较为严格的执行策略,以防止恶意脚本的执行。执行策略有以下几种常见级别:Restricted(限制):不允许运行任何脚本。AllSigned(全部签名):仅允许运行经过数字签名的脚本。RemoteSigned(远程签名):允许运行本地脚本,但远程下载的脚本需要数字签名。Unrestricted(无限制):允许运行所有脚本,但会警告未签名的脚本。

欢迎来到我的技术博客!这里是一个专注于软件开发的地方,我将分享关于 Java、Python、C++ 和易语言等多种编程语言的教程、技巧、最佳实践以及开发经验。 5091

【Golang】Go语言编程思想(一):接口

对 Golang 的接口 interface 进行学习和记录。

YGGP的博客 1072

MediaCodec视频解码流程详解及参考demo

本文主要讲解mediacodec的视频解码流程,及demo参考例子。

分享音视频技术 7877

Windows安装Go语言及VScode配置

Go语言结合了动态语言的开发速度和C/C++等编译型语言的性能与安全性,提供了强大的网络编程和并发编程支持。

m0_73500130的博客 1026

微调BERT进行中文文本分类任务(Pytorch代码实现)

BERT(Bidirectional Encoder Representation from Transformers)是2018年10月由Google AI研究院提出的一种预训练模型。其模型结构由多层Transformer的Encoder堆叠而成,在大规模语料中进行预训练后,迁移到下游任务,仅进行参数微调训练,就能显著提升性能。本文聚焦于微调中文BERT进行新闻标题分类任务的代码实现。

Iswayzw的博客 1万+

基于Keil软件实现对射式红外传感器计次 (江协科技HAL库)

用HAL库复现江协科技,让嵌入式学习之路更顺畅。

2401_82728381的博客 800

open-golang:Go语言跨平台文件打开库的完整指南

open-golang是一个功能强大的Go语言库,它允许开发者使用操作系统默认的应用程序打开文件、目录或URI,也可以选择指定特定的应用程序来打开。这个库为Go项目提供了简单而高效的跨平台文件打开解决方案,极大地简化了在不同操作系统中处理文件打开操作的复杂性。 ## 🌟 为什么选择open-golang? 在Go语言开发中,实现跨平台的文件打开功能可能会面临诸多挑战。不同的操作系统有着不同的

gitblog_00923的博客 309

2011-2024年间各省数字普惠金融指数数据(覆盖广度、使用深度和数字化程度)

2、指标:数字金融普惠指数、数字金融覆盖广度指数、数字金融使用深度指数、普惠金融数字化程度指数、数字金融使用深度指数下属的支付、保险、货币基金、信用服务、投资、信贷等分类指数。中国各省的数字普惠金融指数数据,从数字金融覆盖广度、数字金融使用深度和普惠金融数字化程度3个维度来构建数字普惠金融指标体系。数字普惠金融指数一共3个维度、33项具体指标。全套指数包含数字金融覆盖广度指数、数字金融使用深度指数和普惠金融数字化程度指数,以及数字金融使用深度指数下属的支付、保险、货币基金、信用服务、投资、信贷等分类指数。

【优快云】 1万+

**深入探索 & 推荐:mq-golang —— 联通IBM MQ与Go语言的桥梁**

深入探索 & 推荐:mq-golang —— 联通IBM MQ与Go语言的桥梁 在这个数字化转型的时代,消息队列作为分布式系统中的重要组件,承担着数据传输和处理的核心任务。IBM MQ作为业界领先的消息中间件,凭借其稳定性和安全性,在企业级应用中占据了举足轻重的地位。然而,随着Go语言(又称Golang)在现代软件开发领域迅速崛起,如何将这一高效简洁的语言与成熟的IBM MQ服务相融合,成...

gitblog_00751的博客 981

【立创EDA-PCB设计基础】6.布线铺铜实战及细节详解

本文进行布线铺铜实战及详解布线铺铜的细节

嵌入式阿齐Archie 4万+

leetcode134 加油站

题目如下 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 如果你可以绕环路行驶一周,则返回出发时加油站的编号,否则返回 -1。 说明: 如果题目有解,该答案即为唯一答案。 输入数组均为非空数组,且长度相同。 输...

ayang818 's blog 234

Golang笔记 4.2 go 接口

接口是使用方法的抽象,使当前程序可以更聚焦在方法的应用,不关心该方法的具体实现。后续的应用程序在做具体实现时,再去完善具体实现,不会影响之前程序已经定义好的逻辑。 更通俗地来讲,接口的定义,就像是设置了一个岗位,描述了岗位的职责;,一些规章可以先根据岗位职责来制定,不关心具体是谁来任职这个岗位。当应用程序开始执行的时候,需要给接口传入一个实例,相当于企业开始运营时再把一个人放到这个岗位。

IoT小能手 834

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

golang 通过go get | go mod download下载安装包

golang 通过go get | go mod download下载安装包 安装完golang后,输入go env可以看到 GOPATH="/home/zhongzhanhui/go" GOROOT="/usr/local/go" GOBIN="" 1.go get 参考http://c.biancheng.net/view/123.html go get命令可以借助代码管理工具通过远程拉取或更新代码包及其依赖包,并自动完成编译和安装。整个过程就像安装一个 App 一样简单。这个命令在内部.

qq_42533216的博客 1万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

【杂谈】聊一聊所谓的“跨语言、跨平台“

例如 Java,一套代码编译之后的jar包,可以在Windows、MacOS、Linux、Solaris平台上运行,只需要在这些平台上安装对应平台的Java运行环境(JRE)即可。而不跨语言的技术也有,比如golang的gob、java的serializable,这些语言自带的序列化不是跨语言的,它们包含了很多语言特性。平台指的是运行环境,如CPU架构不同(引发的指令集不同)、系统架构不同(导致的API不同)、设备形态不同(大小、运行方式、操作方式等)跨语言和跨平台,是比较重要的一个特性。

无数_Mirage的博客 1925

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

【Go语言】Go语言中的切片

因此,Go语言中的切片是一个可变长度的、同一类型元素集合,切片的长度可以随着元素数量的增长而增长,但不会随着元素数量的减少而减少,但切片底层依然使用数组来管理元素,可以看作是对数组做了一层简单的封装。切片与数组相比,优势在于支持动态增加元素,甚至能够在容量不足的情况,在切片类型中,元素个数和实际可分配的存储空间是两个不同的值,元素的个数即切片的实际长度,而可分配的存储空间就是切片的容量。切片可以基于一个已存在的数组创建,切片可以只使用数组的一部分元素或者全部元素,甚至可以创建一个比数组更大的切片。

Python、Golang、大数据 3023

13 go语言(golang) - 函数

一个简单的函数定义包括关键字func、函数名、参数列表、返回值列表(可选)以及函数体。func 函数名(参数列表) 返回值类型 {函数体func:用于声明一个新函数。函数名:这是函数的名称。参数列表:表示该函数接的参数。返回值类型:表示该函数返回的结果类型,没有返回时可以省略。函数体:包含了实际执行操作的代码块。

瑞瑞的博客 918

“Go 仅是 Google 的编程语言,而不是程序员的!”

包含了类 C 语法,拥有高性能、高效率且易于上手的 Go 语言,在被 Google 推出之后就受到了国内外开发者的热烈欢迎, 但是在此之际,不少程序员也纷纷开始吐槽,无论是 Go 语言的管理权还是其功能模块的更新,最终都需要取决于 Google 这位管控者,这极大地限制了 Go 的发展自由,最终他们还得出“Go 语言是 Google 的,而不是社区以及程序员”的结论。 作者 |Chri...

优快云资讯 2万+

区块链基础语言(一)——Go语言简介

一、什么是Go语言 Go语言,也叫作Golang,它是21世纪的C语言。Go语言让程序员在写代码过程中更加高效,而且它优化了多处理器系统的应用程序,使其可以媲美C或C++代码程序的速度。另外,它更加安全地支持并行进程。 项目选择语言时,开发人员只能在程序地快速开发和程序的性能之间二选一。例如:C和C++这类语言性能好,而Ruby和Python这类语言则擅长快速开发。而Go语言在这两者之间架起了...

weixin_30294709的博客 390

【Golang】Go语言编程思想(五):Goroutine

对 Golang 的 Goroutine 进行学习,并复习了协程的概念。

YGGP的博客 1342

Golang入门完全指南:为什么它是云原生时代最值得学的语言?(Backend-NodeJS-Golang-Interview_QA)

想系统入门 Go 语言却不知道从哪下手?这份 **Golang 入门完全指南** 就是为你准备的。在云原生、微服务与后端开发岗位需求持续攀升的今天,Go(Golang)凭借简洁的语法、原生的并发模型和强悍的执行性能,成为越来越多开发者转型与进阶的首选语言。本文不仅会带你梳理 Go 语言入门路线与核心概念,还会结合开源仓库 **Backend-NodeJS-Golang-Interview_QA**

gitblog_00120的博客 890

[读书笔记][golang]《go语言-云动力》

花了一些时间,读了樊剑虹的《go语言-云动力》,就这本书的整体情况来讲,还是值得读一读的,书中讲了一些另辟蹊径的东西,这可能是其他go语言书中不曾有的东西,但是就专业性来讲,是不值得推荐读的,书中存在一部分错误,而且存在有部分内容翻译不准确的情况,所以,我觉得这本书可以作为有一定go语言基础的读者消遣来用,可能会得到一些额外的收获。同时如果有读者想要通过GAE来搭建自己的go开发环境,开发运行自己...

坚持不懈 1022
上一篇: 菜鸟哥,想给心意的小姐姐自动点赞,怎么办?30行Python代码搞定!
下一篇: 毕业三年学Python,发现搞数据分析的,跳槽越来越难了
菜鸟学Python
博客等级 码龄9年 8089粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值