GO语言语言框架

谷歌公司2023年11月30日
13219阅读

作品详情

1发展历程

Go是谷歌2009年发布的第二款编程语言。2009年7月份,谷歌曾发布了Simple语言,它是用来开发Adroid应用的一种BASIC语言。

谷歌资深软件工程师罗布·派克(RobPike)表示,“Go让我体验到了从未有过的开发效率。”派克表示,和今天的C++或C一样,Go是一种系统语言。他解释道,“使用它可以进行快速开发,同时它还是一个真正的编译语言,我们之所以现在将其开源,原因是我们认为它已经非常有用和强大。”

2007年,谷歌把Go作为一个20%项目开始研发,即让员工抽出本职工作之外时间的20%,投入在该项目上。除了派克外,该项目的成员还有其它一些谷歌工程师。

派克表示,编译后Go代码的运行速度与C语言非常接近,而且编译速度非常快,就像在使用一个交互式语言。

现有编程语言均未专门对多核处理器进行优化。派克表示,Go就是谷歌工程师为这类程序编写的一种语言。它不是针对编程初学者设计的,但学习使用它也不是非常困难。Go支持面向对象,而且具有真正的封装(closures)和反射(reflectio)等功能。

在学习曲线方面,派克认为Go与Java类似,对于Java开发者来说,应该能够轻松学会Go。

之所以将Go作为一个开源项目发布,目的是让开源社区有机会创建更好的工具来使用该语言,例如EclipseIDE中的插件。目前还没有支持Go的IDE。

在目前谷歌公开发布的所有网络应用中,均没有使用Go。但是谷歌已经使用该语言开发了几个内部项目。

派克表示,Go是否会对谷歌即将推出的ChromeOS产生影响,现在还言之尚早,不过Go的确可以和NativeCliet配合使用。他表示,“Go可以让应用完美的运行在浏览器内。”例如,使用Go可以更高效的实现Wave,无论是在前端还是后台。

Go语言是一种新的语言,一种并发的、带垃圾回收的、快速编译的语言。它具有以下特点:

1.它可以在一台计算机上用几秒钟的时间编译一个大型的Go程序。

2.Go语言为软件构造提供了一种模型,它使依赖分析更加容易,且避免了大部分C风格iclude文件与库的开头。

3.Go语言是静态类型的语言,它的类型系统没有层级。因此用户不需要在定义类型之间的关系上花费时间,这样感觉起来比典型的面向对象语言更轻量级。

4.Go语言完全是垃圾回收型的语言,并为并发执行与通信提供了基本的支持。

按照其设计,Go打算为多核机器上系统软件的构造提供一种方法。

Go语言是一种编译型语言,它结合了解释型语言的游刃有余,动态类型语言的开发效率,以及静态类型的安全性。它也打算成为现代的,支持网络与多核计算的语言。要满足这些目标,需要解决一些语言上的问题:一个富有表达能力但轻量级的类型系统,并发与垃圾回收机制,严格的依赖规范等等。这些无法通过库或工具解决好,因此Go也就应运而生了。

2版本记录

go1.20.1

go1.19.6

go1.20

go1.19.5

go1.19.4

go1.19.3

go1.19.2[2]

3运行环境

Widows

Widows 7 or later, Itel 64-bit processor

macOS

Apple macOS (ARM64)

macOS 10.13 or later, Itel 64-bit processor

Liux

Liux 2.6.32 or later, Itel 64-bit processor[2]

4特色

简洁快速安全并行有趣开源支持泛型编程,内存管理,数组安全,编译迅速

5目标

Go的目标是希望提升现有编程语言对程序库等依赖性(depedecy)的管理,这些软件元素会被应用程序反复调用。由于存在并行编程模式,因此这一语言也被设计用来解决多处理器的任务。

6词条图册

功能介绍

Go是开发Android应用的一种BASIC语言,发布于2009年。

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
案例
品牌洞察系统是专为企业品牌服务的 SAAS 系统。该系统可以助力企业精准掌握企业品牌在各个社交平台(抖音、B站、小红书、微博等)的口碑、用户群体的特征、品牌的日常监测、营销推广的监测,事件话题监测、互动人群的画像、网络事件对品牌的影响和了解竞争品牌等,为企业品牌推广和营销提供数据支撑。从一个实验的项目到逐步被市场认可产品,从一个简易单体架构到一个复杂且微服务系统,在这个过程中都全程参与、担任主要开发工作和主导架构的重构和完善,自身也受益良多。负责如下事项: 1. 评估产品和需求的技术可行性和成本 2. 主导产品的开发等技术工作,涉及 gin,gorm,mysql,docker,clickho
3830golangkafkagormnosqlelasticsearch大数据
此项目为CRM管理系统, 主要提供客户信息管理、公司信息管理、公司的订单管理、部门管理、员工管理等 根据不同部门、不同角色提供权限管理
2120vuemysqlredisgolangkafkagormgin
1、前端采用vue,后端采用golang开发,mysql、mongodb作为存储工具。 2、文件采用mongodb的GridFS存储,可存储表格、图片、音频、视频等文件 3、员工管理、文件资料管理;权限、角色、部门、菜单管理等
1970vuemysqlrediselement-uigormnode.jsmongodb
1、api服务基础架构,修改配置后可直接启动 2、http服务:采用Gin框架,已实现请求日志打印、跨域处理、静态文件访问、swagger的api文档生成等 3、pkg目录下为整理封装的各类工具或中间件
2260golangkafkagrpcgormgin
某海外公司开发的,我负责后端大部分模块开发。前端用Dart 语言 flutter跨平台技术。 开发社交软件,负责 golang 语言 Linux 下的服务端开发。 1. 根据业务需求 设计数据库和 接口文档。 2. 建立 mongo 数据库,使用 golang 编写后端代码。 3. unit test,end to end test,publish to stagging server test。 4. 发布到云端。 项目管理基于 谷歌文档,jenkins, gerrit, youtrack 等开源工具。 项目划分成模块用 bazel 交叉编译成 docker 镜像. 项目根据不
1890dockerkafkagrpcmongo后端
当前共1145个项目

评论