GO语言

开源公司:谷歌公司

作品详情

外文名
go
展开
发布于
2009年
展开
特点
数组安全、编译迅速
展开
软件版本
1.20.1[2]
展开
软件授权
BSD license[3]
展开
属性
编程语言
展开
作用
开发Android应用的一种BASIC语言
展开
开发公司
谷歌[1]
展开
软件大小
25 至 145 MB[2]
展开




1发展历程





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


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


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


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


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


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


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


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


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


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


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


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


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运行环境





Windows


Windows 7 or later, Intel 64-bit processor


macOS


Apple macOS (ARM64)


macOS 10.13 or later, Intel 64-bit processor


Linux


Linux 2.6.32 or later, Intel 64-bit processor[2]




4特色




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



5目标




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


6词条图册



声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
案例
平台面向大学生,提供外卖,跑腿,快递服务 整个平台分为 用户端(小程序) 商家端(APP) 骑手端(APP) PC端(windows软件) 平台总体分为以下模块 用户模块:用户端进入小程序即自动微信登陆,骑手端和商家端在PC端后台添加账号后可登录 商家模块:商家登录后可在APP端更改商家基本信息,添加或更改菜品信息 支付模块:用户端接入微信支付 活动模块:提供满减,分享立减,加购等活动,用户端可自行选择 订单模块:用户端下单后,商家自动接单,骑手可根据下单后划分的取餐时间自行接单,用户端可在订单池接单上楼(类似于外包),余额可提现
一、可针对多平台的数据进行采集,已经实现境内境外多平台:微博、抖音、微信公众号、小红书、今日头条、哔哩哔哩、西瓜视频、爱奇艺、优酷视频、好看视频、腾讯视频、百度百家、网易号、知乎、各大网站、APP、论坛、博客、推特(Twitter)、脸书(Facebook)、油管(Youtube)、TikTok、境外网站等 二、支持定制化
IOT中继宝盒是一款专业、强大、易用的含视频接入、流媒体生成、设备建模、设备接入、设备控制、数据采集、数据转发、设备运行监测、边缘计算等功能部署在设备侧的解决设备与业务管理系统互联互通的物联网中继、边缘服务器设备。 是主要应用在社区、工厂、学校、园区、工地、矿山、田园、水利、道路、桥梁等项目现场,解决现场设备与业务管理系统互联互通的软硬件一体边缘计算设备。 IOT中继宝盒管理平台是IOT中继宝盒的系统管理平台,本人于2023年底开发完成,于2024年5月15日获得计算机软件著作权证书,产品现在已授权武汉市宜联科技有限公司以宜联IOT中继宝盒产品推广
1550vue
## 项目简介 ### 项目背景 去年,我们团队开展了一项AI项目,旨在整合线上各大厂商提供的AI程序,以提供一系列创新的AI服务。我们结合了Arezu、讯飞语音识别、Llama等先进的技术,开发出了一套独特且高效的解决方案。 ### 面向对象与解决问题 本方案主要面向教育机构、视频内容创作者、企业培训部门和个人用户。传统的教育和内容制作过程通常耗时且效率低下,尤其是在语言教学和3D视频制作方面。我们通过AI技术,提供了一个高效的工具集,帮助用户更快速地完成任务,提升工作效率,降低成本,解决了教育培训内容制作周期长、视频内容转换复杂等问题。 ### 方案特点 相比于市场上的常规方案,我们
项目简介 项目背景与面向对象 本项目旨在解决设计行业中常见的一个痛点:设计师在设计过程中找到的材质在现实中无法找到实物匹配。通过整合国内外的材质网站,并利用ThreedJS技术,我们构建出一个高效的展示和管理平台。本方案主要面向设计师、建筑师、室内设计师和其他需要材质匹配的专业人士,帮助他们在设计阶段就能找到与实物一致的材质,提升工作效率和设计精准度。 本方案的特点 相比于市场上常规的材质展示和管理方案,本项目有以下显著特点: 1. ThreedJS技术展示:我们利用ThreedJS技术,提供高质量的材质展示效果,让用户可以在虚拟环境中直观地看到材质的应用效果,这种沉浸式的展示方式
当前共906个项目

评论