当前位置:首页 > 公众号精选 > 大鱼机器人
[导读]大家好,我是张巧龙,今天和大家聊聊一门新兴国产编程语言—Go,/*声明*/每个编程语言都有其优缺点,本文并未通过贬低其他编程语言来凸显Go的优势,相反,Go也有其缺点。01 什么是Go?Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能...

大家好,我是张巧龙,今天和大家聊聊一门新兴国产编程语言Go ,



/*声明*/


每个编程语言都有其优缺点,本文并未通过贬低其他编程语言来凸显Go 的优势,相反,Go 也有其缺点。





01



什么是Go?


Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言



2007年开始设计Go,2009年推出,成为开放源代码项目,在Linux、Mac OS X、Windows系统均可实现。



Go语言是一个跟C、C 、Python、Java类似的计算机编程语言。规则简单,统一,优雅,吸收了若干编程语言的优点,解决了C,C , Python等语言一些固有的难点问题。



Go的语法接近C语言,但对于变量的声明有所不同。Go支持垃圾回收功能。



与C 相比,Go并不包括如枚举、异常处理、继承、泛型、断言、虚函数等功能,但增加了切片(Slice) 型、并发、管道、垃圾回收、接口(Interface)等特性的语言级支持。





02



什么是Go ?


2020年,在Go语言的基础上,Go 诞生了,创始人叫许式伟,听这名字就知道是中国人,所以说Go 是一门国产语言也不为过。虽然衍生于开源的Go基础上。



2020年,Go 的定位是数据科学领域,由于兼容 Go,继承了Go的开发理念,同样适用于大型软件工程的开发。



Go 的出现并非想要完全代替Go,而是在Go基础上添加新元素,打造出一门更加强大的编程语言。



2021年, Go 的最新slogan 「for engineering, STEM education, and data science」,它是三位一体的。





Go :融合工程开发的Go、数据科学领域的Python、编程教学领域的Scratch,以Python之形结合Go之心,让工程师处理数据不需要学习新的语言。让初学者学习编程、完成开发的门槛更低。



Go 非常有成为未来流行语言的潜质,在STEM教育领域中并没有很强大的对手。按照目前的编程人才培养方式,需要多门语言,第一门往往是Scratch,但Scratch是单纯面向编程教学的,不足以培养工程人才。





03



Go 的优点?


Go 有着C、C 、Java、Python等的优点。



(1) 简单化,低代码化,去复杂性,低龄化



语法简单,容易上手


去工程化(不需要定义),抛出掉复杂的定义,直接使用


强化每行代码的能力,不同的编程语言完成同样的功能,Go 所需的代码量更少。



(2) 与Go相比。



前文有提到Go的优点,但Go 与Go仍有很大的不同。



Go 首先是一个静态语言,且语法完全兼容Go,但在形式上,Go 可能更像脚本语言,跟Python一样有同样低的学习门槛。



用最简练的表述来说:它有Go之心Python之形,能够做到低代码、低上手门槛,使得Go 使用门槛是低的,但又具备静态语言的高运行效率。



最终希望面向编程教育、工程开发与数据科学,形成数据科学家与工程师互通的培养体系生态。



(3)  兼容Python。



前文我们提到过Go 其中的一个定位是data science,我们都知道,在做数据这块,Python是使用最多的。



Go 2.0 将会尽可能引入兼容Python,完整的引入Python生态。



与 Python相比,Go 在语法表达方式更接近于自然语言,有理数表达更贴近数学的表达方式;



Python是数据科学,但Go 不止于数据科学,也可应用于大型软件工程开发,工程能力更强。



在人人都学Python的时代,顺带手学学Go ,我觉得可以



......



相关优点还有很多,比如Go支持并发,C 需要支持第三方框架才能实现并发功能。



还有一个,必不能忽视。



对初学者足够友好,为什么这么说?



据媒体报道,Go 创始人许式伟每天都在家教自己孩子学Go ,已经开始卷起来了



连8-10岁的小孩子都可以上手,难道还不友好吗?





04



说在最后
本文仅在讨论Go 这门国产语言的优点,虽然Go 是在开源的GO语言基础上衍生的,但国产语言还是需要支持的。



每个编程语言都有其优缺点,本文并未通过贬低其他编程语言来凸显Go 的优势,相反,Go 也有缺点。



比如,在特定的高质量的C 程序运行效率肯定高于Go



萝卜青菜,各有所爱,Go ,我觉得可以尝尝,万一对你的口味呢?






本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

与 BigCode 社区共同创建的 StarCoder2 是在 600 多种编程语言上训练而成,它将推进代码生成、透明度、治理和创新

关键字: 生成式 AI 编程语言 大语言模型

Java是一种广泛应用于软件开发的编程语言,它具有跨平台、面向对象和高度可靠性的特点。在嵌入式系统设计中,Java也有着广泛的应用方案。本文将详细介绍Java在嵌入式系统设计中的应用方案,并分析其优势和挑战。

关键字: Java 软件开发 编程语言

嵌入式开发和Java开发是两个不同的领域,它们在目标、应用场景、编程语言和开发环境等方面存在一些区别。下面我将为您简要介绍这两个领域的特点以及如何选择适合您的开发方向。

关键字: 嵌入式开发 Java开发 编程语言

Java语言是一种面向对象的编程语言,由Sun Microsystems(现在是Oracle Corporation)于1995年推出。Java具有跨平台性和可移植性的特点,广泛用于开发各种应用程序,包括嵌入式系统、移动...

关键字: Java 编程语言 互联网

嵌入式系统是一种专门设计用于特定应用领域的计算机系统,它通常由硬件和软件组成,并且被嵌入到其他设备或系统中,以实现特定的功能。在开发嵌入式系统时,除了了解和选择适合的编程语言外,还需要了解如何测量嵌入式产品的应用性能以及...

关键字: 嵌入式 计算机 编程语言

嵌入式系统设计师是一个专业领域,需要深入理解和掌握各种嵌入式技术以及相关编程语言。本文将介绍嵌入式系统设计师考试中的必备知识、笔记和总结,帮助读者在考试中取得好成绩。

关键字: 嵌入式系统 编程语言 C语言基础

另外,有时候优先级还与C语言编译器有关,同一个表达式在不同的平台上,可能表达的意义是不同的。所以,为了代码的可植移性、正确性以及可读性,振南强烈建议多用一些()。

关键字: C 语言 编程语言 赋值操作

Matlab是matrix laboratory的组合,意为矩阵实验室,软件主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。

关键字: matlab 编程语言 数值分析

PLC梯形图编程的主要要素包括输入、输出和逻辑元件。其中,输入和输出指的是PLC系统与物理世界之间的接口,如传感器和执行器;逻辑元件则用于描述输入和输出之间的逻辑关系。

关键字: PLC 梯形图 编程语言

PLC在电气工程及其自动化技术设计中经常用到,那么作完硬件组态后,就要考虑编程了,不同的个体对于编程采用的语言是不同的,当然针对不同的工艺要求,用不同的编程语言也会有不同的效果

关键字: PLC 编程语言 梯形图
关闭
关闭